Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–1876 unchanged (1876 lines)
1877
1878 openLinkInExternalApp.action.invoke(
1879 tab,
1880 HitResult.UNKNOWN("https://www.otherexample.com"),
1881 )
1882
1883 verify(openAppLinkRedirectMock, times(2)).invoke(any(), anyBoolean(), any())
1884 }
1885
1886 @Test
1887 fun `Candidate 'Open in external app' allows for an additional validation for it to be shown`() {
1888 val tab = createTab("https://www.mozilla.org")
1889 val getAppLinkRedirectMock: AppLinksUseCases.GetAppLinkRedirect = mock()
…lines 1890–2275 unchanged (386 lines)

After

…lines 1–1876 unchanged (1876 lines)
1877
1878 openLinkInExternalApp.action.invoke(
1879 tab,
1880 HitResult.UNKNOWN("https://www.otherexample.com"),
1881 )
1882
1883 verify(openAppLinkRedirectMock, times(2)).invoke(any(), anyBoolean(), anyBoolean(), any())
1884 }
1885
1886 @Test
1887 fun `Candidate 'Open in external app' allows for an additional validation for it to be shown`() {
1888 val tab = createTab("https://www.mozilla.org")
1889 val getAppLinkRedirectMock: AppLinksUseCases.GetAppLinkRedirect = mock()
…lines 1890–2275 unchanged (386 lines)

Before

source_file
block_comment "/* This Source Code Form is subject to the terms of the Mozi"...
package_header
package "package"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "feature"
. "."
identifier "contextmenu"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "ActivityNotFoundException"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "ClipboardManager"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "Context"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "view"
. "."
identifier "View"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "compose"
. "."
identifier "ui"
. "."
identifier "text"
. "."
identifier "style"
. "."
identifier "TextOverflow"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "coordinatorlayout"
. "."
identifier "widget"
. "."
identifier "CoordinatorLayout"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "ext"
. "."
identifier "junit"
. "."
identifier "runners"
. "."
identifier "AndroidJUnit4"
import
import "import"
qualified_identifier
identifier "kotlinx"
. "."
identifier "coroutines"
. "."
identifier "test"
. "."
identifier "TestScope"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "action"
. "."
identifier "BrowserAction"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "action"
. "."
identifier "EngineAction"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "engine"
. "."
identifier "EngineMiddleware"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "selector"
. "."
identifier "selectedTab"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "BrowserState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "ContentState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "EngineState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "SessionState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "TabSessionState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "content"
. "."
identifier "ShareResourceState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "createTab"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "store"
. "."
identifier "BrowserStore"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "concept"
. "."
identifier "engine"
. "."
identifier "EngineSession"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "concept"
. "."
identifier "engine"
. "."
identifier "HitResult"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "feature"
. "."
identifier "app"
. "."
identifier "links"
. "."
identifier "AppLinkRedirect"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "feature"
. "."
identifier "app"
. "."
identifier "links"
. "."
identifier "AppLinksUseCases"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "feature"
. "."
identifier "tabs"
. "."
identifier "TabsUseCases"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "any"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "argumentCaptor"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "eq"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "middleware"
. "."
identifier "CaptureActionsMiddleware"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "mock"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "robolectric"
. "."
identifier "testContext"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "ui"
. "."
identifier "widgets"
. "."
identifier "SnackbarDelegate"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Assert"
. "."
identifier "assertEquals"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Assert"
. "."
identifier "assertFalse"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Assert"
. "."
identifier "assertNotNull"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Assert"
. "."
identifier "assertNull"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Assert"
. "."
identifier "assertTrue"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Before"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Test"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "runner"
. "."
identifier "RunWith"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "ArgumentMatchers"
. "."
identifier "anyBoolean"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
. "."
identifier "doReturn"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
. "."
identifier "doThrow"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
. "."
identifier "spy"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
. "."
identifier "times"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
. "."
identifier "verify"
class_declaration
modifiers
annotation
@ "@"
constructor_invocation
user_type
identifier "RunWith"
value_arguments
( "("
value_argument
navigation_expression
identifier "AndroidJUnit4"
:: "::"
identifier "class"
) ")"
class "class"
identifier "ContextMenuCandidateTest"
class_body
{ "{"
property_declaration
modifiers
visibility_modifier
private "private"
member_modifier
lateinit "lateinit"
var "var"
variable_declaration
identifier "snackbarDelegate"
: ":"
user_type
identifier "TestSnackbarDelegate"
function_declaration (+23 nodes collapsed)
function_declaration (+190 nodes collapsed)
function_declaration (+295 nodes collapsed)
function_declaration (+164 nodes collapsed)
function_declaration (+302 nodes collapsed)
function_declaration (+266 nodes collapsed)
function_declaration (+293 nodes collapsed)
function_declaration (+240 nodes collapsed)
function_declaration (+284 nodes collapsed)
function_declaration (+341 nodes collapsed)
function_declaration (+211 nodes collapsed)
function_declaration (+282 nodes collapsed)
function_declaration (+312 nodes collapsed)
function_declaration (+240 nodes collapsed)
function_declaration (+621 nodes collapsed)
function_declaration (+164 nodes collapsed)
function_declaration (+290 nodes collapsed)
function_declaration (+325 nodes collapsed)
function_declaration (+538 nodes collapsed)
function_declaration (+171 nodes collapsed)
function_declaration (+577 nodes collapsed)
function_declaration (+165 nodes collapsed)
function_declaration (+751 nodes collapsed)
function_declaration (+218 nodes collapsed)
function_declaration (+152 nodes collapsed)
function_declaration (+152 nodes collapsed)
function_declaration (+149 nodes collapsed)
function_declaration (+95 nodes collapsed)
function_declaration (+83 nodes collapsed)
function_declaration (+436 nodes collapsed)
function_declaration (+320 nodes collapsed)
function_declaration (+237 nodes collapsed)
function_declaration (+439 nodes collapsed)
function_declaration (+154 nodes collapsed)
function_declaration (+439 nodes collapsed)
function_declaration (+154 nodes collapsed)
function_declaration (+486 nodes collapsed)
function_declaration (+107 nodes collapsed)
function_declaration (+161 nodes collapsed)
function_declaration (+267 nodes collapsed)
function_declaration (+330 nodes collapsed)
function_declaration (+444 nodes collapsed)
function_declaration (+157 nodes collapsed)
function_declaration
modifiers
annotation
@ "@"
user_type
identifier "Test"
fun "fun"
identifier "`Candidate 'Open in external app'`"
function_value_parameters
( "("
) ")"
function_body
block
{ "{"
property_declaration
val "val"
variable_declaration
identifier "tab"
= "="
call_expression
identifier "createTab"
value_arguments
( "("
value_argument
string_literal
" "\""
string_content "https://www.mozilla.org"
" "\""
) ")"
property_declaration
val "val"
variable_declaration
identifier "getAppLinkRedirectMock"
: ":"
user_type
identifier "AppLinksUseCases"
. "."
identifier "GetAppLinkRedirect"
= "="
call_expression
identifier "mock"
value_arguments
( "("
) ")"
call_expression (+56 nodes collapsed)
call_expression (+56 nodes collapsed)
call_expression (+52 nodes collapsed)
line_comment "// This mock exists only to verify that it was called"
property_declaration
val "val"
variable_declaration
identifier "openAppLinkRedirectMock"
: ":"
user_type
identifier "AppLinksUseCases"
. "."
identifier "OpenAppLinkRedirect"
= "="
call_expression
identifier "mock"
value_arguments
( "("
) ")"
property_declaration
val "val"
variable_declaration
identifier "appLinksUseCasesMock"
: ":"
user_type
identifier "AppLinksUseCases"
= "="
call_expression
identifier "mock"
value_arguments
( "("
) ")"
navigation_expression
call_expression
navigation_expression
call_expression
identifier "doReturn"
value_arguments
( "("
value_argument
identifier "getAppLinkRedirectMock"
) ")"
. "."
identifier "`when`"
value_arguments
( "("
value_argument
identifier "appLinksUseCasesMock"
) ")"
. "."
identifier "appLinkRedirectIncludeInstall"
navigation_expression
call_expression
navigation_expression
call_expression
identifier "doReturn"
value_arguments
( "("
value_argument
identifier "openAppLinkRedirectMock"
) ")"
. "."
identifier "`when`"
value_arguments
( "("
value_argument
identifier "appLinksUseCasesMock"
) ")"
. "."
identifier "openAppLink"
property_declaration
val "val"
variable_declaration
identifier "openLinkInExternalApp"
= "="
call_expression
navigation_expression
identifier "ContextMenuCandidate"
. "."
identifier "createOpenInExternalAppCandidate"
value_arguments
( "("
value_argument
identifier "testContext"
, ","
value_argument
identifier "appLinksUseCasesMock"
, ","
) ")"
line_comment "// showFor"
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
line_comment "// action"
call_expression (+29 nodes collapsed)
call_expression (+29 nodes collapsed)
call_expression (+29 nodes collapsed)
call_expression
navigation_expression
call_expression
identifier "verify"
value_arguments
( "("
value_argument
identifier "openAppLinkRedirectMock"
, ","
value_argument
call_expression
identifier "times"
value_arguments
( "("
value_argument
number_literal "2"
) ")"
) ")"
. "."
identifier "invoke"
value_arguments
( "("
value_argument
call_expression
identifier "any"
value_arguments
( "("
) ")"
, ","
value_argument
call_expression
identifier "anyBoolean"
value_arguments
( "("
) ")"
, ","
value_argument
call_expression
identifier "any"
value_arguments
( "("
) ")"
) ")"
} "}"
function_declaration (+400 nodes collapsed)
function_declaration (+400 nodes collapsed)
function_declaration (+156 nodes collapsed)
function_declaration (+350 nodes collapsed)
function_declaration (+146 nodes collapsed)
function_declaration (+350 nodes collapsed)
function_declaration (+146 nodes collapsed)
function_declaration (+66 nodes collapsed)
function_declaration (+120 nodes collapsed)
function_declaration (+252 nodes collapsed)
function_declaration (+119 nodes collapsed)
} "}"
class_declaration (+257 nodes collapsed)

After

source_file
block_comment "/* This Source Code Form is subject to the terms of the Mozi"...
package_header
package "package"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "feature"
. "."
identifier "contextmenu"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "ActivityNotFoundException"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "ClipboardManager"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "Context"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "view"
. "."
identifier "View"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "compose"
. "."
identifier "ui"
. "."
identifier "text"
. "."
identifier "style"
. "."
identifier "TextOverflow"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "coordinatorlayout"
. "."
identifier "widget"
. "."
identifier "CoordinatorLayout"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "ext"
. "."
identifier "junit"
. "."
identifier "runners"
. "."
identifier "AndroidJUnit4"
import
import "import"
qualified_identifier
identifier "kotlinx"
. "."
identifier "coroutines"
. "."
identifier "test"
. "."
identifier "TestScope"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "action"
. "."
identifier "BrowserAction"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "action"
. "."
identifier "EngineAction"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "engine"
. "."
identifier "EngineMiddleware"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "selector"
. "."
identifier "selectedTab"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "BrowserState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "ContentState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "EngineState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "SessionState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "TabSessionState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "content"
. "."
identifier "ShareResourceState"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "state"
. "."
identifier "createTab"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "browser"
. "."
identifier "state"
. "."
identifier "store"
. "."
identifier "BrowserStore"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "concept"
. "."
identifier "engine"
. "."
identifier "EngineSession"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "concept"
. "."
identifier "engine"
. "."
identifier "HitResult"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "feature"
. "."
identifier "app"
. "."
identifier "links"
. "."
identifier "AppLinkRedirect"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "feature"
. "."
identifier "app"
. "."
identifier "links"
. "."
identifier "AppLinksUseCases"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "feature"
. "."
identifier "tabs"
. "."
identifier "TabsUseCases"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "any"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "argumentCaptor"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "eq"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "middleware"
. "."
identifier "CaptureActionsMiddleware"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "mock"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "support"
. "."
identifier "test"
. "."
identifier "robolectric"
. "."
identifier "testContext"
import
import "import"
qualified_identifier
identifier "mozilla"
. "."
identifier "components"
. "."
identifier "ui"
. "."
identifier "widgets"
. "."
identifier "SnackbarDelegate"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Assert"
. "."
identifier "assertEquals"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Assert"
. "."
identifier "assertFalse"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Assert"
. "."
identifier "assertNotNull"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Assert"
. "."
identifier "assertNull"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Assert"
. "."
identifier "assertTrue"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Before"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Test"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "runner"
. "."
identifier "RunWith"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "ArgumentMatchers"
. "."
identifier "anyBoolean"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
. "."
identifier "doReturn"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
. "."
identifier "doThrow"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
. "."
identifier "spy"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
. "."
identifier "times"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "mockito"
. "."
identifier "Mockito"
. "."
identifier "verify"
class_declaration
modifiers
annotation
@ "@"
constructor_invocation
user_type
identifier "RunWith"
value_arguments
( "("
value_argument
navigation_expression
identifier "AndroidJUnit4"
:: "::"
identifier "class"
) ")"
class "class"
identifier "ContextMenuCandidateTest"
class_body
{ "{"
property_declaration
modifiers
visibility_modifier
private "private"
member_modifier
lateinit "lateinit"
var "var"
variable_declaration
identifier "snackbarDelegate"
: ":"
user_type
identifier "TestSnackbarDelegate"
function_declaration (+23 nodes collapsed)
function_declaration (+190 nodes collapsed)
function_declaration (+295 nodes collapsed)
function_declaration (+164 nodes collapsed)
function_declaration (+302 nodes collapsed)
function_declaration (+266 nodes collapsed)
function_declaration (+293 nodes collapsed)
function_declaration (+240 nodes collapsed)
function_declaration (+284 nodes collapsed)
function_declaration (+341 nodes collapsed)
function_declaration (+211 nodes collapsed)
function_declaration (+282 nodes collapsed)
function_declaration (+312 nodes collapsed)
function_declaration (+240 nodes collapsed)
function_declaration (+621 nodes collapsed)
function_declaration (+164 nodes collapsed)
function_declaration (+290 nodes collapsed)
function_declaration (+325 nodes collapsed)
function_declaration (+538 nodes collapsed)
function_declaration (+171 nodes collapsed)
function_declaration (+577 nodes collapsed)
function_declaration (+165 nodes collapsed)
function_declaration (+751 nodes collapsed)
function_declaration (+218 nodes collapsed)
function_declaration (+152 nodes collapsed)
function_declaration (+152 nodes collapsed)
function_declaration (+149 nodes collapsed)
function_declaration (+95 nodes collapsed)
function_declaration (+83 nodes collapsed)
function_declaration (+436 nodes collapsed)
function_declaration (+320 nodes collapsed)
function_declaration (+237 nodes collapsed)
function_declaration (+439 nodes collapsed)
function_declaration (+154 nodes collapsed)
function_declaration (+439 nodes collapsed)
function_declaration (+154 nodes collapsed)
function_declaration (+486 nodes collapsed)
function_declaration (+107 nodes collapsed)
function_declaration (+161 nodes collapsed)
function_declaration (+267 nodes collapsed)
function_declaration (+330 nodes collapsed)
function_declaration (+444 nodes collapsed)
function_declaration (+157 nodes collapsed)
function_declaration
modifiers
annotation
@ "@"
user_type
identifier "Test"
fun "fun"
identifier "`Candidate 'Open in external app'`"
function_value_parameters
( "("
) ")"
function_body
block
{ "{"
property_declaration
val "val"
variable_declaration
identifier "tab"
= "="
call_expression
identifier "createTab"
value_arguments
( "("
value_argument
string_literal
" "\""
string_content "https://www.mozilla.org"
" "\""
) ")"
property_declaration
val "val"
variable_declaration
identifier "getAppLinkRedirectMock"
: ":"
user_type
identifier "AppLinksUseCases"
. "."
identifier "GetAppLinkRedirect"
= "="
call_expression
identifier "mock"
value_arguments
( "("
) ")"
call_expression (+56 nodes collapsed)
call_expression (+56 nodes collapsed)
call_expression (+52 nodes collapsed)
line_comment "// This mock exists only to verify that it was called"
property_declaration
val "val"
variable_declaration
identifier "openAppLinkRedirectMock"
: ":"
user_type
identifier "AppLinksUseCases"
. "."
identifier "OpenAppLinkRedirect"
= "="
call_expression
identifier "mock"
value_arguments
( "("
) ")"
property_declaration
val "val"
variable_declaration
identifier "appLinksUseCasesMock"
: ":"
user_type
identifier "AppLinksUseCases"
= "="
call_expression
identifier "mock"
value_arguments
( "("
) ")"
navigation_expression
call_expression
navigation_expression
call_expression
identifier "doReturn"
value_arguments
( "("
value_argument
identifier "getAppLinkRedirectMock"
) ")"
. "."
identifier "`when`"
value_arguments
( "("
value_argument
identifier "appLinksUseCasesMock"
) ")"
. "."
identifier "appLinkRedirectIncludeInstall"
navigation_expression
call_expression
navigation_expression
call_expression
identifier "doReturn"
value_arguments
( "("
value_argument
identifier "openAppLinkRedirectMock"
) ")"
. "."
identifier "`when`"
value_arguments
( "("
value_argument
identifier "appLinksUseCasesMock"
) ")"
. "."
identifier "openAppLink"
property_declaration
val "val"
variable_declaration
identifier "openLinkInExternalApp"
= "="
call_expression
navigation_expression
identifier "ContextMenuCandidate"
. "."
identifier "createOpenInExternalAppCandidate"
value_arguments
( "("
value_argument
identifier "testContext"
, ","
value_argument
identifier "appLinksUseCasesMock"
, ","
) ")"
line_comment "// showFor"
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
call_expression (+33 nodes collapsed)
line_comment "// action"
call_expression (+29 nodes collapsed)
call_expression (+29 nodes collapsed)
call_expression (+29 nodes collapsed)
call_expression
navigation_expression
call_expression
identifier "verify"
value_arguments
( "("
value_argument
identifier "openAppLinkRedirectMock"
, ","
value_argument
call_expression
identifier "times"
value_arguments
( "("
value_argument
number_literal "2"
) ")"
) ")"
. "."
identifier "invoke"
value_arguments
( "("
value_argument
call_expression
identifier "any"
value_arguments
( "("
) ")"
, ","
value_argument
call_expression
identifier "anyBoolean"
value_arguments
( "("
) ")"
, ","
value_argument
call_expression
identifier "anyBoolean"
value_arguments
( "("
) ")"
, ","
value_argument
call_expression
identifier "any"
value_arguments
( "("
) ")"
) ")"
} "}"
function_declaration (+400 nodes collapsed)
function_declaration (+400 nodes collapsed)
function_declaration (+156 nodes collapsed)
function_declaration (+350 nodes collapsed)
function_declaration (+146 nodes collapsed)
function_declaration (+350 nodes collapsed)
function_declaration (+146 nodes collapsed)
function_declaration (+66 nodes collapsed)
function_declaration (+120 nodes collapsed)
function_declaration (+252 nodes collapsed)
function_declaration (+119 nodes collapsed)
} "}"
class_declaration (+257 nodes collapsed)