Commit 612bf036 authored by Simon Chae's avatar Simon Chae
Browse files

Issue #3832: Add support for additional headers when loading url

parent 0416d60b
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -101,8 +101,13 @@ class GeckoEngineSession(
    /**
     * See [EngineSession.loadUrl]
     */
    override fun loadUrl(url: String, parent: EngineSession?, flags: LoadUrlFlags) {
        geckoSession.loadUri(url, (parent as? GeckoEngineSession)?.geckoSession, flags.value)
    override fun loadUrl(
        url: String,
        parent: EngineSession?,
        flags: LoadUrlFlags,
        additionalHeaders: Map<String, String>?
    ) {
        geckoSession.loadUri(url, (parent as? GeckoEngineSession)?.geckoSession, flags.value, additionalHeaders)
    }

    /**
+32 −5
Original line number Diff line number Diff line
@@ -380,16 +380,36 @@ class GeckoEngineSessionTest {
        val parentEngineSession = GeckoEngineSession(mock(), geckoSessionProvider = geckoSessionProvider)

        engineSession.loadUrl("http://mozilla.org")
        verify(geckoSession).loadUri("http://mozilla.org", null as GeckoSession?, GeckoSession.LOAD_FLAGS_NONE)
        verify(geckoSession).loadUri(
            "http://mozilla.org",
            null as GeckoSession?,
            GeckoSession.LOAD_FLAGS_NONE,
            null as Map<String, String>?
        )

        engineSession.loadUrl("http://www.mozilla.org", flags = LoadUrlFlags.select(LoadUrlFlags.EXTERNAL))
        verify(geckoSession).loadUri("http://www.mozilla.org", null as GeckoSession?, GeckoSession.LOAD_FLAGS_EXTERNAL)
        verify(geckoSession).loadUri(
            "http://www.mozilla.org",
            null as GeckoSession?,
            GeckoSession.LOAD_FLAGS_EXTERNAL,
            null as Map<String, String>?
        )

        engineSession.loadUrl("http://www.mozilla.org", parent = parentEngineSession)
        verify(geckoSession).loadUri(
            "http://www.mozilla.org",
            parentEngineSession.geckoSession,
            GeckoSession.LOAD_FLAGS_NONE
            GeckoSession.LOAD_FLAGS_NONE,
            null as Map<String, String>?
        )

        val extraHeaders = mapOf("X-Extra-Header" to "true")
        engineSession.loadUrl("http://www.mozilla.org", additionalHeaders = extraHeaders)
        verify(geckoSession).loadUri(
            "http://www.mozilla.org",
            null as GeckoSession?,
            GeckoSession.LOAD_FLAGS_NONE,
            extraHeaders
        )
    }

@@ -1181,7 +1201,12 @@ class GeckoEngineSessionTest {
        navigationDelegate.value.onLoadRequest(geckoSession, mockLoadRequest("sample:about"))

        assertEquals("sample:about", interceptorCalledWithUri)
        verify(geckoSession).loadUri("https://mozilla.org", null as GeckoSession?, GeckoSession.LOAD_FLAGS_NONE)
        verify(geckoSession).loadUri(
            "https://mozilla.org",
            null as GeckoSession?,
            GeckoSession.LOAD_FLAGS_NONE,
            null as Map<String, String>?
        )
    }

    @Test
@@ -2048,7 +2073,9 @@ class GeckoEngineSessionTest {

        // loadUrl(url: String)
        engineSession.loadUrl(fakeUrl)
        verify(geckoSession).loadUri(fakeUrl, null as GeckoSession?, GeckoSession.LOAD_FLAGS_NONE)
        verify(geckoSession).loadUri(
            fakeUrl, null as GeckoSession?, GeckoSession.LOAD_FLAGS_NONE, null as Map<String, String>?
        )
        fakePageLoad(false)

        // subsequent page loads _are_ from web content
+7 −2
Original line number Diff line number Diff line
@@ -101,8 +101,13 @@ class GeckoEngineSession(
    /**
     * See [EngineSession.loadUrl]
     */
    override fun loadUrl(url: String, parent: EngineSession?, flags: LoadUrlFlags) {
        geckoSession.loadUri(url, (parent as? GeckoEngineSession)?.geckoSession, flags.value)
    override fun loadUrl(
        url: String,
        parent: EngineSession?,
        flags: LoadUrlFlags,
        additionalHeaders: Map<String, String>?
    ) {
        geckoSession.loadUri(url, (parent as? GeckoEngineSession)?.geckoSession, flags.value, additionalHeaders)
    }

    /**
+32 −5
Original line number Diff line number Diff line
@@ -380,16 +380,36 @@ class GeckoEngineSessionTest {
        val parentEngineSession = GeckoEngineSession(mock(), geckoSessionProvider = geckoSessionProvider)

        engineSession.loadUrl("http://mozilla.org")
        verify(geckoSession).loadUri("http://mozilla.org", null as GeckoSession?, GeckoSession.LOAD_FLAGS_NONE)
        verify(geckoSession).loadUri(
            "http://mozilla.org",
            null as GeckoSession?,
            GeckoSession.LOAD_FLAGS_NONE,
            null as Map<String, String>?
        )

        engineSession.loadUrl("http://www.mozilla.org", flags = LoadUrlFlags.select(LoadUrlFlags.EXTERNAL))
        verify(geckoSession).loadUri("http://www.mozilla.org", null as GeckoSession?, GeckoSession.LOAD_FLAGS_EXTERNAL)
        verify(geckoSession).loadUri(
            "http://www.mozilla.org",
            null as GeckoSession?,
            GeckoSession.LOAD_FLAGS_EXTERNAL,
            null as Map<String, String>?
        )

        engineSession.loadUrl("http://www.mozilla.org", parent = parentEngineSession)
        verify(geckoSession).loadUri(
            "http://www.mozilla.org",
            parentEngineSession.geckoSession,
            GeckoSession.LOAD_FLAGS_NONE
            GeckoSession.LOAD_FLAGS_NONE,
            null as Map<String, String>?
        )

        val extraHeaders = mapOf("X-Extra-Header" to "true")
        engineSession.loadUrl("http://www.mozilla.org", additionalHeaders = extraHeaders)
        verify(geckoSession).loadUri(
            "http://www.mozilla.org",
            null as GeckoSession?,
            GeckoSession.LOAD_FLAGS_NONE,
            extraHeaders
        )
    }

@@ -1181,7 +1201,12 @@ class GeckoEngineSessionTest {
        navigationDelegate.value.onLoadRequest(geckoSession, mockLoadRequest("sample:about"))

        assertEquals("sample:about", interceptorCalledWithUri)
        verify(geckoSession).loadUri("https://mozilla.org", null as GeckoSession?, GeckoSession.LOAD_FLAGS_NONE)
        verify(geckoSession).loadUri(
            "https://mozilla.org",
            null as GeckoSession?,
            GeckoSession.LOAD_FLAGS_NONE,
            null as Map<String, String>?
        )
    }

    @Test
@@ -2048,7 +2073,9 @@ class GeckoEngineSessionTest {

        // loadUrl(url: String)
        engineSession.loadUrl(fakeUrl)
        verify(geckoSession).loadUri(fakeUrl, null as GeckoSession?, GeckoSession.LOAD_FLAGS_NONE)
        verify(geckoSession).loadUri(
            fakeUrl, null as GeckoSession?, GeckoSession.LOAD_FLAGS_NONE, null as Map<String, String>?
        )
        fakePageLoad(false)

        // subsequent page loads _are_ from web content
+7 −2
Original line number Diff line number Diff line
@@ -101,8 +101,13 @@ class GeckoEngineSession(
    /**
     * See [EngineSession.loadUrl]
     */
    override fun loadUrl(url: String, parent: EngineSession?, flags: LoadUrlFlags) {
        geckoSession.loadUri(url, (parent as? GeckoEngineSession)?.geckoSession, flags.value)
    override fun loadUrl(
        url: String,
        parent: EngineSession?,
        flags: LoadUrlFlags,
        additionalHeaders: Map<String, String>?
    ) {
        geckoSession.loadUri(url, (parent as? GeckoEngineSession)?.geckoSession, flags.value, additionalHeaders)
    }

    /**
Loading