Loading components/browser/engine-gecko-beta/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt +9 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import mozilla.components.concept.engine.EngineSessionState import mozilla.components.concept.engine.HitResult import mozilla.components.concept.engine.Settings import mozilla.components.concept.engine.content.blocking.Tracker import mozilla.components.concept.engine.history.HistoryItem import mozilla.components.concept.engine.history.HistoryTrackingDelegate import mozilla.components.concept.engine.manifest.WebAppManifestParser import mozilla.components.concept.engine.request.RequestInterceptor Loading Loading @@ -567,6 +568,14 @@ class GeckoEngineSession( visits.toBooleanArray() } } override fun onHistoryStateChange( session: GeckoSession, historyList: GeckoSession.HistoryDelegate.HistoryList ) { val items = historyList.map { HistoryItem(title = it.title, uri = it.uri) } notifyObservers { onHistoryStateChanged(items, historyList.currentIndex) } } } @Suppress("ComplexMethod") Loading components/browser/engine-gecko-beta/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt +38 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import mozilla.components.concept.engine.EngineSession.SafeBrowsingPolicy import mozilla.components.concept.engine.HitResult import mozilla.components.concept.engine.UnsupportedSettingException import mozilla.components.concept.engine.content.blocking.Tracker import mozilla.components.concept.engine.history.HistoryItem import mozilla.components.concept.engine.history.HistoryTrackingDelegate import mozilla.components.concept.engine.manifest.WebAppManifest import mozilla.components.concept.engine.permission.PermissionRequest Loading Loading @@ -869,6 +870,43 @@ class GeckoEngineSessionTest { verify(historyTrackingDelegate, never()).getVisited(anyList()) } @Test fun `notifies configured history delegate of state changes`() = runBlockingTest { val engineSession = GeckoEngineSession(mock(), geckoSessionProvider = geckoSessionProvider, context = coroutineContext) val observer = mock<EngineSession.Observer>() engineSession.register(observer) captureDelegates() class MockHistoryList( items: List<GeckoSession.HistoryDelegate.HistoryItem>, private val currentIndex: Int ) : ArrayList<GeckoSession.HistoryDelegate.HistoryItem>(items), GeckoSession.HistoryDelegate.HistoryList { override fun getCurrentIndex() = currentIndex } fun mockHistoryItem(title: String, uri: String): GeckoSession.HistoryDelegate.HistoryItem { val item = mock<GeckoSession.HistoryDelegate.HistoryItem>() whenever(item.title).thenReturn(title) whenever(item.uri).thenReturn(uri) return item } historyDelegate.value.onHistoryStateChange(mock(), MockHistoryList(emptyList(), 0)) verify(observer).onHistoryStateChanged(emptyList(), 0) historyDelegate.value.onHistoryStateChange(mock(), MockHistoryList(listOf( mockHistoryItem("Firefox", "https://firefox.com"), mockHistoryItem("Mozilla", "http://mozilla.org") ), 1)) verify(observer).onHistoryStateChanged(listOf( HistoryItem("Firefox", "https://firefox.com"), HistoryItem("Mozilla", "http://mozilla.org") ), 1) } @Test fun websiteTitleUpdates() { val engineSession = GeckoEngineSession(mock(), Loading components/browser/engine-gecko-nightly/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt +9 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import mozilla.components.concept.engine.EngineSessionState import mozilla.components.concept.engine.HitResult import mozilla.components.concept.engine.Settings import mozilla.components.concept.engine.content.blocking.Tracker import mozilla.components.concept.engine.history.HistoryItem import mozilla.components.concept.engine.history.HistoryTrackingDelegate import mozilla.components.concept.engine.manifest.WebAppManifestParser import mozilla.components.concept.engine.request.RequestInterceptor Loading Loading @@ -579,6 +580,14 @@ class GeckoEngineSession( visits.toBooleanArray() } } override fun onHistoryStateChange( session: GeckoSession, historyList: GeckoSession.HistoryDelegate.HistoryList ) { val items = historyList.map { HistoryItem(title = it.title, uri = it.uri) } notifyObservers { onHistoryStateChanged(items, historyList.currentIndex) } } } @Suppress("ComplexMethod") Loading components/browser/engine-gecko-nightly/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt +38 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import mozilla.components.concept.engine.EngineSession.SafeBrowsingPolicy import mozilla.components.concept.engine.HitResult import mozilla.components.concept.engine.UnsupportedSettingException import mozilla.components.concept.engine.content.blocking.Tracker import mozilla.components.concept.engine.history.HistoryItem import mozilla.components.concept.engine.history.HistoryTrackingDelegate import mozilla.components.concept.engine.manifest.WebAppManifest import mozilla.components.concept.engine.permission.PermissionRequest Loading Loading @@ -900,6 +901,43 @@ class GeckoEngineSessionTest { verify(historyTrackingDelegate, never()).getVisited(anyList()) } @Test fun `notifies configured history delegate of state changes`() = runBlockingTest { val engineSession = GeckoEngineSession(mock(), geckoSessionProvider = geckoSessionProvider, context = coroutineContext) val observer = mock<EngineSession.Observer>() engineSession.register(observer) captureDelegates() class MockHistoryList( items: List<GeckoSession.HistoryDelegate.HistoryItem>, private val currentIndex: Int ) : ArrayList<GeckoSession.HistoryDelegate.HistoryItem>(items), GeckoSession.HistoryDelegate.HistoryList { override fun getCurrentIndex() = currentIndex } fun mockHistoryItem(title: String, uri: String): GeckoSession.HistoryDelegate.HistoryItem { val item = mock<GeckoSession.HistoryDelegate.HistoryItem>() whenever(item.title).thenReturn(title) whenever(item.uri).thenReturn(uri) return item } historyDelegate.value.onHistoryStateChange(mock(), MockHistoryList(emptyList(), 0)) verify(observer).onHistoryStateChanged(emptyList(), 0) historyDelegate.value.onHistoryStateChange(mock(), MockHistoryList(listOf( mockHistoryItem("Firefox", "https://firefox.com"), mockHistoryItem("Mozilla", "http://mozilla.org") ), 1)) verify(observer).onHistoryStateChanged(listOf( HistoryItem("Firefox", "https://firefox.com"), HistoryItem("Mozilla", "http://mozilla.org") ), 1) } @Test fun websiteTitleUpdates() { val engineSession = GeckoEngineSession(mock(), Loading components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt +9 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import mozilla.components.concept.engine.EngineSessionState import mozilla.components.concept.engine.HitResult import mozilla.components.concept.engine.Settings import mozilla.components.concept.engine.content.blocking.Tracker import mozilla.components.concept.engine.history.HistoryItem import mozilla.components.concept.engine.history.HistoryTrackingDelegate import mozilla.components.concept.engine.manifest.WebAppManifestParser import mozilla.components.concept.engine.request.RequestInterceptor Loading Loading @@ -565,6 +566,14 @@ class GeckoEngineSession( visits.toBooleanArray() } } override fun onHistoryStateChange( session: GeckoSession, historyList: GeckoSession.HistoryDelegate.HistoryList ) { val items = historyList.map { HistoryItem(title = it.title, uri = it.uri) } notifyObservers { onHistoryStateChanged(items, historyList.currentIndex) } } } @Suppress("ComplexMethod") Loading Loading
components/browser/engine-gecko-beta/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt +9 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import mozilla.components.concept.engine.EngineSessionState import mozilla.components.concept.engine.HitResult import mozilla.components.concept.engine.Settings import mozilla.components.concept.engine.content.blocking.Tracker import mozilla.components.concept.engine.history.HistoryItem import mozilla.components.concept.engine.history.HistoryTrackingDelegate import mozilla.components.concept.engine.manifest.WebAppManifestParser import mozilla.components.concept.engine.request.RequestInterceptor Loading Loading @@ -567,6 +568,14 @@ class GeckoEngineSession( visits.toBooleanArray() } } override fun onHistoryStateChange( session: GeckoSession, historyList: GeckoSession.HistoryDelegate.HistoryList ) { val items = historyList.map { HistoryItem(title = it.title, uri = it.uri) } notifyObservers { onHistoryStateChanged(items, historyList.currentIndex) } } } @Suppress("ComplexMethod") Loading
components/browser/engine-gecko-beta/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt +38 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import mozilla.components.concept.engine.EngineSession.SafeBrowsingPolicy import mozilla.components.concept.engine.HitResult import mozilla.components.concept.engine.UnsupportedSettingException import mozilla.components.concept.engine.content.blocking.Tracker import mozilla.components.concept.engine.history.HistoryItem import mozilla.components.concept.engine.history.HistoryTrackingDelegate import mozilla.components.concept.engine.manifest.WebAppManifest import mozilla.components.concept.engine.permission.PermissionRequest Loading Loading @@ -869,6 +870,43 @@ class GeckoEngineSessionTest { verify(historyTrackingDelegate, never()).getVisited(anyList()) } @Test fun `notifies configured history delegate of state changes`() = runBlockingTest { val engineSession = GeckoEngineSession(mock(), geckoSessionProvider = geckoSessionProvider, context = coroutineContext) val observer = mock<EngineSession.Observer>() engineSession.register(observer) captureDelegates() class MockHistoryList( items: List<GeckoSession.HistoryDelegate.HistoryItem>, private val currentIndex: Int ) : ArrayList<GeckoSession.HistoryDelegate.HistoryItem>(items), GeckoSession.HistoryDelegate.HistoryList { override fun getCurrentIndex() = currentIndex } fun mockHistoryItem(title: String, uri: String): GeckoSession.HistoryDelegate.HistoryItem { val item = mock<GeckoSession.HistoryDelegate.HistoryItem>() whenever(item.title).thenReturn(title) whenever(item.uri).thenReturn(uri) return item } historyDelegate.value.onHistoryStateChange(mock(), MockHistoryList(emptyList(), 0)) verify(observer).onHistoryStateChanged(emptyList(), 0) historyDelegate.value.onHistoryStateChange(mock(), MockHistoryList(listOf( mockHistoryItem("Firefox", "https://firefox.com"), mockHistoryItem("Mozilla", "http://mozilla.org") ), 1)) verify(observer).onHistoryStateChanged(listOf( HistoryItem("Firefox", "https://firefox.com"), HistoryItem("Mozilla", "http://mozilla.org") ), 1) } @Test fun websiteTitleUpdates() { val engineSession = GeckoEngineSession(mock(), Loading
components/browser/engine-gecko-nightly/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt +9 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import mozilla.components.concept.engine.EngineSessionState import mozilla.components.concept.engine.HitResult import mozilla.components.concept.engine.Settings import mozilla.components.concept.engine.content.blocking.Tracker import mozilla.components.concept.engine.history.HistoryItem import mozilla.components.concept.engine.history.HistoryTrackingDelegate import mozilla.components.concept.engine.manifest.WebAppManifestParser import mozilla.components.concept.engine.request.RequestInterceptor Loading Loading @@ -579,6 +580,14 @@ class GeckoEngineSession( visits.toBooleanArray() } } override fun onHistoryStateChange( session: GeckoSession, historyList: GeckoSession.HistoryDelegate.HistoryList ) { val items = historyList.map { HistoryItem(title = it.title, uri = it.uri) } notifyObservers { onHistoryStateChanged(items, historyList.currentIndex) } } } @Suppress("ComplexMethod") Loading
components/browser/engine-gecko-nightly/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt +38 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import mozilla.components.concept.engine.EngineSession.SafeBrowsingPolicy import mozilla.components.concept.engine.HitResult import mozilla.components.concept.engine.UnsupportedSettingException import mozilla.components.concept.engine.content.blocking.Tracker import mozilla.components.concept.engine.history.HistoryItem import mozilla.components.concept.engine.history.HistoryTrackingDelegate import mozilla.components.concept.engine.manifest.WebAppManifest import mozilla.components.concept.engine.permission.PermissionRequest Loading Loading @@ -900,6 +901,43 @@ class GeckoEngineSessionTest { verify(historyTrackingDelegate, never()).getVisited(anyList()) } @Test fun `notifies configured history delegate of state changes`() = runBlockingTest { val engineSession = GeckoEngineSession(mock(), geckoSessionProvider = geckoSessionProvider, context = coroutineContext) val observer = mock<EngineSession.Observer>() engineSession.register(observer) captureDelegates() class MockHistoryList( items: List<GeckoSession.HistoryDelegate.HistoryItem>, private val currentIndex: Int ) : ArrayList<GeckoSession.HistoryDelegate.HistoryItem>(items), GeckoSession.HistoryDelegate.HistoryList { override fun getCurrentIndex() = currentIndex } fun mockHistoryItem(title: String, uri: String): GeckoSession.HistoryDelegate.HistoryItem { val item = mock<GeckoSession.HistoryDelegate.HistoryItem>() whenever(item.title).thenReturn(title) whenever(item.uri).thenReturn(uri) return item } historyDelegate.value.onHistoryStateChange(mock(), MockHistoryList(emptyList(), 0)) verify(observer).onHistoryStateChanged(emptyList(), 0) historyDelegate.value.onHistoryStateChange(mock(), MockHistoryList(listOf( mockHistoryItem("Firefox", "https://firefox.com"), mockHistoryItem("Mozilla", "http://mozilla.org") ), 1)) verify(observer).onHistoryStateChanged(listOf( HistoryItem("Firefox", "https://firefox.com"), HistoryItem("Mozilla", "http://mozilla.org") ), 1) } @Test fun websiteTitleUpdates() { val engineSession = GeckoEngineSession(mock(), Loading
components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt +9 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import mozilla.components.concept.engine.EngineSessionState import mozilla.components.concept.engine.HitResult import mozilla.components.concept.engine.Settings import mozilla.components.concept.engine.content.blocking.Tracker import mozilla.components.concept.engine.history.HistoryItem import mozilla.components.concept.engine.history.HistoryTrackingDelegate import mozilla.components.concept.engine.manifest.WebAppManifestParser import mozilla.components.concept.engine.request.RequestInterceptor Loading Loading @@ -565,6 +566,14 @@ class GeckoEngineSession( visits.toBooleanArray() } } override fun onHistoryStateChange( session: GeckoSession, historyList: GeckoSession.HistoryDelegate.HistoryList ) { val items = historyList.map { HistoryItem(title = it.title, uri = it.uri) } notifyObservers { onHistoryStateChanged(items, historyList.currentIndex) } } } @Suppress("ComplexMethod") Loading