mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-17 15:26:23 +00:00
Add FLAG_SECURE to SearchDialogFragment
This commit is contained in:
parent
32ed9fd197
commit
1dfb2bd409
@ -86,6 +86,7 @@ import org.mozilla.fenix.ext.getRectWithScreenLocation
|
||||
import org.mozilla.fenix.ext.increaseTapArea
|
||||
import org.mozilla.fenix.ext.registerForActivityResult
|
||||
import org.mozilla.fenix.ext.requireComponents
|
||||
import org.mozilla.fenix.ext.secure
|
||||
import org.mozilla.fenix.ext.settings
|
||||
import org.mozilla.fenix.search.awesomebar.AwesomeBarView
|
||||
import org.mozilla.fenix.search.awesomebar.toSearchProviderState
|
||||
@ -169,6 +170,10 @@ class SearchDialogFragment : AppCompatDialogFragment(), UserInteractionHandler {
|
||||
override fun onBackPressed() {
|
||||
this@SearchDialogFragment.onBackPressed()
|
||||
}
|
||||
}.apply {
|
||||
if ((requireActivity() as HomeActivity).browsingModeManager.mode.isPrivate) {
|
||||
this.secure(requireActivity())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
package org.mozilla.fenix.search
|
||||
|
||||
import android.view.WindowManager.LayoutParams
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.NavBackStackEntry
|
||||
import androidx.navigation.NavController
|
||||
@ -14,20 +15,27 @@ import io.mockk.every
|
||||
import io.mockk.just
|
||||
import io.mockk.mockk
|
||||
import io.mockk.mockkStatic
|
||||
import io.mockk.spyk
|
||||
import io.mockk.unmockkStatic
|
||||
import io.mockk.verify
|
||||
import mozilla.components.browser.state.search.SearchEngine
|
||||
import mozilla.components.browser.state.state.SearchState
|
||||
import mozilla.components.browser.state.state.searchEngines
|
||||
import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine
|
||||
import mozilla.components.support.test.robolectric.testContext
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertNull
|
||||
import org.junit.Assert.assertSame
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.components.Components
|
||||
import org.mozilla.fenix.ext.requireComponents
|
||||
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
|
||||
|
||||
@RunWith(FenixRobolectricTestRunner::class)
|
||||
internal class SearchDialogFragmentTest {
|
||||
private val navController: NavController = mockk()
|
||||
private val fragment = SearchDialogFragment()
|
||||
@ -153,6 +161,44 @@ internal class SearchDialogFragmentTest {
|
||||
|
||||
verify { fragment.interactor wasNot Called }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `GIVEN app is in private mode WHEN search dialog is created THEN the dialog is secure`() {
|
||||
val activity: HomeActivity = mockk(relaxed = true)
|
||||
val fragment = spyk(SearchDialogFragment())
|
||||
val layoutParams = LayoutParams()
|
||||
layoutParams.flags = LayoutParams.FLAG_SECURE
|
||||
|
||||
every { activity.browsingModeManager.mode.isPrivate } returns true
|
||||
every { activity.window } returns mockk(relaxed = true) {
|
||||
every { attributes } returns LayoutParams().apply { flags = LayoutParams.FLAG_SECURE }
|
||||
}
|
||||
every { fragment.requireActivity() } returns activity
|
||||
every { fragment.requireContext() } returns testContext
|
||||
|
||||
val dialog = fragment.onCreateDialog(null)
|
||||
|
||||
assertEquals(LayoutParams.FLAG_SECURE, dialog.window?.attributes?.flags!! and LayoutParams.FLAG_SECURE)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `GIVEN app is in normal mode WHEN search dialog is created THEN the dialog is not secure`() {
|
||||
val activity: HomeActivity = mockk(relaxed = true)
|
||||
val fragment = spyk(SearchDialogFragment())
|
||||
val layoutParams = LayoutParams()
|
||||
layoutParams.flags = LayoutParams.FLAG_SECURE
|
||||
|
||||
every { activity.browsingModeManager.mode.isPrivate } returns false
|
||||
every { activity.window } returns mockk(relaxed = true) {
|
||||
every { attributes } returns LayoutParams().apply { flags = LayoutParams.FLAG_SECURE }
|
||||
}
|
||||
every { fragment.requireActivity() } returns activity
|
||||
every { fragment.requireContext() } returns testContext
|
||||
|
||||
val dialog = fragment.onCreateDialog(null)
|
||||
|
||||
assertEquals(0, dialog.window?.attributes?.flags!! and LayoutParams.FLAG_SECURE)
|
||||
}
|
||||
}
|
||||
|
||||
private val fragmentName = SearchDialogFragment::class.java.canonicalName?.substringAfterLast('.')!!
|
||||
|
Loading…
Reference in New Issue
Block a user