Skip to content

Commit 2de1809

Browse files
committed
Fix the failing tests
1 parent 5817366 commit 2de1809

1 file changed

Lines changed: 29 additions & 16 deletions

File tree

browser-mode/browser-mode-impl/src/test/kotlin/com/duckduckgo/browsermode/impl/RealWebViewModeInitializerTest.kt

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,35 +17,48 @@
1717
package com.duckduckgo.browsermode.impl
1818

1919
import android.webkit.WebView
20+
import androidx.webkit.WebViewFeature
2021
import com.duckduckgo.browsermode.api.BrowserMode
21-
import com.duckduckgo.browsermode.api.FireModeAvailability
2222
import com.duckduckgo.browsermode.api.profileName
23+
import org.junit.After
2324
import org.junit.Assert.assertEquals
2425
import org.junit.Assert.assertSame
2526
import org.junit.Assert.assertTrue
27+
import org.junit.Before
2628
import org.junit.Test
29+
import org.mockito.MockedStatic
30+
import org.mockito.Mockito.mockStatic
2731
import org.mockito.kotlin.mock
2832

2933
class RealWebViewModeInitializerTest {
3034

3135
private val webView: WebView = mock()
32-
private val fireModeAvailability = FakeFireModeAvailability()
3336
private val webViewProfileBinder = FakeWebViewProfileBinder()
34-
private val testee = RealWebViewModeInitializer(
35-
fireModeAvailability = fireModeAvailability,
36-
webViewProfileBinder = webViewProfileBinder,
37-
)
37+
private val testee = RealWebViewModeInitializer(webViewProfileBinder)
38+
39+
private lateinit var webViewFeatureMock: MockedStatic<WebViewFeature>
40+
41+
@Before
42+
fun setUp() {
43+
webViewFeatureMock = mockStatic(WebViewFeature::class.java)
44+
setMultiProfileSupported(true)
45+
}
46+
47+
@After
48+
fun tearDown() {
49+
webViewFeatureMock.close()
50+
}
3851

3952
@Test
40-
fun `bind returns success when Fire mode is available and Fire profile binding succeeds`() {
53+
fun `bind returns success when MULTI_PROFILE is supported and Fire profile binding succeeds`() {
4154
val result = testee.bind(webView, BrowserMode.FIRE)
4255

4356
assertTrue(result.isSuccess)
4457
assertEquals(listOf(BoundProfile(webView, BrowserMode.FIRE.profileName)), webViewProfileBinder.boundProfiles)
4558
}
4659

4760
@Test
48-
fun `bind returns success when Fire mode is available and regular profile binding succeeds`() {
61+
fun `bind returns success when MULTI_PROFILE is supported and regular profile binding succeeds`() {
4962
val result = testee.bind(webView, BrowserMode.REGULAR)
5063

5164
assertTrue(result.isSuccess)
@@ -64,8 +77,8 @@ class RealWebViewModeInitializerTest {
6477
}
6578

6679
@Test
67-
fun `bind returns failure and skips profile binding when Fire mode is unavailable for Fire profile`() {
68-
fireModeAvailability.available = false
80+
fun `bind returns failure and skips profile binding when MULTI_PROFILE is unsupported for Fire profile`() {
81+
setMultiProfileSupported(false)
6982

7083
val result = testee.bind(webView, BrowserMode.FIRE)
7184

@@ -75,8 +88,8 @@ class RealWebViewModeInitializerTest {
7588
}
7689

7790
@Test
78-
fun `bind returns failure and skips profile binding when Fire mode is unavailable for regular profile`() {
79-
fireModeAvailability.available = false
91+
fun `bind returns failure and skips profile binding when MULTI_PROFILE is unsupported for regular profile`() {
92+
setMultiProfileSupported(false)
8093

8194
val result = testee.bind(webView, BrowserMode.REGULAR)
8295

@@ -85,10 +98,10 @@ class RealWebViewModeInitializerTest {
8598
assertTrue(webViewProfileBinder.boundProfiles.isEmpty())
8699
}
87100

88-
private class FakeFireModeAvailability : FireModeAvailability {
89-
var available = true
90-
91-
override fun isAvailable(): Boolean = available
101+
private fun setMultiProfileSupported(supported: Boolean) {
102+
webViewFeatureMock.`when`<Boolean> {
103+
WebViewFeature.isFeatureSupported(WebViewFeature.MULTI_PROFILE)
104+
}.thenReturn(supported)
92105
}
93106

94107
private class FakeWebViewProfileBinder : WebViewProfileBinder {

0 commit comments

Comments
 (0)