Loading components/browser/session/src/main/java/mozilla/components/browser/session/LegacySessionManager.kt +2 −1 Original line number Diff line number Diff line Loading @@ -137,9 +137,10 @@ class LegacySessionManager( session: Session, selected: Boolean = false, engineSession: EngineSession? = null, engineSessionState: EngineSessionState? = null, parent: Session? = null ) = synchronized(values) { addInternal(session, selected, engineSession, parent = parent, viaRestore = false) addInternal(session, selected, engineSession, engineSessionState, parent = parent, viaRestore = false) } @Suppress("LongParameterList", "ComplexMethod") Loading components/browser/session/src/main/java/mozilla/components/browser/session/SessionManager.kt +13 −1 Original line number Diff line number Diff line Loading @@ -147,10 +147,12 @@ class SessionManager( session: Session, selected: Boolean = false, engineSession: EngineSession? = null, engineSessionState: EngineSessionState? = null, parent: Session? = null ) { // Add store to Session so that it can dispatch actions whenever it changes. session.store = store if (parent != null) { require(all.contains(parent)) { "The parent does not exist" } session.parentId = parent.id Loading @@ -171,7 +173,17 @@ class SessionManager( ) } delegate.add(session, selected, engineSession, parent) if (engineSessionState != null && engineSession == null) { // If the caller passed us an engine session state then also notify the store. We only // do this if there is no engine session, because this mirrors the behavior in // LegacySessionManager, which will either link an engine session or keep its state. store?.syncDispatch(UpdateEngineSessionStateAction( session.id, engineSessionState )) } delegate.add(session, selected, engineSession, engineSessionState, parent) } /** Loading components/browser/session/src/test/java/mozilla/components/browser/session/SessionManagerMigrationTest.kt +52 −0 Original line number Diff line number Diff line Loading @@ -1281,6 +1281,58 @@ class SessionManagerMigrationTest { verify(engineSession3, never()).close() verify(engineSession4, never()).close() } @Test fun `Adding session with engine session state`() { val store = BrowserStore() val manager = SessionManager(engine = mock(), store = store) val state: EngineSessionState = mock() val session = Session("https://www.mozilla.org") manager.add(session, engineSessionState = state) assertEquals(state, session.engineSessionHolder.engineSessionState) assertNull(session.engineSessionHolder.engineSession) assertEquals(state, store.state.tabs[0].engineState.engineSessionState) assertNull(store.state.tabs[0].engineState.engineSession) } @Test fun `Adding session with engine session and engine session state`() { val store = BrowserStore() val manager = SessionManager(engine = mock(), store = store) val state: EngineSessionState = mock() val engineSession: EngineSession = mock() val session = Session("https://www.mozilla.org") manager.add(session, engineSession = engineSession, engineSessionState = state) assertNull(session.engineSessionHolder.engineSessionState) assertEquals(engineSession, session.engineSessionHolder.engineSession) assertNull(store.state.tabs[0].engineState.engineSessionState) assertEquals(engineSession, session.engineSessionHolder.engineSession) } @Test fun `Adding session with engine session`() { val store = BrowserStore() val manager = SessionManager(engine = mock(), store = store) val engineSession: EngineSession = mock() val session = Session("https://www.mozilla.org") manager.add(session, engineSession = engineSession) assertNull(session.engineSessionHolder.engineSessionState) assertEquals(engineSession, session.engineSessionHolder.engineSession) assertNull(store.state.tabs[0].engineState.engineSessionState) assertEquals(engineSession, session.engineSessionHolder.engineSession) } } private fun createMockEngineSessionWithState(): EngineSession { Loading components/feature/customtabs/src/test/java/mozilla/components/feature/customtabs/CustomTabIntentProcessorTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ class CustomTabIntentProcessorTest { whenever(intent.putExtra(any<String>(), any<String>())).thenReturn(intent) handler.process(intent) verify(sessionManager).add(anySession(), eq(false), eq(null), eq(null)) verify(sessionManager).add(anySession(), eq(false), eq(null), eq(null), eq(null)) verify(engineSession).loadUrl("http://mozilla.org", flags = LoadUrlFlags.external()) verify(intent).putExtra(eq(EXTRA_SESSION_ID), any<String>()) Loading Loading @@ -92,7 +92,7 @@ class CustomTabIntentProcessorTest { whenever(intent.putExtra(any<String>(), any<String>())).thenReturn(intent) handler.process(intent) verify(sessionManager).add(anySession(), eq(false), eq(null), eq(null)) verify(sessionManager).add(anySession(), eq(false), eq(null), eq(null), eq(null)) verify(engineSession).loadUrl("http://mozilla.org", flags = LoadUrlFlags.external()) verify(intent).putExtra(eq(EXTRA_SESSION_ID), any<String>()) Loading components/feature/search/src/test/java/mozilla/components/feature/search/SearchUseCasesTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -107,7 +107,7 @@ class SearchUseCasesTest { useCases.newPrivateTabSearch.invoke(searchTerms) val captor = argumentCaptor<Session>() verify(sessionManager).add(captor.capture(), eq(true), eq(null), eq(null)) verify(sessionManager).add(captor.capture(), eq(true), eq(null), eq(null), eq(null)) assertTrue(captor.value.private) verify(engineSession).loadUrl(searchUrl) } Loading Loading
components/browser/session/src/main/java/mozilla/components/browser/session/LegacySessionManager.kt +2 −1 Original line number Diff line number Diff line Loading @@ -137,9 +137,10 @@ class LegacySessionManager( session: Session, selected: Boolean = false, engineSession: EngineSession? = null, engineSessionState: EngineSessionState? = null, parent: Session? = null ) = synchronized(values) { addInternal(session, selected, engineSession, parent = parent, viaRestore = false) addInternal(session, selected, engineSession, engineSessionState, parent = parent, viaRestore = false) } @Suppress("LongParameterList", "ComplexMethod") Loading
components/browser/session/src/main/java/mozilla/components/browser/session/SessionManager.kt +13 −1 Original line number Diff line number Diff line Loading @@ -147,10 +147,12 @@ class SessionManager( session: Session, selected: Boolean = false, engineSession: EngineSession? = null, engineSessionState: EngineSessionState? = null, parent: Session? = null ) { // Add store to Session so that it can dispatch actions whenever it changes. session.store = store if (parent != null) { require(all.contains(parent)) { "The parent does not exist" } session.parentId = parent.id Loading @@ -171,7 +173,17 @@ class SessionManager( ) } delegate.add(session, selected, engineSession, parent) if (engineSessionState != null && engineSession == null) { // If the caller passed us an engine session state then also notify the store. We only // do this if there is no engine session, because this mirrors the behavior in // LegacySessionManager, which will either link an engine session or keep its state. store?.syncDispatch(UpdateEngineSessionStateAction( session.id, engineSessionState )) } delegate.add(session, selected, engineSession, engineSessionState, parent) } /** Loading
components/browser/session/src/test/java/mozilla/components/browser/session/SessionManagerMigrationTest.kt +52 −0 Original line number Diff line number Diff line Loading @@ -1281,6 +1281,58 @@ class SessionManagerMigrationTest { verify(engineSession3, never()).close() verify(engineSession4, never()).close() } @Test fun `Adding session with engine session state`() { val store = BrowserStore() val manager = SessionManager(engine = mock(), store = store) val state: EngineSessionState = mock() val session = Session("https://www.mozilla.org") manager.add(session, engineSessionState = state) assertEquals(state, session.engineSessionHolder.engineSessionState) assertNull(session.engineSessionHolder.engineSession) assertEquals(state, store.state.tabs[0].engineState.engineSessionState) assertNull(store.state.tabs[0].engineState.engineSession) } @Test fun `Adding session with engine session and engine session state`() { val store = BrowserStore() val manager = SessionManager(engine = mock(), store = store) val state: EngineSessionState = mock() val engineSession: EngineSession = mock() val session = Session("https://www.mozilla.org") manager.add(session, engineSession = engineSession, engineSessionState = state) assertNull(session.engineSessionHolder.engineSessionState) assertEquals(engineSession, session.engineSessionHolder.engineSession) assertNull(store.state.tabs[0].engineState.engineSessionState) assertEquals(engineSession, session.engineSessionHolder.engineSession) } @Test fun `Adding session with engine session`() { val store = BrowserStore() val manager = SessionManager(engine = mock(), store = store) val engineSession: EngineSession = mock() val session = Session("https://www.mozilla.org") manager.add(session, engineSession = engineSession) assertNull(session.engineSessionHolder.engineSessionState) assertEquals(engineSession, session.engineSessionHolder.engineSession) assertNull(store.state.tabs[0].engineState.engineSessionState) assertEquals(engineSession, session.engineSessionHolder.engineSession) } } private fun createMockEngineSessionWithState(): EngineSession { Loading
components/feature/customtabs/src/test/java/mozilla/components/feature/customtabs/CustomTabIntentProcessorTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ class CustomTabIntentProcessorTest { whenever(intent.putExtra(any<String>(), any<String>())).thenReturn(intent) handler.process(intent) verify(sessionManager).add(anySession(), eq(false), eq(null), eq(null)) verify(sessionManager).add(anySession(), eq(false), eq(null), eq(null), eq(null)) verify(engineSession).loadUrl("http://mozilla.org", flags = LoadUrlFlags.external()) verify(intent).putExtra(eq(EXTRA_SESSION_ID), any<String>()) Loading Loading @@ -92,7 +92,7 @@ class CustomTabIntentProcessorTest { whenever(intent.putExtra(any<String>(), any<String>())).thenReturn(intent) handler.process(intent) verify(sessionManager).add(anySession(), eq(false), eq(null), eq(null)) verify(sessionManager).add(anySession(), eq(false), eq(null), eq(null), eq(null)) verify(engineSession).loadUrl("http://mozilla.org", flags = LoadUrlFlags.external()) verify(intent).putExtra(eq(EXTRA_SESSION_ID), any<String>()) Loading
components/feature/search/src/test/java/mozilla/components/feature/search/SearchUseCasesTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -107,7 +107,7 @@ class SearchUseCasesTest { useCases.newPrivateTabSearch.invoke(searchTerms) val captor = argumentCaptor<Session>() verify(sessionManager).add(captor.capture(), eq(true), eq(null), eq(null)) verify(sessionManager).add(captor.capture(), eq(true), eq(null), eq(null), eq(null)) assertTrue(captor.value.private) verify(engineSession).loadUrl(searchUrl) } Loading