зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1674034 - Use mainSession instead of sessionRule.session. r=calu
`mainSession` is an alias for `sessionRule.session`. Differential Revision: https://phabricator.services.mozilla.com/D133140
This commit is contained in:
Родитель
d39f7c75ac
Коммит
884604fdea
|
@ -150,7 +150,7 @@ class AccessibilityTest : BaseSessionTest() {
|
||||||
|
|
||||||
@After fun teardown() {
|
@After fun teardown() {
|
||||||
sessionRule.runtime.settings.forceEnableAccessibility = false
|
sessionRule.runtime.settings.forceEnableAccessibility = false
|
||||||
sessionRule.session.accessibility.view = null
|
mainSession.accessibility.view = null
|
||||||
nodeInfos.forEach { node -> node.recycle() }
|
nodeInfos.forEach { node -> node.recycle() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@ class AccessibilityTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun testPageLoad() {
|
@Test fun testPageLoad() {
|
||||||
sessionRule.session.loadTestPath(INPUTS_PATH)
|
mainSession.loadTestPath(INPUTS_PATH)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : EventDelegate {
|
sessionRule.waitUntilCalled(object : EventDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -199,7 +199,7 @@ class AccessibilityTest : BaseSessionTest() {
|
||||||
|
|
||||||
@Test fun testAccessibilityFocus() {
|
@Test fun testAccessibilityFocus() {
|
||||||
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
||||||
sessionRule.session.loadTestPath(INPUTS_PATH)
|
mainSession.loadTestPath(INPUTS_PATH)
|
||||||
waitForInitialFocus(true)
|
waitForInitialFocus(true)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : EventDelegate {
|
sessionRule.waitUntilCalled(object : EventDelegate {
|
||||||
|
@ -245,7 +245,7 @@ class AccessibilityTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun loadTestPage(page: String) {
|
fun loadTestPage(page: String) {
|
||||||
sessionRule.session.loadTestPath("/assets/www/accessibility/$page.html")
|
mainSession.loadTestPath("/assets/www/accessibility/$page.html")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun testTextEntryNode() {
|
@Test fun testTextEntryNode() {
|
||||||
|
@ -487,7 +487,7 @@ class AccessibilityTest : BaseSessionTest() {
|
||||||
|
|
||||||
@Test fun testMoveByCharacter() {
|
@Test fun testMoveByCharacter() {
|
||||||
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
||||||
sessionRule.session.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
mainSession.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
||||||
waitForInitialFocus(true)
|
waitForInitialFocus(true)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : EventDelegate {
|
sessionRule.waitUntilCalled(object : EventDelegate {
|
||||||
|
@ -517,7 +517,7 @@ class AccessibilityTest : BaseSessionTest() {
|
||||||
|
|
||||||
@Test fun testMoveByWord() {
|
@Test fun testMoveByWord() {
|
||||||
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
||||||
sessionRule.session.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
mainSession.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
||||||
waitForInitialFocus(true)
|
waitForInitialFocus(true)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : EventDelegate {
|
sessionRule.waitUntilCalled(object : EventDelegate {
|
||||||
|
@ -547,7 +547,7 @@ class AccessibilityTest : BaseSessionTest() {
|
||||||
|
|
||||||
@Test fun testMoveByLine() {
|
@Test fun testMoveByLine() {
|
||||||
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
||||||
sessionRule.session.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
mainSession.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
||||||
waitForInitialFocus(true)
|
waitForInitialFocus(true)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : EventDelegate {
|
sessionRule.waitUntilCalled(object : EventDelegate {
|
||||||
|
@ -577,7 +577,7 @@ class AccessibilityTest : BaseSessionTest() {
|
||||||
|
|
||||||
@Test fun testMoveByCharacterAtEdges() {
|
@Test fun testMoveByCharacterAtEdges() {
|
||||||
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
||||||
sessionRule.session.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
mainSession.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
||||||
waitForInitialFocus()
|
waitForInitialFocus()
|
||||||
|
|
||||||
// Move to the first link containing "anim id".
|
// Move to the first link containing "anim id".
|
||||||
|
@ -627,7 +627,7 @@ class AccessibilityTest : BaseSessionTest() {
|
||||||
|
|
||||||
@Test fun testMoveByWordAtEdges() {
|
@Test fun testMoveByWordAtEdges() {
|
||||||
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
||||||
sessionRule.session.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
mainSession.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
||||||
waitForInitialFocus()
|
waitForInitialFocus()
|
||||||
|
|
||||||
// Move to the first link containing "anim id".
|
// Move to the first link containing "anim id".
|
||||||
|
@ -677,7 +677,7 @@ class AccessibilityTest : BaseSessionTest() {
|
||||||
|
|
||||||
@Test fun testMoveAtEndOfTextTrailingWhitespace() {
|
@Test fun testMoveAtEndOfTextTrailingWhitespace() {
|
||||||
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
var nodeId = AccessibilityNodeProvider.HOST_VIEW_ID
|
||||||
sessionRule.session.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
mainSession.loadTestPath(LOREM_IPSUM_HTML_PATH)
|
||||||
waitForInitialFocus(true)
|
waitForInitialFocus(true)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : EventDelegate {
|
sessionRule.waitUntilCalled(object : EventDelegate {
|
||||||
|
|
|
@ -129,8 +129,8 @@ class ContentBlockingControllerTest : BaseSessionTest() {
|
||||||
fun getLog() {
|
fun getLog() {
|
||||||
val category = ContentBlocking.AntiTracking.TEST
|
val category = ContentBlocking.AntiTracking.TEST
|
||||||
sessionRule.runtime.settings.contentBlocking.setAntiTracking(category)
|
sessionRule.runtime.settings.contentBlocking.setAntiTracking(category)
|
||||||
sessionRule.session.settings.useTrackingProtection = true
|
mainSession.settings.useTrackingProtection = true
|
||||||
sessionRule.session.loadTestPath(TRACKERS_PATH)
|
mainSession.loadTestPath(TRACKERS_PATH)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : ContentBlocking.Delegate {
|
sessionRule.waitUntilCalled(object : ContentBlocking.Delegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -140,7 +140,7 @@ class ContentBlockingControllerTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.waitForResult(sessionRule.runtime.contentBlockingController.getLog(sessionRule.session).accept {
|
sessionRule.waitForResult(sessionRule.runtime.contentBlockingController.getLog(mainSession).accept {
|
||||||
assertThat("Log must not be null", it, notNullValue())
|
assertThat("Log must not be null", it, notNullValue())
|
||||||
assertThat("Log must have at least one entry", it?.size, not(0))
|
assertThat("Log must have at least one entry", it?.size, not(0))
|
||||||
it?.forEach {
|
it?.forEach {
|
||||||
|
|
|
@ -32,7 +32,7 @@ import org.mozilla.geckoview.test.rule.GeckoSessionTestRule.NullDelegate
|
||||||
@MediumTest
|
@MediumTest
|
||||||
class ContentDelegateTest : BaseSessionTest() {
|
class ContentDelegateTest : BaseSessionTest() {
|
||||||
@Test fun titleChange() {
|
@Test fun titleChange() {
|
||||||
sessionRule.session.loadTestPath(TITLE_CHANGE_HTML_PATH)
|
mainSession.loadTestPath(TITLE_CHANGE_HTML_PATH)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 2)
|
@AssertCalled(count = 2)
|
||||||
|
@ -47,7 +47,7 @@ class ContentDelegateTest : BaseSessionTest() {
|
||||||
// disable test on pgo for frequently failing Bug 1543355
|
// disable test on pgo for frequently failing Bug 1543355
|
||||||
assumeThat(sessionRule.env.isDebugBuild, equalTo(true))
|
assumeThat(sessionRule.env.isDebugBuild, equalTo(true))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(DOWNLOAD_HTML_PATH)
|
mainSession.loadTestPath(DOWNLOAD_HTML_PATH)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : NavigationDelegate, ContentDelegate {
|
sessionRule.waitUntilCalled(object : NavigationDelegate, ContentDelegate {
|
||||||
|
|
||||||
|
@ -395,7 +395,7 @@ class ContentDelegateTest : BaseSessionTest() {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
assertThat("The script did not complete.",
|
assertThat("The script did not complete.",
|
||||||
sessionRule.session.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
mainSession.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
||||||
equalTo("Started"))
|
equalTo("Started"))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -413,7 +413,7 @@ class ContentDelegateTest : BaseSessionTest() {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
assertThat("The script did not complete.",
|
assertThat("The script did not complete.",
|
||||||
sessionRule.session.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
mainSession.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
||||||
equalTo("Started"))
|
equalTo("Started"))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -437,7 +437,7 @@ class ContentDelegateTest : BaseSessionTest() {
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
assertThat("The delegate was informed of the hang repeatedly", scriptHungReportCount, greaterThan(1))
|
assertThat("The delegate was informed of the hang repeatedly", scriptHungReportCount, greaterThan(1))
|
||||||
assertThat("The script did complete.",
|
assertThat("The script did complete.",
|
||||||
sessionRule.session.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
mainSession.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
||||||
equalTo("Finished"))
|
equalTo("Finished"))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -458,7 +458,7 @@ class ContentDelegateTest : BaseSessionTest() {
|
||||||
@AssertCalled(count = 1, order = [2])
|
@AssertCalled(count = 1, order = [2])
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
assertThat("The script did not complete.",
|
assertThat("The script did not complete.",
|
||||||
sessionRule.session.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
mainSession.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
||||||
equalTo("Started"))
|
equalTo("Started"))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -479,7 +479,7 @@ class ContentDelegateTest : BaseSessionTest() {
|
||||||
@AssertCalled(count = 1, order = [2])
|
@AssertCalled(count = 1, order = [2])
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
assertThat("The script did complete.",
|
assertThat("The script did complete.",
|
||||||
sessionRule.session.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
mainSession.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
||||||
equalTo("Finished"))
|
equalTo("Finished"))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -506,7 +506,7 @@ class ContentDelegateTest : BaseSessionTest() {
|
||||||
@AssertCalled(count = 1, order = [3])
|
@AssertCalled(count = 1, order = [3])
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
assertThat("The script did not complete.",
|
assertThat("The script did not complete.",
|
||||||
sessionRule.session.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
mainSession.evaluateJS("document.getElementById(\"content\").innerHTML") as String,
|
||||||
equalTo("Started"))
|
equalTo("Started"))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -152,15 +152,15 @@ class DynamicToolbarTest : BaseSessionTest() {
|
||||||
mainSession.loadTestPath(BaseSessionTest.FIXED_VH)
|
mainSession.loadTestPath(BaseSessionTest.FIXED_VH)
|
||||||
mainSession.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
val pixelRatio = sessionRule.session.evaluateJS("window.devicePixelRatio") as Double
|
val pixelRatio = mainSession.evaluateJS("window.devicePixelRatio") as Double
|
||||||
val scale = sessionRule.session.evaluateJS("window.visualViewport.scale") as Double
|
val scale = mainSession.evaluateJS("window.visualViewport.scale") as Double
|
||||||
|
|
||||||
for (i in 1..dynamicToolbarMaxHeight) {
|
for (i in 1..dynamicToolbarMaxHeight) {
|
||||||
// Simulate the dynamic toolbar is going to be hidden.
|
// Simulate the dynamic toolbar is going to be hidden.
|
||||||
sessionRule.display?.run { setVerticalClipping(-i) }
|
sessionRule.display?.run { setVerticalClipping(-i) }
|
||||||
|
|
||||||
val expectedViewportHeight = (SCREEN_HEIGHT - dynamicToolbarMaxHeight + i) / scale / pixelRatio
|
val expectedViewportHeight = (SCREEN_HEIGHT - dynamicToolbarMaxHeight + i) / scale / pixelRatio
|
||||||
val promise = sessionRule.session.evaluatePromiseJS("""
|
val promise = mainSession.evaluatePromiseJS("""
|
||||||
new Promise(resolve => {
|
new Promise(resolve => {
|
||||||
window.visualViewport.addEventListener('resize', resolve(window.visualViewport.height));
|
window.visualViewport.addEventListener('resize', resolve(window.visualViewport.height));
|
||||||
});
|
});
|
||||||
|
@ -203,7 +203,7 @@ class DynamicToolbarTest : BaseSessionTest() {
|
||||||
getComputedStyle(document.querySelector('#fixed-element')).height
|
getComputedStyle(document.querySelector('#fixed-element')).height
|
||||||
""".trimIndent()) as String
|
""".trimIndent()) as String
|
||||||
|
|
||||||
val scale = sessionRule.session.evaluateJS("window.visualViewport.scale") as Double
|
val scale = mainSession.evaluateJS("window.visualViewport.scale") as Double
|
||||||
val expectedHeight = (SCREEN_HEIGHT / scale).toInt()
|
val expectedHeight = (SCREEN_HEIGHT / scale).toInt()
|
||||||
assertThat("The %-based height should be now recomputed based on the screen height",
|
assertThat("The %-based height should be now recomputed based on the screen height",
|
||||||
height, equalTo(expectedHeight.toString() + "px"))
|
height, equalTo(expectedHeight.toString() + "px"))
|
||||||
|
@ -222,7 +222,7 @@ class DynamicToolbarTest : BaseSessionTest() {
|
||||||
mainSession.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
for (i in 1..dynamicToolbarMaxHeight - 1) {
|
for (i in 1..dynamicToolbarMaxHeight - 1) {
|
||||||
val promise = sessionRule.session.evaluatePromiseJS("""
|
val promise = mainSession.evaluatePromiseJS("""
|
||||||
new Promise(resolve => {
|
new Promise(resolve => {
|
||||||
let fired = false;
|
let fired = false;
|
||||||
window.addEventListener('resize', () => { fired = true; }, { once: true });
|
window.addEventListener('resize', () => { fired = true; }, { once: true });
|
||||||
|
@ -239,7 +239,7 @@ class DynamicToolbarTest : BaseSessionTest() {
|
||||||
promise.value as Boolean, equalTo(false));
|
promise.value as Boolean, equalTo(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
val promise = sessionRule.session.evaluatePromiseJS("""
|
val promise = mainSession.evaluatePromiseJS("""
|
||||||
new Promise(resolve => {
|
new Promise(resolve => {
|
||||||
window.addEventListener('resize', () => { resolve(true); }, { once: true });
|
window.addEventListener('resize', () => { resolve(true); }, { once: true });
|
||||||
});
|
});
|
||||||
|
@ -265,10 +265,10 @@ class DynamicToolbarTest : BaseSessionTest() {
|
||||||
mainSession.loadTestPath(BaseSessionTest.FIXED_BOTTOM)
|
mainSession.loadTestPath(BaseSessionTest.FIXED_BOTTOM)
|
||||||
mainSession.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
val pixelRatio = sessionRule.session.evaluateJS("window.devicePixelRatio") as Double
|
val pixelRatio = mainSession.evaluateJS("window.devicePixelRatio") as Double
|
||||||
|
|
||||||
for (i in 1..dynamicToolbarMaxHeight - 1) {
|
for (i in 1..dynamicToolbarMaxHeight - 1) {
|
||||||
val promise = sessionRule.session.evaluatePromiseJS("""
|
val promise = mainSession.evaluatePromiseJS("""
|
||||||
new Promise(resolve => {
|
new Promise(resolve => {
|
||||||
window.visualViewport.addEventListener('resize', resolve(window.innerHeight));
|
window.visualViewport.addEventListener('resize', resolve(window.innerHeight));
|
||||||
});
|
});
|
||||||
|
@ -280,7 +280,7 @@ class DynamicToolbarTest : BaseSessionTest() {
|
||||||
promise.value as Double, closeTo(SCREEN_HEIGHT / 2 / pixelRatio, .01))
|
promise.value as Double, closeTo(SCREEN_HEIGHT / 2 / pixelRatio, .01))
|
||||||
}
|
}
|
||||||
|
|
||||||
val promise = sessionRule.session.evaluatePromiseJS("""
|
val promise = mainSession.evaluatePromiseJS("""
|
||||||
new Promise(resolve => {
|
new Promise(resolve => {
|
||||||
window.addEventListener('resize', () => { resolve(window.innerHeight); }, { once: true });
|
window.addEventListener('resize', () => { resolve(window.innerHeight); }, { once: true });
|
||||||
});
|
});
|
||||||
|
@ -303,7 +303,7 @@ class DynamicToolbarTest : BaseSessionTest() {
|
||||||
mainSession.loadTestPath(BaseSessionTest.FIXED_VH)
|
mainSession.loadTestPath(BaseSessionTest.FIXED_VH)
|
||||||
mainSession.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
val promise = sessionRule.session.evaluatePromiseJS("""
|
val promise = mainSession.evaluatePromiseJS("""
|
||||||
new Promise(resolve => window.addEventListener('resize', () => resolve(true)));
|
new Promise(resolve => window.addEventListener('resize', () => resolve(true)));
|
||||||
""".trimIndent())
|
""".trimIndent())
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ class ExtensionActionTest : BaseSessionTest() {
|
||||||
extension = sessionRule.waitForResult(
|
extension = sessionRule.waitForResult(
|
||||||
controller.installBuiltIn("resource://android/assets/web_extensions/actions/"));
|
controller.installBuiltIn("resource://android/assets/web_extensions/actions/"));
|
||||||
|
|
||||||
sessionRule.session.webExtensionController.setMessageDelegate(
|
mainSession.webExtensionController.setMessageDelegate(
|
||||||
extension!!,
|
extension!!,
|
||||||
object : WebExtension.MessageDelegate {
|
object : WebExtension.MessageDelegate {
|
||||||
override fun onConnect(port: WebExtension.Port) {
|
override fun onConnect(port: WebExtension.Port) {
|
||||||
|
@ -86,7 +86,7 @@ class ExtensionActionTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadUri("http://example.com")
|
mainSession.loadUri("http://example.com")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
val pageAction = sessionRule.waitForResult(pageActionDefaultResult)
|
val pageAction = sessionRule.waitForResult(pageActionDefaultResult)
|
||||||
|
@ -174,8 +174,8 @@ class ExtensionActionTest : BaseSessionTest() {
|
||||||
sessionRule.addExternalDelegateDuringNextWait(
|
sessionRule.addExternalDelegateDuringNextWait(
|
||||||
WebExtension.ActionDelegate::class,
|
WebExtension.ActionDelegate::class,
|
||||||
{ delegate ->
|
{ delegate ->
|
||||||
sessionRule.session.webExtensionController.setActionDelegate(extension!!, delegate) },
|
mainSession.webExtensionController.setActionDelegate(extension!!, delegate) },
|
||||||
{ sessionRule.session.webExtensionController.setActionDelegate(extension!!, null) },
|
{ mainSession.webExtensionController.setActionDelegate(extension!!, null) },
|
||||||
object : WebExtension.ActionDelegate {
|
object : WebExtension.ActionDelegate {
|
||||||
override fun onBrowserAction(extension: WebExtension, session: GeckoSession?, action: WebExtension.Action) {
|
override fun onBrowserAction(extension: WebExtension, session: GeckoSession?, action: WebExtension.Action) {
|
||||||
assertEquals(id, "#browserAction")
|
assertEquals(id, "#browserAction")
|
||||||
|
@ -505,7 +505,7 @@ class ExtensionActionTest : BaseSessionTest() {
|
||||||
}"""))
|
}"""))
|
||||||
|
|
||||||
val openPopup = GeckoResult<Void>()
|
val openPopup = GeckoResult<Void>()
|
||||||
sessionRule.session.webExtensionController.setActionDelegate(extension!!,
|
mainSession.webExtensionController.setActionDelegate(extension!!,
|
||||||
object : WebExtension.ActionDelegate {
|
object : WebExtension.ActionDelegate {
|
||||||
override fun onOpenPopup(extension: WebExtension,
|
override fun onOpenPopup(extension: WebExtension,
|
||||||
popupAction: WebExtension.Action): GeckoResult<GeckoSession>? {
|
popupAction: WebExtension.Action): GeckoResult<GeckoSession>? {
|
||||||
|
@ -518,7 +518,7 @@ class ExtensionActionTest : BaseSessionTest() {
|
||||||
|
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
// openPopup needs user activation
|
// openPopup needs user activation
|
||||||
sessionRule.session.synthesizeTap(50, 50)
|
mainSession.synthesizeTap(50, 50)
|
||||||
|
|
||||||
sessionRule.waitForResult(openPopup)
|
sessionRule.waitForResult(openPopup)
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,14 +39,14 @@ import org.junit.runner.RunWith
|
||||||
class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test fun getSession() {
|
@Test fun getSession() {
|
||||||
assertThat("Can get session", sessionRule.session, notNullValue())
|
assertThat("Can get session", mainSession, notNullValue())
|
||||||
assertThat("Session is open",
|
assertThat("Session is open",
|
||||||
sessionRule.session.isOpen, equalTo(true))
|
mainSession.isOpen, equalTo(true))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ClosedSessionAtStart
|
@ClosedSessionAtStart
|
||||||
@Test fun getSession_closedSession() {
|
@Test fun getSession_closedSession() {
|
||||||
assertThat("Session is closed", sessionRule.session.isOpen, equalTo(false))
|
assertThat("Session is closed", mainSession.isOpen, equalTo(false))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Setting.List(Setting(key = Setting.Key.USE_PRIVATE_MODE, value = "true"),
|
@Setting.List(Setting(key = Setting.Key.USE_PRIVATE_MODE, value = "true"),
|
||||||
|
@ -55,16 +55,16 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@Setting(key = Setting.Key.USE_TRACKING_PROTECTION, value = "true")
|
@Setting(key = Setting.Key.USE_TRACKING_PROTECTION, value = "true")
|
||||||
@Test fun settingsApplied() {
|
@Test fun settingsApplied() {
|
||||||
assertThat("USE_PRIVATE_MODE should be set",
|
assertThat("USE_PRIVATE_MODE should be set",
|
||||||
sessionRule.session.settings.usePrivateMode,
|
mainSession.settings.usePrivateMode,
|
||||||
equalTo(true))
|
equalTo(true))
|
||||||
assertThat("DISPLAY_MODE should be set",
|
assertThat("DISPLAY_MODE should be set",
|
||||||
sessionRule.session.settings.displayMode,
|
mainSession.settings.displayMode,
|
||||||
equalTo(GeckoSessionSettings.DISPLAY_MODE_MINIMAL_UI))
|
equalTo(GeckoSessionSettings.DISPLAY_MODE_MINIMAL_UI))
|
||||||
assertThat("USE_TRACKING_PROTECTION should be set",
|
assertThat("USE_TRACKING_PROTECTION should be set",
|
||||||
sessionRule.session.settings.useTrackingProtection,
|
mainSession.settings.useTrackingProtection,
|
||||||
equalTo(true))
|
equalTo(true))
|
||||||
assertThat("ALLOW_JAVASCRIPT should be set",
|
assertThat("ALLOW_JAVASCRIPT should be set",
|
||||||
sessionRule.session.settings.allowJavascript,
|
mainSession.settings.allowJavascript,
|
||||||
equalTo(false))
|
equalTo(false))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,21 +90,21 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@NullDelegate(ScrollDelegate::class)
|
@NullDelegate(ScrollDelegate::class)
|
||||||
@Test fun nullDelegate() {
|
@Test fun nullDelegate() {
|
||||||
assertThat("Content delegate should be null",
|
assertThat("Content delegate should be null",
|
||||||
sessionRule.session.contentDelegate, nullValue())
|
mainSession.contentDelegate, nullValue())
|
||||||
assertThat("Navigation delegate should be null",
|
assertThat("Navigation delegate should be null",
|
||||||
sessionRule.session.navigationDelegate, nullValue())
|
mainSession.navigationDelegate, nullValue())
|
||||||
assertThat("Scroll delegate should be null",
|
assertThat("Scroll delegate should be null",
|
||||||
sessionRule.session.scrollDelegate, nullValue())
|
mainSession.scrollDelegate, nullValue())
|
||||||
|
|
||||||
assertThat("Progress delegate should not be null",
|
assertThat("Progress delegate should not be null",
|
||||||
sessionRule.session.progressDelegate, notNullValue())
|
mainSession.progressDelegate, notNullValue())
|
||||||
}
|
}
|
||||||
|
|
||||||
@NullDelegate(ProgressDelegate::class)
|
@NullDelegate(ProgressDelegate::class)
|
||||||
@ClosedSessionAtStart
|
@ClosedSessionAtStart
|
||||||
@Test fun nullDelegate_closed() {
|
@Test fun nullDelegate_closed() {
|
||||||
assertThat("Progress delegate should be null",
|
assertThat("Progress delegate should be null",
|
||||||
sessionRule.session.progressDelegate, nullValue())
|
mainSession.progressDelegate, nullValue())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
|
@ -112,13 +112,13 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@ClosedSessionAtStart
|
@ClosedSessionAtStart
|
||||||
fun nullDelegate_requireProgressOnOpen() {
|
fun nullDelegate_requireProgressOnOpen() {
|
||||||
assertThat("Progress delegate should be null",
|
assertThat("Progress delegate should be null",
|
||||||
sessionRule.session.progressDelegate, nullValue())
|
mainSession.progressDelegate, nullValue())
|
||||||
|
|
||||||
sessionRule.session.open()
|
mainSession.open()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitForPageStop() {
|
@Test fun waitForPageStop() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
@ -133,8 +133,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitForPageStops() {
|
@Test fun waitForPageStops() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
@ -152,18 +152,18 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@NullDelegate(ProgressDelegate::class)
|
@NullDelegate(ProgressDelegate::class)
|
||||||
@ClosedSessionAtStart
|
@ClosedSessionAtStart
|
||||||
fun waitForPageStops_throwOnNullDelegate() {
|
fun waitForPageStops_throwOnNullDelegate() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.open(sessionRule.runtime) // Avoid waiting for initial load
|
mainSession.open(sessionRule.runtime) // Avoid waiting for initial load
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStops(2)
|
mainSession.waitForPageStops(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitUntilCalled_anyInterfaceMethod() {
|
@Test fun waitUntilCalled_anyInterfaceMethod() {
|
||||||
// TODO: Bug 1673953
|
// TODO: Bug 1673953
|
||||||
assumeThat(sessionRule.env.isFission, equalTo(false))
|
assumeThat(sessionRule.env.isFission, equalTo(false))
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(ProgressDelegate::class)
|
sessionRule.waitUntilCalled(ProgressDelegate::class)
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
@ -195,7 +195,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitUntilCalled_specificInterfaceMethod() {
|
@Test fun waitUntilCalled_specificInterfaceMethod() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(ProgressDelegate::class,
|
sessionRule.waitUntilCalled(ProgressDelegate::class,
|
||||||
"onPageStart", "onPageStop")
|
"onPageStart", "onPageStop")
|
||||||
|
|
||||||
|
@ -216,28 +216,28 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
fun waitUntilCalled_throwOnNotGeckoSessionInterface() {
|
fun waitUntilCalled_throwOnNotGeckoSessionInterface() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(CharSequence::class)
|
sessionRule.waitUntilCalled(CharSequence::class)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun waitUntilCalled_notThrowOnCallbackInterface() {
|
fun waitUntilCalled_notThrowOnCallbackInterface() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(ProgressDelegate::class)
|
sessionRule.waitUntilCalled(ProgressDelegate::class)
|
||||||
}
|
}
|
||||||
|
|
||||||
@NullDelegate(ScrollDelegate::class)
|
@NullDelegate(ScrollDelegate::class)
|
||||||
@Test fun waitUntilCalled_notThrowOnNonNullDelegateMethod() {
|
@Test fun waitUntilCalled_notThrowOnNonNullDelegateMethod() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitUntilCalled(ProgressDelegate::class, "onPageStop")
|
mainSession.waitUntilCalled(ProgressDelegate::class, "onPageStop")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitUntilCalled_anyObjectMethod() {
|
@Test fun waitUntilCalled_anyObjectMethod() {
|
||||||
// TODO: Bug 1673953
|
// TODO: Bug 1673953
|
||||||
assumeThat(sessionRule.env.isFission, equalTo(false))
|
assumeThat(sessionRule.env.isFission, equalTo(false))
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
|
||||||
|
@ -268,7 +268,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitUntilCalled_specificObjectMethod() {
|
@Test fun waitUntilCalled_specificObjectMethod() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
|
||||||
|
@ -290,11 +290,11 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
@NullDelegate(ScrollDelegate::class)
|
@NullDelegate(ScrollDelegate::class)
|
||||||
fun waitUntilCalled_throwOnNullDelegateObject() {
|
fun waitUntilCalled_throwOnNullDelegateObject() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitUntilCalled(object : ScrollDelegate {
|
mainSession.waitUntilCalled(object : ScrollDelegate {
|
||||||
@AssertCalled
|
@AssertCalled
|
||||||
override fun onScrollChanged(session: GeckoSession, scrollX: Int, scrollY: Int) {
|
override fun onScrollChanged(session: GeckoSession, scrollX: Int, scrollY: Int) {
|
||||||
}
|
}
|
||||||
|
@ -303,11 +303,11 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@NullDelegate(ScrollDelegate::class)
|
@NullDelegate(ScrollDelegate::class)
|
||||||
@Test fun waitUntilCalled_notThrowOnNonNullDelegateObject() {
|
@Test fun waitUntilCalled_notThrowOnNonNullDelegateObject() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitUntilCalled(object : ProgressDelegate {
|
mainSession.waitUntilCalled(object : ProgressDelegate {
|
||||||
@AssertCalled
|
@AssertCalled
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
}
|
}
|
||||||
|
@ -315,8 +315,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitUntilCalled_multipleCount() {
|
@Test fun waitUntilCalled_multipleCount() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
|
||||||
|
@ -336,8 +336,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitUntilCalled_currentCall() {
|
@Test fun waitUntilCalled_currentCall() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
|
||||||
|
@ -359,7 +359,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = IllegalStateException::class)
|
@Test(expected = IllegalStateException::class)
|
||||||
fun waitUntilCalled_passThroughExceptions() {
|
fun waitUntilCalled_passThroughExceptions() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ProgressDelegate {
|
sessionRule.waitUntilCalled(object : ProgressDelegate {
|
||||||
@AssertCalled
|
@AssertCalled
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
|
@ -370,7 +370,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test fun waitUntilCalled_zeroCount() {
|
@Test fun waitUntilCalled_zeroCount() {
|
||||||
// Support having @AssertCalled(count = 0) annotations for waitUntilCalled calls.
|
// Support having @AssertCalled(count = 0) annotations for waitUntilCalled calls.
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ProgressDelegate, ScrollDelegate {
|
sessionRule.waitUntilCalled(object : ProgressDelegate, ScrollDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
|
@ -385,7 +385,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@Test fun forCallbacksDuringWait_anyMethod() {
|
@Test fun forCallbacksDuringWait_anyMethod() {
|
||||||
// TODO: Bug 1673953
|
// TODO: Bug 1673953
|
||||||
assumeThat(sessionRule.env.isFission, equalTo(false))
|
assumeThat(sessionRule.env.isFission, equalTo(false))
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
@ -401,14 +401,14 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
fun forCallbacksDuringWait_throwOnAnyMethodNotCalled() {
|
fun forCallbacksDuringWait_throwOnAnyMethodNotCalled() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ScrollDelegate {})
|
sessionRule.forCallbacksDuringWait(object : ScrollDelegate {})
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun forCallbacksDuringWait_specificMethod() {
|
@Test fun forCallbacksDuringWait_specificMethod() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
@ -429,8 +429,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun forCallbacksDuringWait_specificMethodMultipleTimes() {
|
@Test fun forCallbacksDuringWait_specificMethodMultipleTimes() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
@ -452,7 +452,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
fun forCallbacksDuringWait_throwOnSpecificMethodNotCalled() {
|
fun forCallbacksDuringWait_throwOnSpecificMethodNotCalled() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ScrollDelegate {
|
sessionRule.forCallbacksDuringWait(object : ScrollDelegate {
|
||||||
|
@ -463,8 +463,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun forCallbacksDuringWait_specificCount() {
|
@Test fun forCallbacksDuringWait_specificCount() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
@ -486,8 +486,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
fun forCallbacksDuringWait_throwOnWrongCount() {
|
fun forCallbacksDuringWait_throwOnWrongCount() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -502,7 +502,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun forCallbacksDuringWait_specificOrder() {
|
@Test fun forCallbacksDuringWait_specificOrder() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -518,7 +518,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
fun forCallbacksDuringWait_throwOnWrongOrder() {
|
fun forCallbacksDuringWait_throwOnWrongOrder() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -533,8 +533,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun forCallbacksDuringWait_multipleOrder() {
|
@Test fun forCallbacksDuringWait_multipleOrder() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -550,8 +550,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
fun forCallbacksDuringWait_throwOnWrongMultipleOrder() {
|
fun forCallbacksDuringWait_throwOnWrongMultipleOrder() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -566,7 +566,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun forCallbacksDuringWait_notCalled() {
|
@Test fun forCallbacksDuringWait_notCalled() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ScrollDelegate {
|
sessionRule.forCallbacksDuringWait(object : ScrollDelegate {
|
||||||
|
@ -578,7 +578,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
fun forCallbacksDuringWait_throwOnCallingNoCall() {
|
fun forCallbacksDuringWait_throwOnCallingNoCall() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -589,7 +589,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun forCallbacksDuringWait_zeroCountEqualsNotCalled() {
|
@Test fun forCallbacksDuringWait_zeroCountEqualsNotCalled() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ScrollDelegate {
|
sessionRule.forCallbacksDuringWait(object : ScrollDelegate {
|
||||||
|
@ -601,7 +601,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
fun forCallbacksDuringWait_throwOnCallingZeroCount() {
|
fun forCallbacksDuringWait_throwOnCallingZeroCount() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -612,10 +612,10 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun forCallbacksDuringWait_limitedToLastWait() {
|
@Test fun forCallbacksDuringWait_limitedToLastWait() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
|
|
||||||
// Wait for Gecko to finish all loads.
|
// Wait for Gecko to finish all loads.
|
||||||
Thread.sleep(100)
|
Thread.sleep(100)
|
||||||
|
@ -642,7 +642,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun forCallbacksDuringWait_currentCall() {
|
@Test fun forCallbacksDuringWait_currentCall() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -660,7 +660,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = IllegalStateException::class)
|
@Test(expected = IllegalStateException::class)
|
||||||
fun forCallbacksDuringWait_passThroughExceptions() {
|
fun forCallbacksDuringWait_passThroughExceptions() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -674,23 +674,23 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
@NullDelegate(ScrollDelegate::class)
|
@NullDelegate(ScrollDelegate::class)
|
||||||
fun forCallbacksDuringWait_throwOnAnyNullDelegate() {
|
fun forCallbacksDuringWait_throwOnAnyNullDelegate() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.forCallbacksDuringWait(object : NavigationDelegate, ScrollDelegate {})
|
mainSession.forCallbacksDuringWait(object : NavigationDelegate, ScrollDelegate {})
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
@NullDelegate(ScrollDelegate::class)
|
@NullDelegate(ScrollDelegate::class)
|
||||||
fun forCallbacksDuringWait_throwOnSpecificNullDelegate() {
|
fun forCallbacksDuringWait_throwOnSpecificNullDelegate() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.forCallbacksDuringWait(object : ScrollDelegate {
|
mainSession.forCallbacksDuringWait(object : ScrollDelegate {
|
||||||
@AssertCalled
|
@AssertCalled
|
||||||
override fun onScrollChanged(session: GeckoSession, scrollX: Int, scrollY: Int) {
|
override fun onScrollChanged(session: GeckoSession, scrollX: Int, scrollY: Int) {
|
||||||
}
|
}
|
||||||
|
@ -699,12 +699,12 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@NullDelegate(ScrollDelegate::class)
|
@NullDelegate(ScrollDelegate::class)
|
||||||
@Test fun forCallbacksDuringWait_notThrowOnNonNullDelegate() {
|
@Test fun forCallbacksDuringWait_notThrowOnNonNullDelegate() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.forCallbacksDuringWait(object : ProgressDelegate {
|
mainSession.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
@AssertCalled
|
@AssertCalled
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
}
|
}
|
||||||
|
@ -731,7 +731,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
assertThat("Callback count should be correct", counter, equalTo(2))
|
assertThat("Callback count should be correct", counter, equalTo(2))
|
||||||
|
@ -763,7 +763,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -779,7 +779,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -796,12 +796,12 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun delegateDuringNextWait() {
|
@Test fun delegateDuringNextWait() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
|
||||||
|
@ -817,12 +817,12 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
assertThat("Should have delegated", counter, equalTo(2))
|
assertThat("Should have delegated", counter, equalTo(2))
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
assertThat("Delegate should be cleared", counter, equalTo(2))
|
assertThat("Delegate should be cleared", counter, equalTo(2))
|
||||||
|
@ -835,7 +835,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
override fun onScrollChanged(session: GeckoSession, scrollX: Int, scrollY: Int) {
|
override fun onScrollChanged(session: GeckoSession, scrollX: Int, scrollY: Int) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -888,14 +888,14 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
assertThat("Text delegate should be overridden",
|
assertThat("Text delegate should be overridden",
|
||||||
testCounter, equalTo(2))
|
testCounter, equalTo(2))
|
||||||
assertThat("Wait delegate should be used", waitCounter, equalTo(2))
|
assertThat("Wait delegate should be used", waitCounter, equalTo(2))
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
assertThat("Test delegate should be used", testCounter, equalTo(6))
|
assertThat("Test delegate should be used", testCounter, equalTo(6))
|
||||||
|
@ -911,14 +911,14 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
@NullDelegate(NavigationDelegate::class)
|
@NullDelegate(NavigationDelegate::class)
|
||||||
fun delegateDuringNextWait_throwOnNullDelegate() {
|
fun delegateDuringNextWait_throwOnNullDelegate() {
|
||||||
sessionRule.session.delegateDuringNextWait(object : NavigationDelegate {
|
mainSession.delegateDuringNextWait(object : NavigationDelegate {
|
||||||
override fun onLocationChange(session: GeckoSession, url: String?) {
|
override fun onLocationChange(session: GeckoSession, url: String?) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -926,7 +926,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test fun wrapSession() {
|
@Test fun wrapSession() {
|
||||||
val session = sessionRule.wrapSession(
|
val session = sessionRule.wrapSession(
|
||||||
GeckoSession(sessionRule.session.settings))
|
GeckoSession(mainSession.settings))
|
||||||
sessionRule.openSession(session)
|
sessionRule.openSession(session)
|
||||||
session.reload()
|
session.reload()
|
||||||
session.waitForPageStop()
|
session.waitForPageStop()
|
||||||
|
@ -937,11 +937,11 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
assertThat("Can create session", newSession, notNullValue())
|
assertThat("Can create session", newSession, notNullValue())
|
||||||
assertThat("New session is open", newSession.isOpen, equalTo(true))
|
assertThat("New session is open", newSession.isOpen, equalTo(true))
|
||||||
assertThat("New session has same settings",
|
assertThat("New session has same settings",
|
||||||
newSession.settings, equalTo(sessionRule.session.settings))
|
newSession.settings, equalTo(mainSession.settings))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun createOpenSession_withSettings() {
|
@Test fun createOpenSession_withSettings() {
|
||||||
val settings = GeckoSessionSettings.Builder(sessionRule.session.settings)
|
val settings = GeckoSessionSettings.Builder(mainSession.settings)
|
||||||
.usePrivateMode(true)
|
.usePrivateMode(true)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
@ -953,10 +953,10 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
// TODO: Bug 1673953
|
// TODO: Bug 1673953
|
||||||
assumeThat(sessionRule.env.isFission, equalTo(false))
|
assumeThat(sessionRule.env.isFission, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
|
|
||||||
val newSession = sessionRule.createOpenSession()
|
val newSession = sessionRule.createOpenSession()
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
newSession.forCallbacksDuringWait(object : ProgressDelegate {
|
newSession.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -965,7 +965,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.forCallbacksDuringWait(object : ProgressDelegate {
|
mainSession.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
@AssertCalled(count = 2)
|
@AssertCalled(count = 2)
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
}
|
}
|
||||||
|
@ -977,11 +977,11 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
assertThat("Can create session", newSession, notNullValue())
|
assertThat("Can create session", newSession, notNullValue())
|
||||||
assertThat("New session is open", newSession.isOpen, equalTo(false))
|
assertThat("New session is open", newSession.isOpen, equalTo(false))
|
||||||
assertThat("New session has same settings",
|
assertThat("New session has same settings",
|
||||||
newSession.settings, equalTo(sessionRule.session.settings))
|
newSession.settings, equalTo(mainSession.settings))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun createClosedSession_withSettings() {
|
@Test fun createClosedSession_withSettings() {
|
||||||
val settings = GeckoSessionSettings.Builder(sessionRule.session.settings).usePrivateMode(true).build()
|
val settings = GeckoSessionSettings.Builder(mainSession.settings).usePrivateMode(true).build()
|
||||||
|
|
||||||
val newSession = sessionRule.createClosedSession(settings)
|
val newSession = sessionRule.createClosedSession(settings)
|
||||||
assertThat("New session has same settings", newSession.settings, equalTo(settings))
|
assertThat("New session has same settings", newSession.settings, equalTo(settings))
|
||||||
|
@ -1020,7 +1020,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = AssertionError::class)
|
@Test(expected = AssertionError::class)
|
||||||
fun waitForPageStop_throwOnNotWrapped() {
|
fun waitForPageStop_throwOnNotWrapped() {
|
||||||
GeckoSession(sessionRule.session.settings).waitForPageStop()
|
GeckoSession(mainSession.settings).waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitForPageStops_withSpecificSessions() {
|
@Test fun waitForPageStops_withSpecificSessions() {
|
||||||
|
@ -1033,7 +1033,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@Test fun waitForPageStops_withAllSessions() {
|
@Test fun waitForPageStops_withAllSessions() {
|
||||||
val newSession = sessionRule.createOpenSession()
|
val newSession = sessionRule.createOpenSession()
|
||||||
newSession.loadTestPath(HELLO_HTML_PATH)
|
newSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1041,9 +1041,9 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
// TODO: Bug 1673953
|
// TODO: Bug 1673953
|
||||||
assumeThat(sessionRule.env.isFission, equalTo(false))
|
assumeThat(sessionRule.env.isFission, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
val session = sessionRule.createOpenSession()
|
val session = sessionRule.createOpenSession()
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
session.loadTestPath(HELLO_HTML_PATH)
|
session.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStops(3)
|
sessionRule.waitForPageStops(3)
|
||||||
}
|
}
|
||||||
|
@ -1073,7 +1073,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@Test fun waitUntilCalled_callbackWithAllSessions() {
|
@Test fun waitUntilCalled_callbackWithAllSessions() {
|
||||||
val newSession = sessionRule.createOpenSession()
|
val newSession = sessionRule.createOpenSession()
|
||||||
newSession.loadTestPath(HELLO_HTML_PATH)
|
newSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ProgressDelegate {
|
sessionRule.waitUntilCalled(object : ProgressDelegate {
|
||||||
@AssertCalled(count = 2)
|
@AssertCalled(count = 2)
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
|
@ -1095,7 +1095,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.forCallbacksDuringWait(object : ProgressDelegate {
|
mainSession.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
@AssertCalled(false)
|
@AssertCalled(false)
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
counter++
|
counter++
|
||||||
|
@ -1108,7 +1108,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@Test fun forCallbacksDuringWait_withAllSessions() {
|
@Test fun forCallbacksDuringWait_withAllSessions() {
|
||||||
val newSession = sessionRule.createOpenSession()
|
val newSession = sessionRule.createOpenSession()
|
||||||
newSession.loadTestPath(HELLO_HTML_PATH)
|
newSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
@ -1126,8 +1126,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
@Test fun forCallbacksDuringWait_limitedToLastSessionWait() {
|
@Test fun forCallbacksDuringWait_limitedToLastSessionWait() {
|
||||||
val newSession = sessionRule.createOpenSession()
|
val newSession = sessionRule.createOpenSession()
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
newSession.loadTestPath(HELLO_HTML_PATH)
|
newSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
newSession.waitForPageStop()
|
newSession.waitForPageStop()
|
||||||
|
@ -1135,7 +1135,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
// forCallbacksDuringWait calls strictly apply to the last wait, session-specific or not.
|
// forCallbacksDuringWait calls strictly apply to the last wait, session-specific or not.
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
|
||||||
sessionRule.session.forCallbacksDuringWait(object : ProgressDelegate {
|
mainSession.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
@AssertCalled(false)
|
@AssertCalled(false)
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
counter++
|
counter++
|
||||||
|
@ -1171,7 +1171,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.delegateUntilTestEnd(object : ProgressDelegate {
|
mainSession.delegateUntilTestEnd(object : ProgressDelegate {
|
||||||
@AssertCalled(false)
|
@AssertCalled(false)
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
counter++
|
counter++
|
||||||
|
@ -1220,7 +1220,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
})
|
})
|
||||||
|
|
||||||
newSession.loadTestPath(HELLO_HTML_PATH)
|
newSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
assertThat("Callback count should be correct", counter, equalTo(1))
|
assertThat("Callback count should be correct", counter, equalTo(1))
|
||||||
|
@ -1245,7 +1245,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
})
|
})
|
||||||
|
|
||||||
newSession.loadTestPath(HELLO_HTML_PATH)
|
newSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
assertThat("Callback count should be correct", counter, equalTo(2))
|
assertThat("Callback count should be correct", counter, equalTo(2))
|
||||||
|
@ -1253,20 +1253,20 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@WithDisplay(width = 100, height = 100)
|
@WithDisplay(width = 100, height = 100)
|
||||||
@Test fun synthesizeTap() {
|
@Test fun synthesizeTap() {
|
||||||
sessionRule.session.loadTestPath(CLICK_TO_RELOAD_HTML_PATH)
|
mainSession.loadTestPath(CLICK_TO_RELOAD_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.synthesizeTap(50, 50)
|
mainSession.synthesizeTap(50, 50)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithDisplay(width = 100, height = 100)
|
@WithDisplay(width = 100, height = 100)
|
||||||
@Test fun synthesizeMouseMove() {
|
@Test fun synthesizeMouseMove() {
|
||||||
sessionRule.session.loadTestPath(MOUSE_TO_RELOAD_HTML_PATH)
|
mainSession.loadTestPath(MOUSE_TO_RELOAD_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.synthesizeMouseMove(50, 50)
|
mainSession.synthesizeMouseMove(50, 50)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun evaluateExtensionJS() {
|
@Test fun evaluateExtensionJS() {
|
||||||
|
@ -1310,50 +1310,50 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun evaluateJS() {
|
@Test fun evaluateJS() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH);
|
mainSession.loadTestPath(HELLO_HTML_PATH);
|
||||||
sessionRule.session.waitForPageStop();
|
mainSession.waitForPageStop();
|
||||||
|
|
||||||
assertThat("JS string result should be correct",
|
assertThat("JS string result should be correct",
|
||||||
sessionRule.session.evaluateJS("'foo'") as String, equalTo("foo"))
|
mainSession.evaluateJS("'foo'") as String, equalTo("foo"))
|
||||||
|
|
||||||
assertThat("JS number result should be correct",
|
assertThat("JS number result should be correct",
|
||||||
sessionRule.session.evaluateJS("1+1") as Double, equalTo(2.0))
|
mainSession.evaluateJS("1+1") as Double, equalTo(2.0))
|
||||||
|
|
||||||
assertThat("JS boolean result should be correct",
|
assertThat("JS boolean result should be correct",
|
||||||
sessionRule.session.evaluateJS("!0") as Boolean, equalTo(true))
|
mainSession.evaluateJS("!0") as Boolean, equalTo(true))
|
||||||
|
|
||||||
val expected = JSONObject("{bar:42,baz:true,foo:'bar'}")
|
val expected = JSONObject("{bar:42,baz:true,foo:'bar'}")
|
||||||
val actual = sessionRule.session.evaluateJS("({foo:'bar',bar:42,baz:true})") as JSONObject
|
val actual = mainSession.evaluateJS("({foo:'bar',bar:42,baz:true})") as JSONObject
|
||||||
for (key in expected.keys()) {
|
for (key in expected.keys()) {
|
||||||
assertThat("JS object result should be correct",
|
assertThat("JS object result should be correct",
|
||||||
actual.get(key), equalTo(expected.get(key)))
|
actual.get(key), equalTo(expected.get(key)))
|
||||||
}
|
}
|
||||||
|
|
||||||
assertThat("JS array result should be correct",
|
assertThat("JS array result should be correct",
|
||||||
sessionRule.session.evaluateJS("[1,2,3]") as JSONArray,
|
mainSession.evaluateJS("[1,2,3]") as JSONArray,
|
||||||
equalTo(JSONArray("[1,2,3]")))
|
equalTo(JSONArray("[1,2,3]")))
|
||||||
|
|
||||||
assertThat("JS DOM object result should be correct",
|
assertThat("JS DOM object result should be correct",
|
||||||
sessionRule.session.evaluateJS("document.body.tagName") as String,
|
mainSession.evaluateJS("document.body.tagName") as String,
|
||||||
equalTo("BODY"))
|
equalTo("BODY"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun evaluateJS_windowObject() {
|
@Test fun evaluateJS_windowObject() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("JS DOM window result should be correct",
|
assertThat("JS DOM window result should be correct",
|
||||||
(sessionRule.session.evaluateJS("window.location.pathname")) as String,
|
(mainSession.evaluateJS("window.location.pathname")) as String,
|
||||||
equalTo(HELLO_HTML_PATH))
|
equalTo(HELLO_HTML_PATH))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun evaluateJS_multipleSessions() {
|
@Test fun evaluateJS_multipleSessions() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("this.foo = 42")
|
mainSession.evaluateJS("this.foo = 42")
|
||||||
assertThat("Variable should be set",
|
assertThat("Variable should be set",
|
||||||
sessionRule.session.evaluateJS("this.foo") as Double, equalTo(42.0))
|
mainSession.evaluateJS("this.foo") as Double, equalTo(42.0))
|
||||||
|
|
||||||
val newSession = sessionRule.createOpenSession()
|
val newSession = sessionRule.createOpenSession()
|
||||||
newSession.loadTestPath(HELLO_HTML_PATH)
|
newSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
|
@ -1365,18 +1365,18 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun evaluateJS_supportPromises() {
|
@Test fun evaluateJS_supportPromises() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("Can get resolved promise",
|
assertThat("Can get resolved promise",
|
||||||
sessionRule.session.evaluatePromiseJS(
|
mainSession.evaluatePromiseJS(
|
||||||
"new Promise(resolve => resolve('foo'))").value as String,
|
"new Promise(resolve => resolve('foo'))").value as String,
|
||||||
equalTo("foo"));
|
equalTo("foo"));
|
||||||
|
|
||||||
val promise = sessionRule.session.evaluatePromiseJS(
|
val promise = mainSession.evaluatePromiseJS(
|
||||||
"new Promise(r => window.resolve = r)")
|
"new Promise(r => window.resolve = r)")
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("window.resolve('bar')")
|
mainSession.evaluateJS("window.resolve('bar')")
|
||||||
|
|
||||||
assertThat("Can wait for promise to resolve",
|
assertThat("Can wait for promise to resolve",
|
||||||
promise.value as String, equalTo("bar"))
|
promise.value as String, equalTo("bar"))
|
||||||
|
@ -1384,55 +1384,55 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
|
|
||||||
@Test(expected = RejectedPromiseException::class)
|
@Test(expected = RejectedPromiseException::class)
|
||||||
fun evaluateJS_throwOnRejectedPromise() {
|
fun evaluateJS_throwOnRejectedPromise() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
sessionRule.session.evaluatePromiseJS("Promise.reject('foo')").value
|
mainSession.evaluatePromiseJS("Promise.reject('foo')").value
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun evaluateJS_notBlockMainThread() {
|
@Test fun evaluateJS_notBlockMainThread() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
// Test that we can still receive delegate callbacks during evaluateJS,
|
// Test that we can still receive delegate callbacks during evaluateJS,
|
||||||
// by calling alert(), which blocks until prompt delegate is called.
|
// by calling alert(), which blocks until prompt delegate is called.
|
||||||
assertThat("JS blocking result should be correct",
|
assertThat("JS blocking result should be correct",
|
||||||
sessionRule.session.evaluateJS("alert(); 'foo'") as String,
|
mainSession.evaluateJS("alert(); 'foo'") as String,
|
||||||
equalTo("foo"))
|
equalTo("foo"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@TimeoutMillis(1000)
|
@TimeoutMillis(1000)
|
||||||
@Test(expected = UiThreadUtils.TimeoutException::class)
|
@Test(expected = UiThreadUtils.TimeoutException::class)
|
||||||
fun evaluateJS_canTimeout() {
|
fun evaluateJS_canTimeout() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
sessionRule.session.delegateUntilTestEnd(object : PromptDelegate {
|
mainSession.delegateUntilTestEnd(object : PromptDelegate {
|
||||||
override fun onAlertPrompt(session: GeckoSession, prompt: PromptDelegate.AlertPrompt): GeckoResult<PromptDelegate.PromptResponse> {
|
override fun onAlertPrompt(session: GeckoSession, prompt: PromptDelegate.AlertPrompt): GeckoResult<PromptDelegate.PromptResponse> {
|
||||||
// Return a GeckoResult that we will never complete, so it hangs.
|
// Return a GeckoResult that we will never complete, so it hangs.
|
||||||
val res = GeckoResult<PromptDelegate.PromptResponse>()
|
val res = GeckoResult<PromptDelegate.PromptResponse>()
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
sessionRule.session.evaluateJS("alert()")
|
mainSession.evaluateJS("alert()")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = RuntimeException::class)
|
@Test(expected = RuntimeException::class)
|
||||||
fun evaluateJS_throwOnJSException() {
|
fun evaluateJS_throwOnJSException() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
sessionRule.session.evaluateJS("throw Error()")
|
mainSession.evaluateJS("throw Error()")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = RuntimeException::class)
|
@Test(expected = RuntimeException::class)
|
||||||
fun evaluateJS_throwOnSyntaxError() {
|
fun evaluateJS_throwOnSyntaxError() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
sessionRule.session.evaluateJS("<{[")
|
mainSession.evaluateJS("<{[")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = RuntimeException::class)
|
@Test(expected = RuntimeException::class)
|
||||||
fun evaluateJS_throwOnChromeAccess() {
|
fun evaluateJS_throwOnChromeAccess() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
sessionRule.session.evaluateJS("ChromeUtils")
|
mainSession.evaluateJS("ChromeUtils")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun getPrefs_undefinedPrefReturnsNull() {
|
@Test fun getPrefs_undefinedPrefReturnsNull() {
|
||||||
|
@ -1474,7 +1474,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun setPrefsDuringNextWait() {
|
@Test fun setPrefsDuringNextWait() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.setPrefsDuringNextWait(mapOf(
|
sessionRule.setPrefsDuringNextWait(mapOf(
|
||||||
|
@ -1491,8 +1491,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
assertThat("Prefs should be set before wait", prefs[1] as Int, equalTo(1))
|
assertThat("Prefs should be set before wait", prefs[1] as Int, equalTo(1))
|
||||||
assertThat("Prefs should be set before wait", prefs[2] as String, equalTo("foo"))
|
assertThat("Prefs should be set before wait", prefs[2] as String, equalTo("foo"))
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
prefs = sessionRule.getPrefs(
|
prefs = sessionRule.getPrefs(
|
||||||
"test.pref.bool",
|
"test.pref.bool",
|
||||||
|
@ -1505,7 +1505,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun setPrefsDuringNextWait_hasPrecedence() {
|
@Test fun setPrefsDuringNextWait_hasPrecedence() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf(
|
sessionRule.setPrefsUntilTestEnd(mapOf(
|
||||||
|
@ -1525,8 +1525,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
assertThat("Prefs should be overridden", prefs[1] as String, equalTo("bar"))
|
assertThat("Prefs should be overridden", prefs[1] as String, equalTo("bar"))
|
||||||
assertThat("Prefs should be overridden", prefs[2] as String, equalTo("baz"))
|
assertThat("Prefs should be overridden", prefs[2] as String, equalTo("baz"))
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
prefs = sessionRule.getPrefs(
|
prefs = sessionRule.getPrefs(
|
||||||
"test.pref.int",
|
"test.pref.int",
|
||||||
|
@ -1539,14 +1539,14 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitForJS() {
|
@Test fun waitForJS() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
assertThat("waitForJS should return correct result",
|
assertThat("waitForJS should return correct result",
|
||||||
sessionRule.session.waitForJS("alert(), 'foo'") as String,
|
mainSession.waitForJS("alert(), 'foo'") as String,
|
||||||
equalTo("foo"))
|
equalTo("foo"))
|
||||||
|
|
||||||
sessionRule.session.forCallbacksDuringWait(object : PromptDelegate {
|
mainSession.forCallbacksDuringWait(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onAlertPrompt(session: GeckoSession, prompt: PromptDelegate.AlertPrompt): GeckoResult<PromptDelegate.PromptResponse>? {
|
override fun onAlertPrompt(session: GeckoSession, prompt: PromptDelegate.AlertPrompt): GeckoResult<PromptDelegate.PromptResponse>? {
|
||||||
return null;
|
return null;
|
||||||
|
@ -1555,27 +1555,27 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitForJS_resolvePromise() {
|
@Test fun waitForJS_resolvePromise() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
assertThat("waitForJS should wait for promises",
|
assertThat("waitForJS should wait for promises",
|
||||||
sessionRule.session.waitForJS("Promise.resolve('foo')") as String,
|
mainSession.waitForJS("Promise.resolve('foo')") as String,
|
||||||
equalTo("foo"))
|
equalTo("foo"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun waitForJS_delegateDuringWait() {
|
@Test fun waitForJS_delegateDuringWait() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
var count = 0
|
var count = 0
|
||||||
sessionRule.session.delegateDuringNextWait(object : PromptDelegate {
|
mainSession.delegateDuringNextWait(object : PromptDelegate {
|
||||||
override fun onAlertPrompt(session: GeckoSession, prompt: PromptDelegate.AlertPrompt): GeckoResult<PromptDelegate.PromptResponse> {
|
override fun onAlertPrompt(session: GeckoSession, prompt: PromptDelegate.AlertPrompt): GeckoResult<PromptDelegate.PromptResponse> {
|
||||||
count++
|
count++
|
||||||
return GeckoResult.fromValue(prompt.dismiss())
|
return GeckoResult.fromValue(prompt.dismiss())
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.waitForJS("alert()")
|
mainSession.waitForJS("alert()")
|
||||||
sessionRule.session.waitForJS("alert()")
|
mainSession.waitForJS("alert()")
|
||||||
|
|
||||||
// The delegate set through delegateDuringNextWait
|
// The delegate set through delegateDuringNextWait
|
||||||
// should have been cleared after the first wait.
|
// should have been cleared after the first wait.
|
||||||
|
@ -1635,7 +1635,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun addExternalDelegateDuringNextWait() {
|
@Test fun addExternalDelegateDuringNextWait() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
var delegate: Runnable? = null
|
var delegate: Runnable? = null
|
||||||
|
@ -1655,7 +1655,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun addExternalDelegateDuringNextWait_hasPrecedence() {
|
@Test fun addExternalDelegateDuringNextWait_hasPrecedence() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
var delegate: TestDelegate? = null
|
var delegate: TestDelegate? = null
|
||||||
|
@ -1710,7 +1710,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) {
|
||||||
fun contentCrashFails() {
|
fun contentCrashFails() {
|
||||||
assumeThat(sessionRule.env.shouldShutdownOnCrash(), equalTo(false))
|
assumeThat(sessionRule.env.shouldShutdownOnCrash(), equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadUri(CONTENT_CRASH_URL)
|
mainSession.loadUri(CONTENT_CRASH_URL)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,8 +67,8 @@ class HistoryDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
// Since `getVisited` is called asynchronously after the page loads, we
|
// Since `getVisited` is called asynchronously after the page loads, we
|
||||||
// can't use `waitForPageStop` here.
|
// can't use `waitForPageStop` here.
|
||||||
sessionRule.session.loadUri(testUri)
|
mainSession.loadUri(testUri)
|
||||||
sessionRule.session.waitUntilCalled(GeckoSession.HistoryDelegate::class,
|
mainSession.waitUntilCalled(GeckoSession.HistoryDelegate::class,
|
||||||
"onVisited", "getVisited")
|
"onVisited", "getVisited")
|
||||||
|
|
||||||
// Sometimes link changes are not applied immediately, wait for a little bit
|
// Sometimes link changes are not applied immediately, wait for a little bit
|
||||||
|
@ -97,7 +97,7 @@ class HistoryDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
@Ignore //disable test on debug for frequent failures Bug 1544169
|
@Ignore //disable test on debug for frequent failures Bug 1544169
|
||||||
@Test fun onHistoryStateChange() {
|
@Test fun onHistoryStateChange() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -111,7 +111,7 @@ class HistoryDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO2_HTML_PATH)
|
mainSession.loadTestPath(HELLO2_HTML_PATH)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -125,7 +125,7 @@ class HistoryDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.goBack()
|
mainSession.goBack()
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -139,7 +139,7 @@ class HistoryDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.goForward()
|
mainSession.goForward()
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -153,7 +153,7 @@ class HistoryDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.gotoHistoryIndex(0)
|
mainSession.gotoHistoryIndex(0)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -167,7 +167,7 @@ class HistoryDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.gotoHistoryIndex(1)
|
mainSession.gotoHistoryIndex(1)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -187,7 +187,7 @@ class HistoryDelegateTest : BaseSessionTest() {
|
||||||
assumeThat(sessionRule.env.isFission, equalTo(false))
|
assumeThat(sessionRule.env.isFission, equalTo(false))
|
||||||
|
|
||||||
// This is a smaller version of the above test, in the hopes to minimize race conditions
|
// This is a smaller version of the above test, in the hopes to minimize race conditions
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -201,7 +201,7 @@ class HistoryDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO2_HTML_PATH)
|
mainSession.loadTestPath(HELLO2_HTML_PATH)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
sessionRule.waitUntilCalled(object : HistoryDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
|
|
@ -22,13 +22,13 @@ class InputResultDetailTest : BaseSessionTest() {
|
||||||
private val scrollWaitTimeout = 10000.0 // 10 seconds
|
private val scrollWaitTimeout = 10000.0 // 10 seconds
|
||||||
|
|
||||||
private fun setupDocument(documentPath: String) {
|
private fun setupDocument(documentPath: String) {
|
||||||
sessionRule.session.loadTestPath(documentPath)
|
mainSession.loadTestPath(documentPath)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@GeckoSessionTestRule.AssertCalled(count = 1)
|
@GeckoSessionTestRule.AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
sessionRule.session.flushApzRepaints()
|
mainSession.flushApzRepaints()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun sendDownEvent(x: Float, y: Float): GeckoResult<InputResultDetail> {
|
private fun sendDownEvent(x: Float, y: Float): GeckoResult<InputResultDetail> {
|
||||||
|
@ -177,7 +177,7 @@ class InputResultDetailTest : BaseSessionTest() {
|
||||||
scroll.scrollTo(0, scroll.scrollHeight);
|
scroll.scrollTo(0, scroll.scrollHeight);
|
||||||
""".trimIndent())
|
""".trimIndent())
|
||||||
assertThat("scroll", scrollPromise.value as Boolean, equalTo(true));
|
assertThat("scroll", scrollPromise.value as Boolean, equalTo(true));
|
||||||
sessionRule.session.flushApzRepaints()
|
mainSession.flushApzRepaints()
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithDisplay(width = 100, height = 100)
|
@WithDisplay(width = 100, height = 100)
|
||||||
|
|
|
@ -91,7 +91,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.load(testLoader)
|
mainSession.load(testLoader)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
if (errorPageUrl != null) {
|
if (errorPageUrl != null) {
|
||||||
|
@ -148,7 +148,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadUri(testUri)
|
mainSession.loadUri(testUri)
|
||||||
sessionRule.waitUntilCalled(NavigationDelegate::class, "onLoadError")
|
sessionRule.waitUntilCalled(NavigationDelegate::class, "onLoadError")
|
||||||
|
|
||||||
if (errorPageUrl != null) {
|
if (errorPageUrl != null) {
|
||||||
|
@ -496,7 +496,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.load(testLoader)
|
mainSession.load(testLoader)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.runtime.settings.setAllowInsecureConnections(GeckoRuntimeSettings.ALLOW_ALL)
|
sessionRule.runtime.settings.setAllowInsecureConnections(GeckoRuntimeSettings.ALLOW_ALL)
|
||||||
|
@ -551,7 +551,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.load(testLoader)
|
mainSession.load(testLoader)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate, NavigationDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate, NavigationDelegate {
|
||||||
|
@ -590,7 +590,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.load(testLoader)
|
mainSession.load(testLoader)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.delegateDuringNextWait(
|
sessionRule.delegateDuringNextWait(
|
||||||
|
@ -632,8 +632,8 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
// Should match iframe URI from IFRAME_UNKNOWN_PROTOCOL
|
// Should match iframe URI from IFRAME_UNKNOWN_PROTOCOL
|
||||||
val iframeUri = "foo://bar"
|
val iframeUri = "foo://bar"
|
||||||
sessionRule.session.loadTestPath(IFRAME_UNKNOWN_PROTOCOL)
|
mainSession.loadTestPath(IFRAME_UNKNOWN_PROTOCOL)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -659,7 +659,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
@Test fun trackingProtection() {
|
@Test fun trackingProtection() {
|
||||||
val category = ContentBlocking.AntiTracking.TEST
|
val category = ContentBlocking.AntiTracking.TEST
|
||||||
sessionRule.runtime.settings.contentBlocking.setAntiTracking(category)
|
sessionRule.runtime.settings.contentBlocking.setAntiTracking(category)
|
||||||
sessionRule.session.loadTestPath(TRACKERS_PATH)
|
mainSession.loadTestPath(TRACKERS_PATH)
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(
|
sessionRule.waitUntilCalled(
|
||||||
object : ContentBlocking.Delegate {
|
object : ContentBlocking.Delegate {
|
||||||
|
@ -678,10 +678,10 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.settings.useTrackingProtection = false
|
mainSession.settings.useTrackingProtection = false
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(
|
sessionRule.forCallbacksDuringWait(
|
||||||
object : ContentBlocking.Delegate {
|
object : ContentBlocking.Delegate {
|
||||||
|
@ -716,7 +716,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
"https://jigsaw.w3.org/HTTP/300/301.html"
|
"https://jigsaw.w3.org/HTTP/300/301.html"
|
||||||
}
|
}
|
||||||
|
|
||||||
sessionRule.session.loadUri(uri)
|
mainSession.loadUri(uri)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
||||||
|
@ -752,7 +752,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
IFRAME_REDIRECT_LOCAL
|
IFRAME_REDIRECT_LOCAL
|
||||||
}
|
}
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(path)
|
mainSession.loadTestPath(path)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
// We shouldn't be firing onLoadRequest for iframes, including redirects.
|
// We shouldn't be firing onLoadRequest for iframes, including redirects.
|
||||||
|
@ -825,7 +825,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadUri(uri)
|
mainSession.loadUri(uri)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(
|
sessionRule.forCallbacksDuringWait(
|
||||||
|
@ -848,7 +848,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
val redirectUri = "intent://test"
|
val redirectUri = "intent://test"
|
||||||
val uri = "https://example.org/tests/junit/simple_redirect.sjs?$redirectUri"
|
val uri = "https://example.org/tests/junit/simple_redirect.sjs?$redirectUri"
|
||||||
|
|
||||||
sessionRule.session.loadUri(uri)
|
mainSession.loadUri(uri)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
||||||
|
@ -874,10 +874,10 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(category)
|
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(category)
|
||||||
|
|
||||||
sessionRule.session.load(Loader()
|
mainSession.load(Loader()
|
||||||
.uri(phishingUri + "?bypass=true")
|
.uri(phishingUri + "?bypass=true")
|
||||||
.flags(GeckoSession.LOAD_FLAGS_BYPASS_CLASSIFIER))
|
.flags(GeckoSession.LOAD_FLAGS_BYPASS_CLASSIFIER))
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(
|
sessionRule.forCallbacksDuringWait(
|
||||||
object : NavigationDelegate {
|
object : NavigationDelegate {
|
||||||
|
@ -908,8 +908,8 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
|
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
|
||||||
|
|
||||||
sessionRule.session.loadUri(phishingUri + "?block=false")
|
mainSession.loadUri(phishingUri + "?block=false")
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(
|
sessionRule.forCallbacksDuringWait(
|
||||||
object : NavigationDelegate {
|
object : NavigationDelegate {
|
||||||
|
@ -939,8 +939,8 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
|
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
|
||||||
|
|
||||||
sessionRule.session.loadUri(malwareUri + "?block=false")
|
mainSession.loadUri(malwareUri + "?block=false")
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(
|
sessionRule.forCallbacksDuringWait(
|
||||||
object : NavigationDelegate {
|
object : NavigationDelegate {
|
||||||
|
@ -966,8 +966,8 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
|
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
|
||||||
|
|
||||||
sessionRule.session.loadUri(unwantedUri + "?block=false")
|
mainSession.loadUri(unwantedUri + "?block=false")
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(
|
sessionRule.forCallbacksDuringWait(
|
||||||
object : NavigationDelegate {
|
object : NavigationDelegate {
|
||||||
|
@ -997,8 +997,8 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
|
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
|
||||||
|
|
||||||
sessionRule.session.loadUri(harmfulUri + "?block=false")
|
mainSession.loadUri(harmfulUri + "?block=false")
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(
|
sessionRule.forCallbacksDuringWait(
|
||||||
object : NavigationDelegate {
|
object : NavigationDelegate {
|
||||||
|
@ -1013,13 +1013,13 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// Checks that the User Agent matches the user agent built in
|
// Checks that the User Agent matches the user agent built in
|
||||||
// nsHttpHandler::BuildUserAgent
|
// nsHttpHandler::BuildUserAgent
|
||||||
@Test fun defaultUserAgentMatchesActualUserAgent() {
|
@Test fun defaultUserAgentMatchesActualUserAgent() {
|
||||||
var userAgent = sessionRule.waitForResult(sessionRule.session.userAgent)
|
var userAgent = sessionRule.waitForResult(mainSession.userAgent)
|
||||||
assertThat("Mobile user agent should match the default user agent",
|
assertThat("Mobile user agent should match the default user agent",
|
||||||
userAgent, equalTo(GeckoSession.getDefaultUserAgent()))
|
userAgent, equalTo(GeckoSession.getDefaultUserAgent()))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun desktopMode() {
|
@Test fun desktopMode() {
|
||||||
sessionRule.session.loadUri("https://example.com")
|
mainSession.loadUri("https://example.com")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
val mobileSubStr = "Mobile"
|
val mobileSubStr = "Mobile"
|
||||||
|
@ -1029,53 +1029,53 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
getUserAgent(),
|
getUserAgent(),
|
||||||
containsString(mobileSubStr))
|
containsString(mobileSubStr))
|
||||||
|
|
||||||
var userAgent = sessionRule.waitForResult(sessionRule.session.userAgent)
|
var userAgent = sessionRule.waitForResult(mainSession.userAgent)
|
||||||
assertThat("User agent should be reported as mobile",
|
assertThat("User agent should be reported as mobile",
|
||||||
userAgent, containsString(mobileSubStr))
|
userAgent, containsString(mobileSubStr))
|
||||||
|
|
||||||
sessionRule.session.settings.userAgentMode = GeckoSessionSettings.USER_AGENT_MODE_DESKTOP
|
mainSession.settings.userAgentMode = GeckoSessionSettings.USER_AGENT_MODE_DESKTOP
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("User agent should be set to desktop",
|
assertThat("User agent should be set to desktop",
|
||||||
getUserAgent(),
|
getUserAgent(),
|
||||||
containsString(desktopSubStr))
|
containsString(desktopSubStr))
|
||||||
|
|
||||||
userAgent = sessionRule.waitForResult(sessionRule.session.userAgent)
|
userAgent = sessionRule.waitForResult(mainSession.userAgent)
|
||||||
assertThat("User agent should be reported as desktop",
|
assertThat("User agent should be reported as desktop",
|
||||||
userAgent, containsString(desktopSubStr))
|
userAgent, containsString(desktopSubStr))
|
||||||
|
|
||||||
sessionRule.session.settings.userAgentMode = GeckoSessionSettings.USER_AGENT_MODE_MOBILE
|
mainSession.settings.userAgentMode = GeckoSessionSettings.USER_AGENT_MODE_MOBILE
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("User agent should be set to mobile",
|
assertThat("User agent should be set to mobile",
|
||||||
getUserAgent(),
|
getUserAgent(),
|
||||||
containsString(mobileSubStr))
|
containsString(mobileSubStr))
|
||||||
|
|
||||||
userAgent = sessionRule.waitForResult(sessionRule.session.userAgent)
|
userAgent = sessionRule.waitForResult(mainSession.userAgent)
|
||||||
assertThat("User agent should be reported as mobile",
|
assertThat("User agent should be reported as mobile",
|
||||||
userAgent, containsString(mobileSubStr))
|
userAgent, containsString(mobileSubStr))
|
||||||
|
|
||||||
val vrSubStr = "Mobile VR"
|
val vrSubStr = "Mobile VR"
|
||||||
sessionRule.session.settings.userAgentMode = GeckoSessionSettings.USER_AGENT_MODE_VR
|
mainSession.settings.userAgentMode = GeckoSessionSettings.USER_AGENT_MODE_VR
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("User agent should be set to VR",
|
assertThat("User agent should be set to VR",
|
||||||
getUserAgent(),
|
getUserAgent(),
|
||||||
containsString(vrSubStr))
|
containsString(vrSubStr))
|
||||||
|
|
||||||
userAgent = sessionRule.waitForResult(sessionRule.session.userAgent)
|
userAgent = sessionRule.waitForResult(mainSession.userAgent)
|
||||||
assertThat("User agent should be reported as VR",
|
assertThat("User agent should be reported as VR",
|
||||||
userAgent, containsString(vrSubStr))
|
userAgent, containsString(vrSubStr))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getUserAgent(session: GeckoSession = sessionRule.session): String {
|
private fun getUserAgent(session: GeckoSession = mainSession): String {
|
||||||
return session.evaluateJS("window.navigator.userAgent") as String
|
return session.evaluateJS("window.navigator.userAgent") as String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1098,7 +1098,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// TODO: bug 1710943
|
// TODO: bug 1710943
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadUri("https://example.com")
|
mainSession.loadUri("https://example.com")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
val mobileSubStr = "Mobile"
|
val mobileSubStr = "Mobile"
|
||||||
|
@ -1108,52 +1108,52 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
assertThat("User agent should be reported as mobile",
|
assertThat("User agent should be reported as mobile",
|
||||||
getUserAgent(), containsString(mobileSubStr))
|
getUserAgent(), containsString(mobileSubStr))
|
||||||
|
|
||||||
sessionRule.session.settings.userAgentOverride = overrideUserAgent
|
mainSession.settings.userAgentOverride = overrideUserAgent
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("User agent should be reported as override",
|
assertThat("User agent should be reported as override",
|
||||||
getUserAgent(), equalTo(overrideUserAgent))
|
getUserAgent(), equalTo(overrideUserAgent))
|
||||||
|
|
||||||
sessionRule.session.settings.userAgentMode = GeckoSessionSettings.USER_AGENT_MODE_VR
|
mainSession.settings.userAgentMode = GeckoSessionSettings.USER_AGENT_MODE_VR
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("User agent should still be reported as override even when USER_AGENT_MODE is set",
|
assertThat("User agent should still be reported as override even when USER_AGENT_MODE is set",
|
||||||
getUserAgent(), equalTo(overrideUserAgent))
|
getUserAgent(), equalTo(overrideUserAgent))
|
||||||
|
|
||||||
sessionRule.session.settings.userAgentOverride = null
|
mainSession.settings.userAgentOverride = null
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("User agent should now be reported as VR",
|
assertThat("User agent should now be reported as VR",
|
||||||
getUserAgent(), containsString(vrSubStr))
|
getUserAgent(), containsString(vrSubStr))
|
||||||
|
|
||||||
sessionRule.delegateDuringNextWait(object : NavigationDelegate {
|
sessionRule.delegateDuringNextWait(object : NavigationDelegate {
|
||||||
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
||||||
sessionRule.session.settings.userAgentOverride = overrideUserAgent
|
mainSession.settings.userAgentOverride = overrideUserAgent
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("User agent should be reported as override after being set in onLoadRequest",
|
assertThat("User agent should be reported as override after being set in onLoadRequest",
|
||||||
getUserAgent(), equalTo(overrideUserAgent))
|
getUserAgent(), equalTo(overrideUserAgent))
|
||||||
|
|
||||||
sessionRule.delegateDuringNextWait(object : NavigationDelegate {
|
sessionRule.delegateDuringNextWait(object : NavigationDelegate {
|
||||||
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
||||||
sessionRule.session.settings.userAgentOverride = null
|
mainSession.settings.userAgentOverride = null
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("User agent should again be reported as VR after disabling override in onLoadRequest",
|
assertThat("User agent should again be reported as VR after disabling override in onLoadRequest",
|
||||||
getUserAgent(), containsString(vrSubStr))
|
getUserAgent(), containsString(vrSubStr))
|
||||||
|
@ -1164,34 +1164,34 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// TODO: bug 1710943
|
// TODO: bug 1710943
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(VIEWPORT_PATH)
|
mainSession.loadTestPath(VIEWPORT_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
val desktopInnerWidth = 980.0
|
val desktopInnerWidth = 980.0
|
||||||
val physicalWidth = 600.0
|
val physicalWidth = 600.0
|
||||||
val pixelRatio = sessionRule.session.evaluateJS("window.devicePixelRatio") as Double
|
val pixelRatio = mainSession.evaluateJS("window.devicePixelRatio") as Double
|
||||||
val mobileInnerWidth = physicalWidth / pixelRatio
|
val mobileInnerWidth = physicalWidth / pixelRatio
|
||||||
val innerWidthJs = "window.innerWidth"
|
val innerWidthJs = "window.innerWidth"
|
||||||
|
|
||||||
var innerWidth = sessionRule.session.evaluateJS(innerWidthJs) as Double
|
var innerWidth = mainSession.evaluateJS(innerWidthJs) as Double
|
||||||
assertThat("innerWidth should be equal to $mobileInnerWidth",
|
assertThat("innerWidth should be equal to $mobileInnerWidth",
|
||||||
innerWidth, closeTo(mobileInnerWidth, 0.1))
|
innerWidth, closeTo(mobileInnerWidth, 0.1))
|
||||||
|
|
||||||
sessionRule.session.settings.viewportMode = GeckoSessionSettings.VIEWPORT_MODE_DESKTOP
|
mainSession.settings.viewportMode = GeckoSessionSettings.VIEWPORT_MODE_DESKTOP
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
innerWidth = sessionRule.session.evaluateJS(innerWidthJs) as Double
|
innerWidth = mainSession.evaluateJS(innerWidthJs) as Double
|
||||||
assertThat("innerWidth should be equal to $desktopInnerWidth", innerWidth,
|
assertThat("innerWidth should be equal to $desktopInnerWidth", innerWidth,
|
||||||
closeTo(desktopInnerWidth, 0.1))
|
closeTo(desktopInnerWidth, 0.1))
|
||||||
|
|
||||||
sessionRule.session.settings.viewportMode = GeckoSessionSettings.VIEWPORT_MODE_MOBILE
|
mainSession.settings.viewportMode = GeckoSessionSettings.VIEWPORT_MODE_MOBILE
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
innerWidth = sessionRule.session.evaluateJS(innerWidthJs) as Double
|
innerWidth = mainSession.evaluateJS(innerWidthJs) as Double
|
||||||
assertThat("innerWidth should be equal to $mobileInnerWidth again",
|
assertThat("innerWidth should be equal to $mobileInnerWidth again",
|
||||||
innerWidth, closeTo(mobileInnerWidth, 0.1))
|
innerWidth, closeTo(mobileInnerWidth, 0.1))
|
||||||
}
|
}
|
||||||
|
@ -1200,7 +1200,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// TODO: bug 1710943
|
// TODO: bug 1710943
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadUri("$TEST_ENDPOINT$HELLO_HTML_PATH")
|
mainSession.loadUri("$TEST_ENDPOINT$HELLO_HTML_PATH")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
||||||
|
@ -1254,7 +1254,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
val dataUrl = "data:,Hello%2C%20World!"
|
val dataUrl = "data:,Hello%2C%20World!"
|
||||||
sessionRule.session.loadUri(dataUrl)
|
mainSession.loadUri(dataUrl)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate, ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate, ProgressDelegate {
|
||||||
|
@ -1276,11 +1276,11 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
// Test that when navigation delegate is disabled, we can still perform loads.
|
// Test that when navigation delegate is disabled, we can still perform loads.
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
@NullDelegate(NavigationDelegate::class)
|
@NullDelegate(NavigationDelegate::class)
|
||||||
|
@ -1290,20 +1290,20 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
// Test that if we unset the navigation delegate during a load, the load still proceeds.
|
// Test that if we unset the navigation delegate during a load, the load still proceeds.
|
||||||
var onLocationCount = 0
|
var onLocationCount = 0
|
||||||
sessionRule.session.navigationDelegate = object : NavigationDelegate {
|
mainSession.navigationDelegate = object : NavigationDelegate {
|
||||||
override fun onLocationChange(session: GeckoSession, url: String?) {
|
override fun onLocationChange(session: GeckoSession, url: String?) {
|
||||||
onLocationCount++
|
onLocationCount++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("Should get callback for first load",
|
assertThat("Should get callback for first load",
|
||||||
onLocationCount, equalTo(1))
|
onLocationCount, equalTo(1))
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.navigationDelegate = null
|
mainSession.navigationDelegate = null
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("Should not get callback for second load",
|
assertThat("Should not get callback for second load",
|
||||||
onLocationCount, equalTo(1))
|
onLocationCount, equalTo(1))
|
||||||
|
@ -1315,7 +1315,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
val dataString = "<html><head><title>TheTitle</title></head><body>TheBody</body></html>"
|
val dataString = "<html><head><title>TheTitle</title></head><body>TheBody</body></html>"
|
||||||
val mimeType = "text/html"
|
val mimeType = "text/html"
|
||||||
sessionRule.session.load(Loader().data(dataString, mimeType))
|
mainSession.load(Loader().data(dataString, mimeType))
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate, ProgressDelegate, ContentDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate, ProgressDelegate, ContentDelegate {
|
||||||
|
@ -1338,7 +1338,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun loadString_noMimeType() {
|
@Test fun loadString_noMimeType() {
|
||||||
sessionRule.session.load(Loader().data("Hello, World!", null))
|
mainSession.load(Loader().data("Hello, World!", null))
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate, ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate, ProgressDelegate {
|
||||||
|
@ -1361,7 +1361,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
val bytes = getTestBytes(HELLO_HTML_PATH)
|
val bytes = getTestBytes(HELLO_HTML_PATH)
|
||||||
assertThat("test html should have data", bytes.size, greaterThan(0))
|
assertThat("test html should have data", bytes.size, greaterThan(0))
|
||||||
|
|
||||||
sessionRule.session.load(Loader().data(bytes, "text/html"))
|
mainSession.load(Loader().data(bytes, "text/html"))
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate, ProgressDelegate, ContentDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate, ProgressDelegate, ContentDelegate {
|
||||||
|
@ -1397,7 +1397,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
val bytes = getTestBytes(assetPath)
|
val bytes = getTestBytes(assetPath)
|
||||||
assertThat("test data should have bytes", bytes.size, greaterThan(0))
|
assertThat("test data should have bytes", bytes.size, greaterThan(0))
|
||||||
|
|
||||||
sessionRule.session.load(Loader().data(bytes, mimeType))
|
mainSession.load(Loader().data(bytes, mimeType))
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate, ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate, ProgressDelegate {
|
||||||
|
@ -1426,10 +1426,10 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// TODO: bug 1710943
|
// TODO: bug 1710943
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadUri("$TEST_ENDPOINT$HELLO_HTML_PATH")
|
mainSession.loadUri("$TEST_ENDPOINT$HELLO_HTML_PATH")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
||||||
|
@ -1473,10 +1473,10 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// TODO: bug 1710943
|
// TODO: bug 1710943
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadUri("$TEST_ENDPOINT$HELLO_HTML_PATH")
|
mainSession.loadUri("$TEST_ENDPOINT$HELLO_HTML_PATH")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.loadUri("$TEST_ENDPOINT$HELLO2_HTML_PATH")
|
mainSession.loadUri("$TEST_ENDPOINT$HELLO2_HTML_PATH")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
||||||
|
@ -1486,7 +1486,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.goBack()
|
mainSession.goBack()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
||||||
|
@ -1520,7 +1520,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.goForward()
|
mainSession.goForward()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
sessionRule.forCallbacksDuringWait(object : NavigationDelegate {
|
||||||
|
@ -1572,8 +1572,8 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.loadTestPath(HELLO2_HTML_PATH)
|
mainSession.loadTestPath(HELLO2_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -1596,12 +1596,12 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// Disable popup blocker.
|
// Disable popup blocker.
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(NEW_SESSION_HTML_PATH)
|
mainSession.loadTestPath(NEW_SESSION_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("window.open('newSession_child.html', '_blank')")
|
mainSession.evaluateJS("window.open('newSession_child.html', '_blank')")
|
||||||
|
|
||||||
sessionRule.session.waitUntilCalled(object : NavigationDelegate {
|
mainSession.waitUntilCalled(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 1, order = [1])
|
@AssertCalled(count = 1, order = [1])
|
||||||
override fun onLoadRequest(session: GeckoSession,
|
override fun onLoadRequest(session: GeckoSession,
|
||||||
request: LoadRequest):
|
request: LoadRequest):
|
||||||
|
@ -1632,22 +1632,22 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// Disable popup blocker.
|
// Disable popup blocker.
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(NEW_SESSION_HTML_PATH)
|
mainSession.loadTestPath(NEW_SESSION_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("window.open('file:///data/local/tmp', '_blank')")
|
mainSession.evaluateJS("window.open('file:///data/local/tmp', '_blank')")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun onNewSession_calledForTargetBlankLink() {
|
@Test fun onNewSession_calledForTargetBlankLink() {
|
||||||
// Disable popup blocker.
|
// Disable popup blocker.
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(NEW_SESSION_HTML_PATH)
|
mainSession.loadTestPath(NEW_SESSION_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#targetBlankLink').click()")
|
mainSession.evaluateJS("document.querySelector('#targetBlankLink').click()")
|
||||||
|
|
||||||
sessionRule.session.waitUntilCalled(object : NavigationDelegate {
|
mainSession.waitUntilCalled(object : NavigationDelegate {
|
||||||
// We get two onLoadRequest calls for the link click,
|
// We get two onLoadRequest calls for the link click,
|
||||||
// one when loading the URL and one when opening a new window.
|
// one when loading the URL and one when opening a new window.
|
||||||
@AssertCalled(count = 1, order = [1])
|
@AssertCalled(count = 1, order = [1])
|
||||||
|
@ -1673,7 +1673,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
private fun delegateNewSession(settings: GeckoSessionSettings = mainSession.settings): GeckoSession {
|
private fun delegateNewSession(settings: GeckoSessionSettings = mainSession.settings): GeckoSession {
|
||||||
val newSession = sessionRule.createClosedSession(settings)
|
val newSession = sessionRule.createClosedSession(settings)
|
||||||
|
|
||||||
sessionRule.session.delegateDuringNextWait(object : NavigationDelegate {
|
mainSession.delegateDuringNextWait(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onNewSession(session: GeckoSession, uri: String): GeckoResult<GeckoSession> {
|
override fun onNewSession(session: GeckoSession, uri: String): GeckoResult<GeckoSession> {
|
||||||
return GeckoResult.fromValue(newSession)
|
return GeckoResult.fromValue(newSession)
|
||||||
|
@ -1690,11 +1690,11 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// Disable popup blocker.
|
// Disable popup blocker.
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(NEW_SESSION_HTML_PATH)
|
mainSession.loadTestPath(NEW_SESSION_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
val newSession = delegateNewSession()
|
val newSession = delegateNewSession()
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#targetBlankLink').click()")
|
mainSession.evaluateJS("document.querySelector('#targetBlankLink').click()")
|
||||||
// Initial about:blank
|
// Initial about:blank
|
||||||
newSession.waitForPageStop()
|
newSession.waitForPageStop()
|
||||||
// NEW_SESSION_CHILD_HTML_PATH
|
// NEW_SESSION_CHILD_HTML_PATH
|
||||||
|
@ -1720,11 +1720,11 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// Disable popup blocker.
|
// Disable popup blocker.
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(NEW_SESSION_HTML_PATH)
|
mainSession.loadTestPath(NEW_SESSION_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
val newSession = delegateNewSession()
|
val newSession = delegateNewSession()
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#targetBlankLink').click()")
|
mainSession.evaluateJS("document.querySelector('#targetBlankLink').click()")
|
||||||
newSession.waitForPageStop()
|
newSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("window.opener should be set",
|
assertThat("window.opener should be set",
|
||||||
|
@ -1739,11 +1739,11 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// Disable popup blocker.
|
// Disable popup blocker.
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(NEW_SESSION_HTML_PATH)
|
mainSession.loadTestPath(NEW_SESSION_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
val newSession = delegateNewSession()
|
val newSession = delegateNewSession()
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#noOpenerLink').click()")
|
mainSession.evaluateJS("document.querySelector('#noOpenerLink').click()")
|
||||||
newSession.waitForPageStop()
|
newSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("window.opener should not be set",
|
assertThat("window.opener should not be set",
|
||||||
|
@ -1758,10 +1758,10 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// Disable popup blocker.
|
// Disable popup blocker.
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(NEW_SESSION_HTML_PATH)
|
mainSession.loadTestPath(NEW_SESSION_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.delegateDuringNextWait(object : NavigationDelegate {
|
mainSession.delegateDuringNextWait(object : NavigationDelegate {
|
||||||
override fun onLoadRequest(session: GeckoSession,
|
override fun onLoadRequest(session: GeckoSession,
|
||||||
request: LoadRequest):
|
request: LoadRequest):
|
||||||
GeckoResult<AllowOrDeny>? {
|
GeckoResult<AllowOrDeny>? {
|
||||||
|
@ -1774,13 +1774,13 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#targetBlankLink').click()")
|
mainSession.evaluateJS("document.querySelector('#targetBlankLink').click()")
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
// Assert that onNewSession was not called for the link click.
|
// Assert that onNewSession was not called for the link click.
|
||||||
sessionRule.session.forCallbacksDuringWait(object : NavigationDelegate {
|
mainSession.forCallbacksDuringWait(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 2)
|
@AssertCalled(count = 2)
|
||||||
override fun onLoadRequest(session: GeckoSession,
|
override fun onLoadRequest(session: GeckoSession,
|
||||||
request: LoadRequest):
|
request: LoadRequest):
|
||||||
|
@ -1803,23 +1803,23 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// TODO: bug 1710943
|
// TODO: bug 1710943
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(FORM_BLANK_HTML_PATH)
|
mainSession.loadTestPath(FORM_BLANK_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("""
|
mainSession.evaluateJS("""
|
||||||
document.querySelector('input[type=text]').focus()
|
document.querySelector('input[type=text]').focus()
|
||||||
""")
|
""")
|
||||||
sessionRule.session.waitUntilCalled(TextInputDelegate::class,
|
mainSession.waitUntilCalled(TextInputDelegate::class,
|
||||||
"restartInput")
|
"restartInput")
|
||||||
|
|
||||||
val time = SystemClock.uptimeMillis()
|
val time = SystemClock.uptimeMillis()
|
||||||
val keyEvent = KeyEvent(time, time, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER, 0)
|
val keyEvent = KeyEvent(time, time, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER, 0)
|
||||||
sessionRule.session.textInput.onKeyDown(KeyEvent.KEYCODE_ENTER, keyEvent)
|
mainSession.textInput.onKeyDown(KeyEvent.KEYCODE_ENTER, keyEvent)
|
||||||
sessionRule.session.textInput.onKeyUp(KeyEvent.KEYCODE_ENTER,
|
mainSession.textInput.onKeyUp(KeyEvent.KEYCODE_ENTER,
|
||||||
KeyEvent.changeAction(keyEvent,
|
KeyEvent.changeAction(keyEvent,
|
||||||
KeyEvent.ACTION_UP))
|
KeyEvent.ACTION_UP))
|
||||||
|
|
||||||
sessionRule.session.waitUntilCalled(object : NavigationDelegate {
|
mainSession.waitUntilCalled(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 1, order = [1])
|
@AssertCalled(count = 1, order = [1])
|
||||||
override fun onLoadRequest(session: GeckoSession, request: LoadRequest):
|
override fun onLoadRequest(session: GeckoSession, request: LoadRequest):
|
||||||
GeckoResult<AllowOrDeny>? {
|
GeckoResult<AllowOrDeny>? {
|
||||||
|
@ -1848,14 +1848,14 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
val uri = "https://example.com"
|
val uri = "https://example.com"
|
||||||
val referrer = "https://foo.org/"
|
val referrer = "https://foo.org/"
|
||||||
|
|
||||||
sessionRule.session.load(Loader()
|
mainSession.load(Loader()
|
||||||
.uri(uri)
|
.uri(uri)
|
||||||
.referrer(referrer)
|
.referrer(referrer)
|
||||||
.flags(GeckoSession.LOAD_FLAGS_NONE))
|
.flags(GeckoSession.LOAD_FLAGS_NONE))
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
assertThat("Referrer should match",
|
assertThat("Referrer should match",
|
||||||
sessionRule.session.evaluateJS("document.referrer") as String,
|
mainSession.evaluateJS("document.referrer") as String,
|
||||||
equalTo(referrer))
|
equalTo(referrer))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1866,13 +1866,13 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
val uri = "https://example.com/bar"
|
val uri = "https://example.com/bar"
|
||||||
val referrer = "https://example.org/"
|
val referrer = "https://example.org/"
|
||||||
|
|
||||||
sessionRule.session.loadUri(referrer)
|
mainSession.loadUri(referrer)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
val newSession = sessionRule.createOpenSession()
|
val newSession = sessionRule.createOpenSession()
|
||||||
newSession.load(Loader()
|
newSession.load(Loader()
|
||||||
.uri(uri)
|
.uri(uri)
|
||||||
.referrer(sessionRule.session)
|
.referrer(mainSession)
|
||||||
.flags(GeckoSession.LOAD_FLAGS_NONE))
|
.flags(GeckoSession.LOAD_FLAGS_NONE))
|
||||||
newSession.waitForPageStop()
|
newSession.waitForPageStop()
|
||||||
|
|
||||||
|
@ -1888,13 +1888,13 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
val uri = "file:///system/etc/fonts.xml"
|
val uri = "file:///system/etc/fonts.xml"
|
||||||
val referrer = "https://example.org"
|
val referrer = "https://example.org"
|
||||||
|
|
||||||
sessionRule.session.loadUri(referrer)
|
mainSession.loadUri(referrer)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
val newSession = sessionRule.createOpenSession()
|
val newSession = sessionRule.createOpenSession()
|
||||||
newSession.load(Loader()
|
newSession.load(Loader()
|
||||||
.uri(uri)
|
.uri(uri)
|
||||||
.referrer(sessionRule.session)
|
.referrer(mainSession)
|
||||||
.flags(GeckoSession.LOAD_FLAGS_NONE))
|
.flags(GeckoSession.LOAD_FLAGS_NONE))
|
||||||
newSession.waitUntilCalled(object : NavigationDelegate {
|
newSession.waitUntilCalled(object : NavigationDelegate {
|
||||||
@AssertCalled
|
@AssertCalled
|
||||||
|
@ -1908,10 +1908,10 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
additional: Map<String?, String?>,
|
additional: Map<String?, String?>,
|
||||||
filter: Int = GeckoSession.HEADER_FILTER_CORS_SAFELISTED) {
|
filter: Int = GeckoSession.HEADER_FILTER_CORS_SAFELISTED) {
|
||||||
// First collect default headers with no override
|
// First collect default headers with no override
|
||||||
sessionRule.session.loadUri("$TEST_ENDPOINT/anything")
|
mainSession.loadUri("$TEST_ENDPOINT/anything")
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
val defaultContent = sessionRule.session.evaluateJS("document.body.children[0].innerHTML") as String
|
val defaultContent = mainSession.evaluateJS("document.body.children[0].innerHTML") as String
|
||||||
val defaultBody = JSONObject(defaultContent)
|
val defaultBody = JSONObject(defaultContent)
|
||||||
val defaultHeaders = defaultBody.getJSONObject("headers").asMap<String>()
|
val defaultHeaders = defaultBody.getJSONObject("headers").asMap<String>()
|
||||||
|
|
||||||
|
@ -1925,13 +1925,13 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now load the page with the header override
|
// Now load the page with the header override
|
||||||
sessionRule.session.load(Loader()
|
mainSession.load(Loader()
|
||||||
.uri("$TEST_ENDPOINT/anything")
|
.uri("$TEST_ENDPOINT/anything")
|
||||||
.additionalHeaders(headers)
|
.additionalHeaders(headers)
|
||||||
.headerFilter(filter))
|
.headerFilter(filter))
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
val content = sessionRule.session.evaluateJS("document.body.children[0].innerHTML") as String
|
val content = mainSession.evaluateJS("document.body.children[0].innerHTML") as String
|
||||||
val body = JSONObject(content)
|
val body = JSONObject(content)
|
||||||
val actualHeaders = body.getJSONObject("headers").asMap<String>()
|
val actualHeaders = body.getJSONObject("headers").asMap<String>()
|
||||||
|
|
||||||
|
@ -1969,7 +1969,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
Loader().uri("http://test-uri-equals.com")
|
Loader().uri("http://test-uri-equals.com")
|
||||||
.flags(GeckoSession.LOAD_FLAGS_BYPASS_CLASSIFIER)
|
.flags(GeckoSession.LOAD_FLAGS_BYPASS_CLASSIFIER)
|
||||||
.headerFilter(GeckoSession.HEADER_FILTER_UNRESTRICTED_UNSAFE)
|
.headerFilter(GeckoSession.HEADER_FILTER_UNRESTRICTED_UNSAFE)
|
||||||
.referrer(sessionRule.session),
|
.referrer(mainSession),
|
||||||
Loader().uri("http://test-uri-equals.com")
|
Loader().uri("http://test-uri-equals.com")
|
||||||
.flags(GeckoSession.LOAD_FLAGS_BYPASS_CLASSIFIER)
|
.flags(GeckoSession.LOAD_FLAGS_BYPASS_CLASSIFIER)
|
||||||
.headerFilter(GeckoSession.HEADER_FILTER_UNRESTRICTED_UNSAFE)
|
.headerFilter(GeckoSession.HEADER_FILTER_UNRESTRICTED_UNSAFE)
|
||||||
|
@ -1977,13 +1977,13 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
false)
|
false)
|
||||||
|
|
||||||
testLoaderEquals(
|
testLoaderEquals(
|
||||||
Loader().referrer(sessionRule.session)
|
Loader().referrer(mainSession)
|
||||||
.data("testtest", "text/plain"),
|
.data("testtest", "text/plain"),
|
||||||
Loader().referrer(sessionRule.session)
|
Loader().referrer(mainSession)
|
||||||
.data("testtest", "text/plain"),
|
.data("testtest", "text/plain"),
|
||||||
true)
|
true)
|
||||||
testLoaderEquals(
|
testLoaderEquals(
|
||||||
Loader().referrer(sessionRule.session)
|
Loader().referrer(mainSession)
|
||||||
.data("testtest", "text/plain"),
|
.data("testtest", "text/plain"),
|
||||||
Loader().referrer("test-referrer")
|
Loader().referrer("test-referrer")
|
||||||
.data("testtest", "text/plain"),
|
.data("testtest", "text/plain"),
|
||||||
|
@ -2155,19 +2155,19 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// Disable popup blocker.
|
// Disable popup blocker.
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(NEW_SESSION_HTML_PATH)
|
mainSession.loadTestPath(NEW_SESSION_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.delegateDuringNextWait(object : NavigationDelegate {
|
mainSession.delegateDuringNextWait(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onNewSession(session: GeckoSession, uri: String): GeckoResult<GeckoSession> {
|
override fun onNewSession(session: GeckoSession, uri: String): GeckoResult<GeckoSession> {
|
||||||
return GeckoResult.fromValue(sessionRule.createOpenSession())
|
return GeckoResult.fromValue(sessionRule.createOpenSession())
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#targetBlankLink').click()")
|
mainSession.evaluateJS("document.querySelector('#targetBlankLink').click()")
|
||||||
|
|
||||||
sessionRule.session.waitUntilCalled(NavigationDelegate::class,
|
mainSession.waitUntilCalled(NavigationDelegate::class,
|
||||||
"onNewSession")
|
"onNewSession")
|
||||||
UiThreadUtils.loopUntilIdle(sessionRule.env.defaultTimeoutMillis)
|
UiThreadUtils.loopUntilIdle(sessionRule.env.defaultTimeoutMillis)
|
||||||
}
|
}
|
||||||
|
@ -2255,7 +2255,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
assertThat("URL should match", currentUrl!!, equalTo(url))
|
assertThat("URL should match", currentUrl!!, equalTo(url))
|
||||||
|
|
||||||
sessionRule.session.goBack()
|
mainSession.goBack()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
assertThat("URL should match", currentUrl!!, endsWith(HELLO_HTML_PATH))
|
assertThat("URL should match", currentUrl!!, endsWith(HELLO_HTML_PATH))
|
||||||
|
@ -2263,12 +2263,12 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
mainSession.active,
|
mainSession.active,
|
||||||
equalTo(true))
|
equalTo(true))
|
||||||
|
|
||||||
sessionRule.session.goBack()
|
mainSession.goBack()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
assertThat("URL should match", currentUrl!!, equalTo(url))
|
assertThat("URL should match", currentUrl!!, equalTo(url))
|
||||||
|
|
||||||
sessionRule.session.goBack()
|
mainSession.goBack()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
assertThat("URL should match", currentUrl!!, endsWith(HELLO2_HTML_PATH))
|
assertThat("URL should match", currentUrl!!, endsWith(HELLO2_HTML_PATH))
|
||||||
|
@ -2283,12 +2283,12 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// TODO: bug 1710943
|
// TODO: bug 1710943
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadUri("$TEST_ENDPOINT$HELLO_HTML_PATH")
|
mainSession.loadUri("$TEST_ENDPOINT$HELLO_HTML_PATH")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("location.hash = 'test1';")
|
mainSession.evaluateJS("location.hash = 'test1';")
|
||||||
|
|
||||||
sessionRule.session.waitUntilCalled(object : NavigationDelegate {
|
mainSession.waitUntilCalled(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 0)
|
@AssertCalled(count = 0)
|
||||||
override fun onLoadRequest(session: GeckoSession,
|
override fun onLoadRequest(session: GeckoSession,
|
||||||
request: LoadRequest):
|
request: LoadRequest):
|
||||||
|
@ -2304,9 +2304,9 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("location.hash = 'test2';")
|
mainSession.evaluateJS("location.hash = 'test2';")
|
||||||
|
|
||||||
sessionRule.session.waitUntilCalled(object : NavigationDelegate {
|
mainSession.waitUntilCalled(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 0)
|
@AssertCalled(count = 0)
|
||||||
override fun onLoadRequest(session: GeckoSession,
|
override fun onLoadRequest(session: GeckoSession,
|
||||||
request: LoadRequest):
|
request: LoadRequest):
|
||||||
|
@ -2328,7 +2328,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// TODO: bug 1710943
|
// TODO: bug 1710943
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadUri("$TEST_ENDPOINT$HELLO_HTML_PATH")
|
mainSession.loadUri("$TEST_ENDPOINT$HELLO_HTML_PATH")
|
||||||
sessionRule.waitUntilCalled(object : NavigationDelegate {
|
sessionRule.waitUntilCalled(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onCanGoBack(session: GeckoSession, canGoBack: Boolean) {
|
override fun onCanGoBack(session: GeckoSession, canGoBack: Boolean) {
|
||||||
|
@ -2342,7 +2342,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
assertThat("Cannot go forward", canGoForward, equalTo(false))
|
assertThat("Cannot go forward", canGoForward, equalTo(false))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
sessionRule.session.loadUri("$TEST_ENDPOINT$HELLO2_HTML_PATH")
|
mainSession.loadUri("$TEST_ENDPOINT$HELLO2_HTML_PATH")
|
||||||
sessionRule.waitUntilCalled(object : HistoryDelegate, NavigationDelegate {
|
sessionRule.waitUntilCalled(object : HistoryDelegate, NavigationDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onCanGoBack(session: GeckoSession, canGoBack: Boolean) {
|
override fun onCanGoBack(session: GeckoSession, canGoBack: Boolean) {
|
||||||
|
@ -2359,7 +2359,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
assertThat("History should have two entries", state.size, equalTo(2))
|
assertThat("History should have two entries", state.size, equalTo(2))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
sessionRule.session.purgeHistory()
|
mainSession.purgeHistory()
|
||||||
sessionRule.waitUntilCalled(object : HistoryDelegate, NavigationDelegate {
|
sessionRule.waitUntilCalled(object : HistoryDelegate, NavigationDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onHistoryStateChange(session: GeckoSession, state: HistoryDelegate.HistoryList) {
|
override fun onHistoryStateChange(session: GeckoSession, state: HistoryDelegate.HistoryList) {
|
||||||
|
@ -2407,7 +2407,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
// TODO: bug 1710943
|
// TODO: bug 1710943
|
||||||
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
assumeThat(sessionRule.env.isIsolatedProcess, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.delegateDuringNextWait(object : NavigationDelegate {
|
mainSession.delegateDuringNextWait(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 2)
|
@AssertCalled(count = 2)
|
||||||
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
||||||
assertThat("URLs should match", request.uri, endsWith(forEachCall(HELLO_HTML_PATH, HELLO2_HTML_PATH)))
|
assertThat("URLs should match", request.uri, endsWith(forEachCall(HELLO_HTML_PATH, HELLO2_HTML_PATH)))
|
||||||
|
@ -2426,7 +2426,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
val expectedUri = createDataUri(dataBytes, "*/*")
|
val expectedUri = createDataUri(dataBytes, "*/*")
|
||||||
val loader = Loader().data(dataBytes, "*/*")
|
val loader = Loader().data(dataBytes, "*/*")
|
||||||
|
|
||||||
sessionRule.session.delegateUntilTestEnd(object : NavigationDelegate {
|
mainSession.delegateUntilTestEnd(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 1, order = [1])
|
@AssertCalled(count = 1, order = [1])
|
||||||
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
||||||
assertThat("URLs should match", request.uri, equalTo(expectedUri))
|
assertThat("URLs should match", request.uri, equalTo(expectedUri))
|
||||||
|
@ -2445,7 +2445,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.load(loader)
|
mainSession.load(loader)
|
||||||
sessionRule.waitUntilCalled(NavigationDelegate::class, "onLoadError")
|
sessionRule.waitUntilCalled(NavigationDelegate::class, "onLoadError")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2457,24 +2457,24 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
val dataBytes = ByteArray(3 * 1024 * 1024)
|
val dataBytes = ByteArray(3 * 1024 * 1024)
|
||||||
val dataUri = createDataUri(dataBytes, "*/*")
|
val dataUri = createDataUri(dataBytes, "*/*")
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(DATA_URI_PATH)
|
mainSession.loadTestPath(DATA_URI_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.delegateUntilTestEnd(object : NavigationDelegate {
|
mainSession.delegateUntilTestEnd(object : NavigationDelegate {
|
||||||
@AssertCalled(false)
|
@AssertCalled(false)
|
||||||
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
||||||
return GeckoResult.deny()
|
return GeckoResult.deny()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#largeLink').href = \"$dataUri\"")
|
mainSession.evaluateJS("document.querySelector('#largeLink').href = \"$dataUri\"")
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#largeLink').click()")
|
mainSession.evaluateJS("document.querySelector('#largeLink').click()")
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun loadShortDataUriToplevelIndirect() {
|
fun loadShortDataUriToplevelIndirect() {
|
||||||
sessionRule.session.delegateUntilTestEnd(object : NavigationDelegate {
|
mainSession.delegateUntilTestEnd(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 2)
|
@AssertCalled(count = 2)
|
||||||
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
||||||
return GeckoResult.allow()
|
return GeckoResult.allow()
|
||||||
|
@ -2490,12 +2490,12 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
val dataBytes = this.getTestBytes("/assets/www/images/test.gif")
|
val dataBytes = this.getTestBytes("/assets/www/images/test.gif")
|
||||||
val uri = createDataUri(dataBytes, "image/*")
|
val uri = createDataUri(dataBytes, "image/*")
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(DATA_URI_PATH)
|
mainSession.loadTestPath(DATA_URI_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#smallLink').href = \"$uri\"")
|
mainSession.evaluateJS("document.querySelector('#smallLink').href = \"$uri\"")
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#smallLink').click()")
|
mainSession.evaluateJS("document.querySelector('#smallLink').click()")
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createLargeHighEntropyImageDataUri() : String {
|
fun createLargeHighEntropyImageDataUri() : String {
|
||||||
|
@ -2525,7 +2525,7 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
fun loadLongDataUriNonToplevel() {
|
fun loadLongDataUriNonToplevel() {
|
||||||
val dataUri = createLargeHighEntropyImageDataUri()
|
val dataUri = createLargeHighEntropyImageDataUri()
|
||||||
|
|
||||||
sessionRule.session.delegateUntilTestEnd(object : NavigationDelegate {
|
mainSession.delegateUntilTestEnd(object : NavigationDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
override fun onLoadRequest(session: GeckoSession, request: LoadRequest): GeckoResult<AllowOrDeny>? {
|
||||||
return GeckoResult.allow()
|
return GeckoResult.allow()
|
||||||
|
@ -2538,14 +2538,14 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(DATA_URI_PATH)
|
mainSession.loadTestPath(DATA_URI_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#image').onload = () => { imageLoaded = true; }")
|
mainSession.evaluateJS("document.querySelector('#image').onload = () => { imageLoaded = true; }")
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#image').src = \"$dataUri\"")
|
mainSession.evaluateJS("document.querySelector('#image').src = \"$dataUri\"")
|
||||||
UiThreadUtils.waitForCondition({
|
UiThreadUtils.waitForCondition({
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#image').complete") as Boolean
|
mainSession.evaluateJS("document.querySelector('#image').complete") as Boolean
|
||||||
}, sessionRule.env.defaultTimeoutMillis)
|
}, sessionRule.env.defaultTimeoutMillis)
|
||||||
sessionRule.session.evaluateJS("if (!imageLoaded) throw imageLoaded")
|
mainSession.evaluateJS("if (!imageLoaded) throw imageLoaded")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,10 +21,10 @@ class PanZoomControllerTest : BaseSessionTest() {
|
||||||
private val scrollWaitTimeout = 10000.0 // 10 seconds
|
private val scrollWaitTimeout = 10000.0 // 10 seconds
|
||||||
|
|
||||||
private fun setupDocument(documentPath: String) {
|
private fun setupDocument(documentPath: String) {
|
||||||
sessionRule.session.loadTestPath(documentPath)
|
mainSession.loadTestPath(documentPath)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
sessionRule.session.promiseAllPaintsDone()
|
mainSession.promiseAllPaintsDone()
|
||||||
sessionRule.session.flushApzRepaints()
|
mainSession.flushApzRepaints()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupScroll() {
|
private fun setupScroll() {
|
||||||
|
@ -62,7 +62,7 @@ class PanZoomControllerTest : BaseSessionTest() {
|
||||||
setupScroll()
|
setupScroll()
|
||||||
val vh = mainSession.evaluateJS("window.visualViewport.height") as Double
|
val vh = mainSession.evaluateJS("window.visualViewport.height") as Double
|
||||||
assertThat("Visual viewport height is not zero", vh, greaterThan(0.0))
|
assertThat("Visual viewport height is not zero", vh, greaterThan(0.0))
|
||||||
sessionRule.session.panZoomController.scrollBy(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
mainSession.panZoomController.scrollBy(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
||||||
waitForVerticalScroll(vh, scrollWaitTimeout)
|
waitForVerticalScroll(vh, scrollWaitTimeout)
|
||||||
val scrollY = mainSession.evaluateJS("window.visualViewport.pageTop") as Double
|
val scrollY = mainSession.evaluateJS("window.visualViewport.pageTop") as Double
|
||||||
assertThat("scrollBy should have scrolled along y axis one viewport", scrollY, closeTo(vh, errorEpsilon))
|
assertThat("scrollBy should have scrolled along y axis one viewport", scrollY, closeTo(vh, errorEpsilon))
|
||||||
|
@ -73,7 +73,7 @@ class PanZoomControllerTest : BaseSessionTest() {
|
||||||
setupScroll()
|
setupScroll()
|
||||||
val vw = mainSession.evaluateJS("window.visualViewport.width") as Double
|
val vw = mainSession.evaluateJS("window.visualViewport.width") as Double
|
||||||
assertThat("Visual viewport width is not zero", vw, greaterThan(0.0))
|
assertThat("Visual viewport width is not zero", vw, greaterThan(0.0))
|
||||||
sessionRule.session.panZoomController.scrollBy(ScreenLength.fromVisualViewportWidth(1.0), ScreenLength.zero(), mode)
|
mainSession.panZoomController.scrollBy(ScreenLength.fromVisualViewportWidth(1.0), ScreenLength.zero(), mode)
|
||||||
waitForHorizontalScroll(vw, scrollWaitTimeout)
|
waitForHorizontalScroll(vw, scrollWaitTimeout)
|
||||||
val scrollX = mainSession.evaluateJS("window.visualViewport.pageLeft") as Double
|
val scrollX = mainSession.evaluateJS("window.visualViewport.pageLeft") as Double
|
||||||
assertThat("scrollBy should have scrolled along x axis one viewport", scrollX, closeTo(vw, errorEpsilon))
|
assertThat("scrollBy should have scrolled along x axis one viewport", scrollX, closeTo(vw, errorEpsilon))
|
||||||
|
@ -107,9 +107,9 @@ class PanZoomControllerTest : BaseSessionTest() {
|
||||||
setupScroll()
|
setupScroll()
|
||||||
val vh = mainSession.evaluateJS("window.visualViewport.height") as Double
|
val vh = mainSession.evaluateJS("window.visualViewport.height") as Double
|
||||||
assertThat("Visual viewport height is not zero", vh, greaterThan(0.0))
|
assertThat("Visual viewport height is not zero", vh, greaterThan(0.0))
|
||||||
sessionRule.session.panZoomController.scrollBy(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
mainSession.panZoomController.scrollBy(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
||||||
waitForVerticalScroll(vh, scrollWaitTimeout)
|
waitForVerticalScroll(vh, scrollWaitTimeout)
|
||||||
sessionRule.session.panZoomController.scrollBy(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
mainSession.panZoomController.scrollBy(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
||||||
waitForVerticalScroll(vh * 2.0, scrollWaitTimeout)
|
waitForVerticalScroll(vh * 2.0, scrollWaitTimeout)
|
||||||
val scrollY = mainSession.evaluateJS("window.visualViewport.pageTop") as Double
|
val scrollY = mainSession.evaluateJS("window.visualViewport.pageTop") as Double
|
||||||
assertThat("scrollBy should have scrolled along y axis one viewport", scrollY, closeTo(vh * 2.0, errorEpsilon))
|
assertThat("scrollBy should have scrolled along y axis one viewport", scrollY, closeTo(vh * 2.0, errorEpsilon))
|
||||||
|
@ -131,7 +131,7 @@ class PanZoomControllerTest : BaseSessionTest() {
|
||||||
setupScroll()
|
setupScroll()
|
||||||
val vh = mainSession.evaluateJS("window.visualViewport.height") as Double
|
val vh = mainSession.evaluateJS("window.visualViewport.height") as Double
|
||||||
assertThat("Visual viewport height is not zero", vh, greaterThan(0.0))
|
assertThat("Visual viewport height is not zero", vh, greaterThan(0.0))
|
||||||
sessionRule.session.panZoomController.scrollTo(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
mainSession.panZoomController.scrollTo(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
||||||
waitForVerticalScroll(vh, scrollWaitTimeout)
|
waitForVerticalScroll(vh, scrollWaitTimeout)
|
||||||
val scrollY = mainSession.evaluateJS("window.visualViewport.pageTop") as Double
|
val scrollY = mainSession.evaluateJS("window.visualViewport.pageTop") as Double
|
||||||
assertThat("scrollBy should have scrolled along y axis one viewport", scrollY, closeTo(vh, errorEpsilon))
|
assertThat("scrollBy should have scrolled along y axis one viewport", scrollY, closeTo(vh, errorEpsilon))
|
||||||
|
@ -142,7 +142,7 @@ class PanZoomControllerTest : BaseSessionTest() {
|
||||||
setupScroll()
|
setupScroll()
|
||||||
val vw = mainSession.evaluateJS("window.visualViewport.width") as Double
|
val vw = mainSession.evaluateJS("window.visualViewport.width") as Double
|
||||||
assertThat("Visual viewport width is not zero", vw, greaterThan(0.0))
|
assertThat("Visual viewport width is not zero", vw, greaterThan(0.0))
|
||||||
sessionRule.session.panZoomController.scrollTo(ScreenLength.fromVisualViewportWidth(1.0), ScreenLength.zero(), mode)
|
mainSession.panZoomController.scrollTo(ScreenLength.fromVisualViewportWidth(1.0), ScreenLength.zero(), mode)
|
||||||
waitForHorizontalScroll(vw, scrollWaitTimeout)
|
waitForHorizontalScroll(vw, scrollWaitTimeout)
|
||||||
val scrollX = mainSession.evaluateJS("window.visualViewport.pageLeft") as Double
|
val scrollX = mainSession.evaluateJS("window.visualViewport.pageLeft") as Double
|
||||||
assertThat("scrollBy should have scrolled along x axis one viewport", scrollX, closeTo(vw, errorEpsilon))
|
assertThat("scrollBy should have scrolled along x axis one viewport", scrollX, closeTo(vw, errorEpsilon))
|
||||||
|
@ -193,7 +193,7 @@ class PanZoomControllerTest : BaseSessionTest() {
|
||||||
val vh = mainSession.evaluateJS("window.visualViewport.height") as Double
|
val vh = mainSession.evaluateJS("window.visualViewport.height") as Double
|
||||||
assertThat("Visual viewport height has been changed", vh, lessThan(originalVH))
|
assertThat("Visual viewport height has been changed", vh, lessThan(originalVH))
|
||||||
|
|
||||||
sessionRule.session.panZoomController.scrollTo(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
mainSession.panZoomController.scrollTo(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
||||||
|
|
||||||
waitForVerticalScroll(vh, scrollWaitTimeout)
|
waitForVerticalScroll(vh, scrollWaitTimeout)
|
||||||
val scrollY = mainSession.evaluateJS("window.visualViewport.pageTop") as Double
|
val scrollY = mainSession.evaluateJS("window.visualViewport.pageTop") as Double
|
||||||
|
@ -216,9 +216,9 @@ class PanZoomControllerTest : BaseSessionTest() {
|
||||||
setupScroll()
|
setupScroll()
|
||||||
val vh = mainSession.evaluateJS("window.visualViewport.height") as Double
|
val vh = mainSession.evaluateJS("window.visualViewport.height") as Double
|
||||||
assertThat("Visual viewport height is not zero", vh, greaterThan(0.0))
|
assertThat("Visual viewport height is not zero", vh, greaterThan(0.0))
|
||||||
sessionRule.session.panZoomController.scrollTo(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
mainSession.panZoomController.scrollTo(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
||||||
waitForVerticalScroll(vh, scrollWaitTimeout)
|
waitForVerticalScroll(vh, scrollWaitTimeout)
|
||||||
sessionRule.session.panZoomController.scrollTo(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
mainSession.panZoomController.scrollTo(ScreenLength.zero(), ScreenLength.fromVisualViewportHeight(1.0), mode)
|
||||||
waitForVerticalScroll(vh, scrollWaitTimeout)
|
waitForVerticalScroll(vh, scrollWaitTimeout)
|
||||||
val scrollY = mainSession.evaluateJS("window.visualViewport.pageTop") as Double
|
val scrollY = mainSession.evaluateJS("window.visualViewport.pageTop") as Double
|
||||||
assertThat("scrollBy should have scrolled along y axis one viewport", scrollY, closeTo(vh, errorEpsilon))
|
assertThat("scrollBy should have scrolled along y axis one viewport", scrollY, closeTo(vh, errorEpsilon))
|
||||||
|
|
|
@ -16,10 +16,10 @@ import org.mozilla.geckoview.GeckoSessionSettings
|
||||||
class PrivateModeTest : BaseSessionTest() {
|
class PrivateModeTest : BaseSessionTest() {
|
||||||
@Test
|
@Test
|
||||||
fun privateDataNotShared() {
|
fun privateDataNotShared() {
|
||||||
sessionRule.session.loadUri("https://example.com")
|
mainSession.loadUri("https://example.com")
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("""
|
mainSession.evaluateJS("""
|
||||||
localStorage.setItem('ctx', 'regular');
|
localStorage.setItem('ctx', 'regular');
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ class PrivateModeTest : BaseSessionTest() {
|
||||||
localStorage.setItem('ctx', 'private');
|
localStorage.setItem('ctx', 'private');
|
||||||
""")
|
""")
|
||||||
|
|
||||||
localStorage = sessionRule.session.evaluateJS("""
|
localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ import org.mozilla.geckoview.test.rule.GeckoSessionTestRule.*
|
||||||
class ProgressDelegateTest : BaseSessionTest() {
|
class ProgressDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
fun testProgress(path: String) {
|
fun testProgress(path: String) {
|
||||||
sessionRule.session.loadTestPath(path)
|
mainSession.loadTestPath(path)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
var counter = 0
|
var counter = 0
|
||||||
|
@ -68,7 +68,7 @@ class ProgressDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
|
|
||||||
@Test fun load() {
|
@Test fun load() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -98,8 +98,8 @@ class ProgressDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
@Test fun multipleLoads() {
|
@Test fun multipleLoads() {
|
||||||
sessionRule.session.loadUri(UNKNOWN_HOST_URI)
|
mainSession.loadUri(UNKNOWN_HOST_URI)
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStops(2)
|
sessionRule.waitForPageStops(2)
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -120,10 +120,10 @@ class ProgressDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun reload() {
|
@Test fun reload() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -145,12 +145,12 @@ class ProgressDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun goBackAndForward() {
|
@Test fun goBackAndForward() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
sessionRule.session.loadTestPath(HELLO2_HTML_PATH)
|
mainSession.loadTestPath(HELLO2_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.goBack()
|
mainSession.goBack()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -170,7 +170,7 @@ class ProgressDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.goForward()
|
mainSession.goForward()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -194,7 +194,7 @@ class ProgressDelegateTest : BaseSessionTest() {
|
||||||
@Test fun correctSecurityInfoForValidTLS_automation() {
|
@Test fun correctSecurityInfoForValidTLS_automation() {
|
||||||
assumeThat(sessionRule.env.isAutomation, equalTo(true))
|
assumeThat(sessionRule.env.isAutomation, equalTo(true))
|
||||||
|
|
||||||
sessionRule.session.loadUri("https://example.com")
|
mainSession.loadUri("https://example.com")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -234,7 +234,7 @@ class ProgressDelegateTest : BaseSessionTest() {
|
||||||
@Test fun correctSecurityInfoForValidTLS_local() {
|
@Test fun correctSecurityInfoForValidTLS_local() {
|
||||||
assumeThat(sessionRule.env.isAutomation, equalTo(false))
|
assumeThat(sessionRule.env.isAutomation, equalTo(false))
|
||||||
|
|
||||||
sessionRule.session.loadUri("https://mozilla-modern.badssl.com")
|
mainSession.loadUri("https://mozilla-modern.badssl.com")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
sessionRule.forCallbacksDuringWait(object : ProgressDelegate {
|
||||||
|
@ -272,7 +272,7 @@ class ProgressDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
@LargeTest
|
@LargeTest
|
||||||
@Test fun noSecurityInfoForExpiredTLS() {
|
@Test fun noSecurityInfoForExpiredTLS() {
|
||||||
sessionRule.session.loadUri(if (sessionRule.env.isAutomation)
|
mainSession.loadUri(if (sessionRule.env.isAutomation)
|
||||||
"https://expired.example.com"
|
"https://expired.example.com"
|
||||||
else
|
else
|
||||||
"https://expired.badssl.com")
|
"https://expired.badssl.com")
|
||||||
|
@ -454,7 +454,7 @@ class ProgressDelegateTest : BaseSessionTest() {
|
||||||
@Test fun noHistoryDelegateOnSessionStateChange() {
|
@Test fun noHistoryDelegateOnSessionStateChange() {
|
||||||
// TODO: Bug 1648158
|
// TODO: Bug 1648158
|
||||||
assumeThat(sessionRule.env.isFission, equalTo(false))
|
assumeThat(sessionRule.env.isFission, equalTo(false))
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : ProgressDelegate {
|
sessionRule.waitUntilCalled(object : ProgressDelegate {
|
||||||
|
|
|
@ -55,7 +55,7 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(POPUP_HTML_PATH)
|
mainSession.loadTestPath(POPUP_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(NavigationDelegate::class, "onNewSession")
|
sessionRule.waitUntilCalled(NavigationDelegate::class, "onNewSession")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,14 +88,14 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(POPUP_HTML_PATH)
|
mainSession.loadTestPath(POPUP_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
sessionRule.session.waitForRoundTrip()
|
mainSession.waitForRoundTrip()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore // TODO: Reenable when 1501574 is fixed.
|
@Ignore // TODO: Reenable when 1501574 is fixed.
|
||||||
@Test fun alertTest() {
|
@Test fun alertTest() {
|
||||||
sessionRule.session.evaluateJS("alert('Alert!');")
|
mainSession.evaluateJS("alert('Alert!');")
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : PromptDelegate {
|
sessionRule.waitUntilCalled(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -205,7 +205,7 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun buttonTest() {
|
@Test fun buttonTest() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.delegateDuringNextWait(object : PromptDelegate {
|
sessionRule.delegateDuringNextWait(object : PromptDelegate {
|
||||||
|
@ -217,7 +217,7 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
})
|
})
|
||||||
|
|
||||||
assertThat("Result should match",
|
assertThat("Result should match",
|
||||||
sessionRule.session.waitForJS("confirm('Confirm?')") as Boolean,
|
mainSession.waitForJS("confirm('Confirm?')") as Boolean,
|
||||||
equalTo(true))
|
equalTo(true))
|
||||||
|
|
||||||
sessionRule.delegateDuringNextWait(object : PromptDelegate {
|
sessionRule.delegateDuringNextWait(object : PromptDelegate {
|
||||||
|
@ -229,16 +229,16 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
})
|
})
|
||||||
|
|
||||||
assertThat("Result should match",
|
assertThat("Result should match",
|
||||||
sessionRule.session.waitForJS("confirm('Confirm?')") as Boolean,
|
mainSession.waitForJS("confirm('Confirm?')") as Boolean,
|
||||||
equalTo(false))
|
equalTo(false))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun onFormResubmissionPrompt() {
|
fun onFormResubmissionPrompt() {
|
||||||
sessionRule.session.loadTestPath(RESUBMIT_CONFIRM)
|
mainSession.loadTestPath(RESUBMIT_CONFIRM)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS(
|
mainSession.evaluateJS(
|
||||||
"document.querySelector('#text').value = 'Some text';" +
|
"document.querySelector('#text').value = 'Some text';" +
|
||||||
"document.querySelector('#submit').click();"
|
"document.querySelector('#submit').click();"
|
||||||
)
|
)
|
||||||
|
@ -267,7 +267,7 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
})
|
})
|
||||||
|
|
||||||
// This should trigger a confirm resubmit prompt
|
// This should trigger a confirm resubmit prompt
|
||||||
sessionRule.session.reload();
|
mainSession.reload();
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : PromptDelegate {
|
sessionRule.waitUntilCalled(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -280,7 +280,7 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
sessionRule.waitForResult(promptResult)
|
sessionRule.waitForResult(promptResult)
|
||||||
|
|
||||||
// Trigger it again, this time the load should go through
|
// Trigger it again, this time the load should go through
|
||||||
sessionRule.session.reload();
|
mainSession.reload();
|
||||||
sessionRule.waitUntilCalled(object : PromptDelegate {
|
sessionRule.waitUntilCalled(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onRepostConfirmPrompt(session: GeckoSession, prompt: PromptDelegate.RepostConfirmPrompt): GeckoResult<PromptDelegate.PromptResponse>? {
|
override fun onRepostConfirmPrompt(session: GeckoSession, prompt: PromptDelegate.RepostConfirmPrompt): GeckoResult<PromptDelegate.PromptResponse>? {
|
||||||
|
@ -298,7 +298,7 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf(
|
sessionRule.setPrefsUntilTestEnd(mapOf(
|
||||||
"dom.require_user_interaction_for_beforeunload" to false
|
"dom.require_user_interaction_for_beforeunload" to false
|
||||||
))
|
))
|
||||||
sessionRule.session.loadTestPath(BEFORE_UNLOAD)
|
mainSession.loadTestPath(BEFORE_UNLOAD)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
val result = GeckoResult<Void>()
|
val result = GeckoResult<Void>()
|
||||||
|
@ -323,7 +323,7 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
// This will try to load "hello.html" but will be denied, if the request
|
// This will try to load "hello.html" but will be denied, if the request
|
||||||
// goes through anyway the onLoadRequest delegate above will throw an exception
|
// goes through anyway the onLoadRequest delegate above will throw an exception
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#navigateAway').click()")
|
mainSession.evaluateJS("document.querySelector('#navigateAway').click()")
|
||||||
sessionRule.waitUntilCalled(object : PromptDelegate {
|
sessionRule.waitUntilCalled(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onBeforeUnloadPrompt(session: GeckoSession, prompt: PromptDelegate.BeforeUnloadPrompt): GeckoResult<PromptDelegate.PromptResponse>? {
|
override fun onBeforeUnloadPrompt(session: GeckoSession, prompt: PromptDelegate.BeforeUnloadPrompt): GeckoResult<PromptDelegate.PromptResponse>? {
|
||||||
|
@ -336,7 +336,7 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
|
|
||||||
// This request will go through and end the test. Doing the negative case first will
|
// This request will go through and end the test. Doing the negative case first will
|
||||||
// ensure that if either of this tests fail the test will fail.
|
// ensure that if either of this tests fail the test will fail.
|
||||||
sessionRule.session.evaluateJS("document.querySelector('#navigateAway2').click()")
|
mainSession.evaluateJS("document.querySelector('#navigateAway2').click()")
|
||||||
sessionRule.waitUntilCalled(object : PromptDelegate {
|
sessionRule.waitUntilCalled(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onBeforeUnloadPrompt(session: GeckoSession, prompt: PromptDelegate.BeforeUnloadPrompt): GeckoResult<PromptDelegate.PromptResponse>? {
|
override fun onBeforeUnloadPrompt(session: GeckoSession, prompt: PromptDelegate.BeforeUnloadPrompt): GeckoResult<PromptDelegate.PromptResponse>? {
|
||||||
|
@ -350,8 +350,8 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun textTest() {
|
@Test fun textTest() {
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.delegateUntilTestEnd(object : PromptDelegate {
|
sessionRule.delegateUntilTestEnd(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -363,7 +363,7 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
})
|
})
|
||||||
|
|
||||||
assertThat("Result should match",
|
assertThat("Result should match",
|
||||||
sessionRule.session.waitForJS("prompt('Prompt:', 'default')") as String,
|
mainSession.waitForJS("prompt('Prompt:', 'default')") as String,
|
||||||
equalTo("foo"))
|
equalTo("foo"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -371,10 +371,10 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
@Test fun choiceTest() {
|
@Test fun choiceTest() {
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(PROMPT_HTML_PATH)
|
mainSession.loadTestPath(PROMPT_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("document.getElementById('selectexample').click();")
|
mainSession.evaluateJS("document.getElementById('selectexample').click();")
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : PromptDelegate {
|
sessionRule.waitUntilCalled(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -387,8 +387,8 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
@Test fun colorTest() {
|
@Test fun colorTest() {
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(PROMPT_HTML_PATH)
|
mainSession.loadTestPath(PROMPT_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.delegateDuringNextWait(object : PromptDelegate {
|
sessionRule.delegateDuringNextWait(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -398,11 +398,11 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("""
|
mainSession.evaluateJS("""
|
||||||
this.c = document.getElementById('colorexample');
|
this.c = document.getElementById('colorexample');
|
||||||
""".trimIndent())
|
""".trimIndent())
|
||||||
|
|
||||||
val promise = sessionRule.session.evaluatePromiseJS("""
|
val promise = mainSession.evaluatePromiseJS("""
|
||||||
new Promise((resolve, reject) => {
|
new Promise((resolve, reject) => {
|
||||||
this.c.addEventListener(
|
this.c.addEventListener(
|
||||||
'change',
|
'change',
|
||||||
|
@ -411,7 +411,7 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
);
|
);
|
||||||
})""".trimIndent())
|
})""".trimIndent())
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("this.c.click();")
|
mainSession.evaluateJS("this.c.click();")
|
||||||
|
|
||||||
assertThat("Value should match",
|
assertThat("Value should match",
|
||||||
promise.value as String,
|
promise.value as String,
|
||||||
|
@ -422,10 +422,10 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
@Test fun dateTest() {
|
@Test fun dateTest() {
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(PROMPT_HTML_PATH)
|
mainSession.loadTestPath(PROMPT_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("document.getElementById('dateexample').click();")
|
mainSession.evaluateJS("document.getElementById('dateexample').click();")
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : PromptDelegate {
|
sessionRule.waitUntilCalled(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
@ -438,10 +438,10 @@ class PromptDelegateTest : BaseSessionTest() {
|
||||||
@Test fun fileTest() {
|
@Test fun fileTest() {
|
||||||
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
sessionRule.setPrefsUntilTestEnd(mapOf("dom.disable_open_during_load" to false))
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(PROMPT_HTML_PATH)
|
mainSession.loadTestPath(PROMPT_HTML_PATH)
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("document.getElementById('fileexample').click();")
|
mainSession.evaluateJS("document.getElementById('fileexample').click();")
|
||||||
|
|
||||||
sessionRule.waitUntilCalled(object : PromptDelegate {
|
sessionRule.waitUntilCalled(object : PromptDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
|
|
|
@ -81,25 +81,25 @@ class RuntimeSettingsTest : BaseSessionTest() {
|
||||||
@Test fun fontSize() {
|
@Test fun fontSize() {
|
||||||
val settings = sessionRule.runtime.settings
|
val settings = sessionRule.runtime.settings
|
||||||
settings.fontSizeFactor = 1.0f
|
settings.fontSizeFactor = 1.0f
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
val fontSizeJs = "parseFloat(window.getComputedStyle(document.querySelector('p')).fontSize)"
|
val fontSizeJs = "parseFloat(window.getComputedStyle(document.querySelector('p')).fontSize)"
|
||||||
val initialFontSize = sessionRule.session.evaluateJS(fontSizeJs) as Double
|
val initialFontSize = mainSession.evaluateJS(fontSizeJs) as Double
|
||||||
|
|
||||||
val textSizeFactor = 2.0f
|
val textSizeFactor = 2.0f
|
||||||
settings.fontSizeFactor = textSizeFactor
|
settings.fontSizeFactor = textSizeFactor
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
var fontSize = sessionRule.session.evaluateJS(fontSizeJs) as Double
|
var fontSize = mainSession.evaluateJS(fontSizeJs) as Double
|
||||||
val expectedFontSize = initialFontSize * textSizeFactor
|
val expectedFontSize = initialFontSize * textSizeFactor
|
||||||
assertThat("old text size ${initialFontSize}px, new size should be ${expectedFontSize}px",
|
assertThat("old text size ${initialFontSize}px, new size should be ${expectedFontSize}px",
|
||||||
fontSize, closeTo(expectedFontSize, 0.1))
|
fontSize, closeTo(expectedFontSize, 0.1))
|
||||||
|
|
||||||
settings.fontSizeFactor = 1.0f
|
settings.fontSizeFactor = 1.0f
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
fontSize = sessionRule.session.evaluateJS(fontSizeJs) as Double
|
fontSize = mainSession.evaluateJS(fontSizeJs) as Double
|
||||||
assertThat("text size should be ${initialFontSize}px again",
|
assertThat("text size should be ${initialFontSize}px again",
|
||||||
fontSize, closeTo(initialFontSize, 0.1))
|
fontSize, closeTo(initialFontSize, 0.1))
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,7 +94,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
fun capturePixelsSucceeds() {
|
fun capturePixelsSucceeds() {
|
||||||
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -111,7 +111,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
fun capturePixelsCanBeCalledMultipleTimes() {
|
fun capturePixelsCanBeCalledMultipleTimes() {
|
||||||
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -207,14 +207,14 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
assumeThat(sessionRule.env.isFission, equalTo(false))
|
assumeThat(sessionRule.env.isFission, equalTo(false))
|
||||||
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
sessionRule.session.setActive(false)
|
mainSession.setActive(false)
|
||||||
|
|
||||||
// Deactivating the session should trigger a flush state change
|
// Deactivating the session should trigger a flush state change
|
||||||
sessionRule.waitUntilCalled(object : ProgressDelegate {
|
sessionRule.waitUntilCalled(object : ProgressDelegate {
|
||||||
|
@ -233,7 +233,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
fun screenshotToBitmap() {
|
fun screenshotToBitmap() {
|
||||||
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -250,7 +250,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
fun screenshotScaledToSize() {
|
fun screenshotScaledToSize() {
|
||||||
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
|
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -267,7 +267,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
fun screenShotScaledWithScale() {
|
fun screenShotScaledWithScale() {
|
||||||
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
|
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -284,7 +284,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
fun screenShotScaledWithAspectPreservingSize() {
|
fun screenShotScaledWithAspectPreservingSize() {
|
||||||
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
|
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -301,7 +301,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
fun recycleBitmap() {
|
fun recycleBitmap() {
|
||||||
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -323,7 +323,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
fun screenshotWholeRegion() {
|
fun screenshotWholeRegion() {
|
||||||
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH, SCREEN_HEIGHT)
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -340,7 +340,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
fun screenshotWholeRegionScaled() {
|
fun screenshotWholeRegionScaled() {
|
||||||
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
|
val screenshotFile = getComparisonScreenshot(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -359,7 +359,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
@Test
|
@Test
|
||||||
fun screenshotQuarters() {
|
fun screenshotQuarters() {
|
||||||
val res = InstrumentationRegistry.getInstrumentation().targetContext.resources
|
val res = InstrumentationRegistry.getInstrumentation().targetContext.resources
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -382,7 +382,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
@Test
|
@Test
|
||||||
fun screenshotQuartersScaled() {
|
fun screenshotQuartersScaled() {
|
||||||
val res = InstrumentationRegistry.getInstrumentation().targetContext.resources
|
val res = InstrumentationRegistry.getInstrumentation().targetContext.resources
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
@ -406,7 +406,7 @@ class ScreenshotTest : BaseSessionTest() {
|
||||||
@WithDisplay(height = BIG_SCREEN_HEIGHT, width = BIG_SCREEN_WIDTH)
|
@WithDisplay(height = BIG_SCREEN_HEIGHT, width = BIG_SCREEN_WIDTH)
|
||||||
@Test
|
@Test
|
||||||
fun giantScreenshot() {
|
fun giantScreenshot() {
|
||||||
sessionRule.session.loadTestPath(COLORS_HTML_PATH)
|
mainSession.loadTestPath(COLORS_HTML_PATH)
|
||||||
sessionRule.display?.screenshot()!!.source(0,0, BIG_SCREEN_WIDTH, BIG_SCREEN_HEIGHT)
|
sessionRule.display?.screenshot()!!.source(0,0, BIG_SCREEN_WIDTH, BIG_SCREEN_HEIGHT)
|
||||||
.size(BIG_SCREEN_WIDTH, BIG_SCREEN_HEIGHT)
|
.size(BIG_SCREEN_WIDTH, BIG_SCREEN_HEIGHT)
|
||||||
.capture()
|
.capture()
|
||||||
|
|
|
@ -35,33 +35,33 @@ class SessionLifecycleTest : BaseSessionTest() {
|
||||||
session2.close()
|
session2.close()
|
||||||
session3.close()
|
session3.close()
|
||||||
|
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun open_repeated() {
|
@Test fun open_repeated() {
|
||||||
for (i in 1..5) {
|
for (i in 1..5) {
|
||||||
sessionRule.session.close()
|
mainSession.close()
|
||||||
sessionRule.session.open()
|
mainSession.open()
|
||||||
}
|
}
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
sessionRule.session.waitForPageStop()
|
mainSession.waitForPageStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun open_allowCallsWhileClosed() {
|
@Test fun open_allowCallsWhileClosed() {
|
||||||
sessionRule.session.close()
|
mainSession.close()
|
||||||
|
|
||||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
mainSession.loadTestPath(HELLO_HTML_PATH)
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
|
|
||||||
sessionRule.session.open()
|
mainSession.open()
|
||||||
sessionRule.session.waitForPageStops(2)
|
mainSession.waitForPageStops(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = IllegalStateException::class)
|
@Test(expected = IllegalStateException::class)
|
||||||
fun open_throwOnAlreadyOpen() {
|
fun open_throwOnAlreadyOpen() {
|
||||||
// Throw exception if retrying to open again; otherwise we would leak the old open window.
|
// Throw exception if retrying to open again; otherwise we would leak the old open window.
|
||||||
sessionRule.session.open()
|
mainSession.open()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ClosedSessionAtStart
|
@ClosedSessionAtStart
|
||||||
|
|
|
@ -19,19 +19,19 @@ import org.junit.runner.RunWith
|
||||||
class StorageControllerTest : BaseSessionTest() {
|
class StorageControllerTest : BaseSessionTest() {
|
||||||
|
|
||||||
@Test fun clearData() {
|
@Test fun clearData() {
|
||||||
sessionRule.session.loadUri("https://example.com")
|
mainSession.loadUri("https://example.com")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("""
|
mainSession.evaluateJS("""
|
||||||
localStorage.setItem('ctx', 'test');
|
localStorage.setItem('ctx', 'test');
|
||||||
document.cookie = 'ctx=test';
|
document.cookie = 'ctx=test';
|
||||||
""")
|
""")
|
||||||
|
|
||||||
var localStorage = sessionRule.session.evaluateJS("""
|
var localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
var cookie = sessionRule.session.evaluateJS("""
|
var cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -46,11 +46,11 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
sessionRule.runtime.storageController.clearData(
|
sessionRule.runtime.storageController.clearData(
|
||||||
StorageController.ClearFlags.ALL))
|
StorageController.ClearFlags.ALL))
|
||||||
|
|
||||||
localStorage = sessionRule.session.evaluateJS("""
|
localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
cookie = sessionRule.session.evaluateJS("""
|
cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -63,19 +63,19 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun clearDataFlags() {
|
@Test fun clearDataFlags() {
|
||||||
sessionRule.session.loadUri("https://example.com")
|
mainSession.loadUri("https://example.com")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("""
|
mainSession.evaluateJS("""
|
||||||
localStorage.setItem('ctx', 'test');
|
localStorage.setItem('ctx', 'test');
|
||||||
document.cookie = 'ctx=test';
|
document.cookie = 'ctx=test';
|
||||||
""")
|
""")
|
||||||
|
|
||||||
var localStorage = sessionRule.session.evaluateJS("""
|
var localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
var cookie = sessionRule.session.evaluateJS("""
|
var cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -90,11 +90,11 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
sessionRule.runtime.storageController.clearData(
|
sessionRule.runtime.storageController.clearData(
|
||||||
StorageController.ClearFlags.COOKIES))
|
StorageController.ClearFlags.COOKIES))
|
||||||
|
|
||||||
localStorage = sessionRule.session.evaluateJS("""
|
localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
cookie = sessionRule.session.evaluateJS("""
|
cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
cookie,
|
cookie,
|
||||||
equalTo("null"))
|
equalTo("null"))
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("""
|
mainSession.evaluateJS("""
|
||||||
document.cookie = 'ctx=test';
|
document.cookie = 'ctx=test';
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
@ -122,11 +122,11 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
sessionRule.runtime.storageController.clearData(
|
sessionRule.runtime.storageController.clearData(
|
||||||
StorageController.ClearFlags.DOM_STORAGES))
|
StorageController.ClearFlags.DOM_STORAGES))
|
||||||
|
|
||||||
localStorage = sessionRule.session.evaluateJS("""
|
localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
cookie = sessionRule.session.evaluateJS("""
|
cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
cookie,
|
cookie,
|
||||||
equalTo("ctx=test"))
|
equalTo("ctx=test"))
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("""
|
mainSession.evaluateJS("""
|
||||||
localStorage.setItem('ctx', 'test');
|
localStorage.setItem('ctx', 'test');
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
@ -145,11 +145,11 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
sessionRule.runtime.storageController.clearData(
|
sessionRule.runtime.storageController.clearData(
|
||||||
StorageController.ClearFlags.SITE_DATA))
|
StorageController.ClearFlags.SITE_DATA))
|
||||||
|
|
||||||
localStorage = sessionRule.session.evaluateJS("""
|
localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
cookie = sessionRule.session.evaluateJS("""
|
cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -162,19 +162,19 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun clearDataFromHost() {
|
@Test fun clearDataFromHost() {
|
||||||
sessionRule.session.loadUri("https://example.com")
|
mainSession.loadUri("https://example.com")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("""
|
mainSession.evaluateJS("""
|
||||||
localStorage.setItem('ctx', 'test');
|
localStorage.setItem('ctx', 'test');
|
||||||
document.cookie = 'ctx=test';
|
document.cookie = 'ctx=test';
|
||||||
""")
|
""")
|
||||||
|
|
||||||
var localStorage = sessionRule.session.evaluateJS("""
|
var localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
var cookie = sessionRule.session.evaluateJS("""
|
var cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -190,11 +190,11 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
"test.com",
|
"test.com",
|
||||||
StorageController.ClearFlags.ALL))
|
StorageController.ClearFlags.ALL))
|
||||||
|
|
||||||
localStorage = sessionRule.session.evaluateJS("""
|
localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
cookie = sessionRule.session.evaluateJS("""
|
cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -210,11 +210,11 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
"example.com",
|
"example.com",
|
||||||
StorageController.ClearFlags.ALL))
|
StorageController.ClearFlags.ALL))
|
||||||
|
|
||||||
localStorage = sessionRule.session.evaluateJS("""
|
localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
cookie = sessionRule.session.evaluateJS("""
|
cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -231,19 +231,19 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
|
|
||||||
// Set site data for both root domain and subdomain.
|
// Set site data for both root domain and subdomain.
|
||||||
for(domain in domains) {
|
for(domain in domains) {
|
||||||
sessionRule.session.loadUri("https://" + domain)
|
mainSession.loadUri("https://" + domain)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
sessionRule.session.evaluateJS("""
|
mainSession.evaluateJS("""
|
||||||
localStorage.setItem('ctx', 'test');
|
localStorage.setItem('ctx', 'test');
|
||||||
document.cookie = 'ctx=test';
|
document.cookie = 'ctx=test';
|
||||||
""")
|
""")
|
||||||
|
|
||||||
var localStorage = sessionRule.session.evaluateJS("""
|
var localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
var cookie = sessionRule.session.evaluateJS("""
|
var cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -263,14 +263,14 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
StorageController.ClearFlags.ALL))
|
StorageController.ClearFlags.ALL))
|
||||||
|
|
||||||
for(domain in domains) {
|
for(domain in domains) {
|
||||||
sessionRule.session.loadUri("https://" + domain)
|
mainSession.loadUri("https://" + domain)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
var localStorage = sessionRule.session.evaluateJS("""
|
var localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
var cookie = sessionRule.session.evaluateJS("""
|
var cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
@ -290,14 +290,14 @@ class StorageControllerTest : BaseSessionTest() {
|
||||||
StorageController.ClearFlags.ALL))
|
StorageController.ClearFlags.ALL))
|
||||||
|
|
||||||
for(domain in domains) {
|
for(domain in domains) {
|
||||||
sessionRule.session.loadUri("https://" + domain)
|
mainSession.loadUri("https://" + domain)
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
var localStorage = sessionRule.session.evaluateJS("""
|
var localStorage = mainSession.evaluateJS("""
|
||||||
localStorage.getItem('ctx') || 'null'
|
localStorage.getItem('ctx') || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
var cookie = sessionRule.session.evaluateJS("""
|
var cookie = mainSession.evaluateJS("""
|
||||||
document.cookie || 'null'
|
document.cookie || 'null'
|
||||||
""") as String
|
""") as String
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ class VerticalClippingTest : BaseSessionTest() {
|
||||||
// Disable failing test on Webrender. Bug 1670267
|
// Disable failing test on Webrender. Bug 1670267
|
||||||
assumeThat(sessionRule.env.isWebrender, equalTo(false))
|
assumeThat(sessionRule.env.isWebrender, equalTo(false))
|
||||||
sessionRule.display?.setVerticalClipping(45)
|
sessionRule.display?.setVerticalClipping(45)
|
||||||
sessionRule.session.loadTestPath(FIXED_BOTTOM)
|
mainSession.loadTestPath(FIXED_BOTTOM)
|
||||||
sessionRule.waitUntilCalled(object : ContentDelegate {
|
sessionRule.waitUntilCalled(object : ContentDelegate {
|
||||||
@AssertCalled(count = 1)
|
@AssertCalled(count = 1)
|
||||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||||
|
|
|
@ -650,7 +650,7 @@ class WebExtensionTest : BaseSessionTest() {
|
||||||
|
|
||||||
tabsExtension.tabDelegate = object : WebExtension.TabDelegate {
|
tabsExtension.tabDelegate = object : WebExtension.TabDelegate {
|
||||||
override fun onNewTab(source: WebExtension, details: WebExtension.CreateTabDetails): GeckoResult<GeckoSession> {
|
override fun onNewTab(source: WebExtension, details: WebExtension.CreateTabDetails): GeckoResult<GeckoSession> {
|
||||||
val extensionCreatedSession = sessionRule.createClosedSession(sessionRule.session.settings)
|
val extensionCreatedSession = sessionRule.createClosedSession(mainSession.settings)
|
||||||
|
|
||||||
extensionCreatedSession.webExtensionController.setTabDelegate(tabsExtension, object : WebExtension.SessionTabDelegate {
|
extensionCreatedSession.webExtensionController.setTabDelegate(tabsExtension, object : WebExtension.SessionTabDelegate {
|
||||||
override fun onCloseTab(source: WebExtension?, session: GeckoSession): GeckoResult<AllowOrDeny> {
|
override fun onCloseTab(source: WebExtension?, session: GeckoSession): GeckoResult<AllowOrDeny> {
|
||||||
|
@ -688,7 +688,7 @@ class WebExtensionTest : BaseSessionTest() {
|
||||||
val onCloseRequestResult = GeckoResult<Void>()
|
val onCloseRequestResult = GeckoResult<Void>()
|
||||||
val tabsExtension = sessionRule.waitForResult(
|
val tabsExtension = sessionRule.waitForResult(
|
||||||
controller.installBuiltIn(TABS_ACTIVATE_REMOVE_BACKGROUND))
|
controller.installBuiltIn(TABS_ACTIVATE_REMOVE_BACKGROUND))
|
||||||
val newTabSession = sessionRule.createOpenSession(sessionRule.session.settings)
|
val newTabSession = sessionRule.createOpenSession(mainSession.settings)
|
||||||
|
|
||||||
sessionRule.addExternalDelegateUntilTestEnd(
|
sessionRule.addExternalDelegateUntilTestEnd(
|
||||||
WebExtension.SessionTabDelegate::class,
|
WebExtension.SessionTabDelegate::class,
|
||||||
|
@ -704,7 +704,7 @@ class WebExtensionTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
controller.setTabActive(sessionRule.session, false)
|
controller.setTabActive(mainSession, false)
|
||||||
controller.setTabActive(newTabSession, true)
|
controller.setTabActive(newTabSession, true)
|
||||||
|
|
||||||
sessionRule.waitForResult(onCloseRequestResult)
|
sessionRule.waitForResult(onCloseRequestResult)
|
||||||
|
@ -1051,7 +1051,7 @@ class WebExtensionTest : BaseSessionTest() {
|
||||||
controller.setAllowedInPrivateBrowsing(tabsExtensionPB, true))
|
controller.setAllowedInPrivateBrowsing(tabsExtensionPB, true))
|
||||||
|
|
||||||
|
|
||||||
val newTabSession = sessionRule.createOpenSession(sessionRule.session.settings)
|
val newTabSession = sessionRule.createOpenSession(mainSession.settings)
|
||||||
|
|
||||||
val newPrivateSession = sessionRule.createOpenSession(
|
val newPrivateSession = sessionRule.createOpenSession(
|
||||||
GeckoSessionSettings.Builder().usePrivateMode(true).build())
|
GeckoSessionSettings.Builder().usePrivateMode(true).build())
|
||||||
|
@ -1092,7 +1092,7 @@ class WebExtensionTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
controller.setTabActive(sessionRule.session, false)
|
controller.setTabActive(mainSession, false)
|
||||||
controller.setTabActive(newPrivateSession, true)
|
controller.setTabActive(newPrivateSession, true)
|
||||||
|
|
||||||
sessionRule.waitForResult(privateBrowsingPrivateSession)
|
sessionRule.waitForResult(privateBrowsingPrivateSession)
|
||||||
|
@ -1176,7 +1176,7 @@ class WebExtensionTest : BaseSessionTest() {
|
||||||
val extension = sessionRule.waitForResult(
|
val extension = sessionRule.waitForResult(
|
||||||
controller.installBuiltIn(EXTENSION_PAGE_RESTORE))
|
controller.installBuiltIn(EXTENSION_PAGE_RESTORE))
|
||||||
|
|
||||||
sessionRule.session.loadUri("${extension.metaData.baseUrl}tab.html")
|
mainSession.loadUri("${extension.metaData.baseUrl}tab.html")
|
||||||
sessionRule.waitForPageStop()
|
sessionRule.waitForPageStop()
|
||||||
|
|
||||||
var savedState : GeckoSession.SessionState? = null
|
var savedState : GeckoSession.SessionState? = null
|
||||||
|
@ -1188,7 +1188,7 @@ class WebExtensionTest : BaseSessionTest() {
|
||||||
})
|
})
|
||||||
|
|
||||||
// Test that messages are received in the main session
|
// Test that messages are received in the main session
|
||||||
testExtensionMessages(extension, sessionRule.session)
|
testExtensionMessages(extension, mainSession)
|
||||||
|
|
||||||
val newSession = sessionRule.createOpenSession()
|
val newSession = sessionRule.createOpenSession()
|
||||||
newSession.restoreState(savedState!!)
|
newSession.restoreState(savedState!!)
|
||||||
|
@ -1246,7 +1246,7 @@ class WebExtensionTest : BaseSessionTest() {
|
||||||
} else {
|
} else {
|
||||||
webExtension = sessionRule.waitForResult(
|
webExtension = sessionRule.waitForResult(
|
||||||
controller.installBuiltIn(MESSAGING_CONTENT))
|
controller.installBuiltIn(MESSAGING_CONTENT))
|
||||||
sessionRule.session.webExtensionController
|
mainSession.webExtensionController
|
||||||
.setMessageDelegate(webExtension, messageDelegate, "browser")
|
.setMessageDelegate(webExtension, messageDelegate, "browser")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1376,7 +1376,7 @@ class WebExtensionTest : BaseSessionTest() {
|
||||||
|
|
||||||
if (refresh) {
|
if (refresh) {
|
||||||
// Refreshing the page should disconnect the port
|
// Refreshing the page should disconnect the port
|
||||||
sessionRule.session.reload()
|
mainSession.reload()
|
||||||
} else {
|
} else {
|
||||||
// Let's ask the web extension to disconnect this port
|
// Let's ask the web extension to disconnect this port
|
||||||
val message = JSONObject()
|
val message = JSONObject()
|
||||||
|
@ -1544,7 +1544,7 @@ class WebExtensionTest : BaseSessionTest() {
|
||||||
|
|
||||||
messaging = sessionRule.waitForResult(controller.installBuiltIn(
|
messaging = sessionRule.waitForResult(controller.installBuiltIn(
|
||||||
"resource://android/assets/web_extensions/messaging-iframe/"))
|
"resource://android/assets/web_extensions/messaging-iframe/"))
|
||||||
sessionRule.session.webExtensionController
|
mainSession.webExtensionController
|
||||||
.setMessageDelegate(messaging, messageDelegate, "browser")
|
.setMessageDelegate(messaging, messageDelegate, "browser")
|
||||||
sessionRule.waitForResult(portTopLevel)
|
sessionRule.waitForResult(portTopLevel)
|
||||||
sessionRule.waitForResult(portIframe)
|
sessionRule.waitForResult(portIframe)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче