Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
package mozilla.components.browser.state.action
import mozilla.components.browser.state.reducer.BrowserStateReducer
import mozilla.components.browser.state.selector.findTab
import mozilla.components.browser.state.state.BrowserState
import mozilla.components.browser.state.state.TabSessionState
import mozilla.components.browser.state.state.createTab
import mozilla.components.support.test.mock
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
class TrackingProtectionActionTest {
private lateinit var tab: TabSessionState
private lateinit var state: BrowserState
@Before
}
private fun tabState(): TabSessionState = state.findTab(tab.id)!!
private fun trackingProtectionState() = tabState().trackingProtection
@Test
fun `ToggleAction - Updates enabled flag of TrackingProtectionState`() {
assertFalse(trackingProtectionState().enabled)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.ToggleAction(tabId = tab.id, enabled = true),
)
assertTrue(trackingProtectionState().enabled)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.ToggleAction(tabId = tab.id, enabled = true),
)
assertTrue(trackingProtectionState().enabled)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.ToggleAction(tabId = tab.id, enabled = false),
)
assertFalse(trackingProtectionState().enabled)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.ToggleAction(tabId = tab.id, enabled = true),
)
assertTrue(trackingProtectionState().enabled)
}
@Test
fun `ToggleExclusionListAction - Updates enabled flag of TrackingProtectionState`() {
assertFalse(trackingProtectionState().ignoredOnTrackingProtection)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.ToggleExclusionListAction(
tabId = tab.id,
excluded = true,
),
)
assertTrue(trackingProtectionState().ignoredOnTrackingProtection)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.ToggleExclusionListAction(
tabId = tab.id,
excluded = true,
),
)
assertTrue(trackingProtectionState().ignoredOnTrackingProtection)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.ToggleExclusionListAction(
tabId = tab.id,
excluded = false,
),
)
assertFalse(trackingProtectionState().ignoredOnTrackingProtection)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.ToggleExclusionListAction(
tabId = tab.id,
excluded = true,
),
)
assertTrue(trackingProtectionState().ignoredOnTrackingProtection)
}
@Test
fun `TrackerBlockedAction - Adds tackers to TrackingProtectionState`() {
assertTrue(trackingProtectionState().blockedTrackers.isEmpty())
assertTrue(trackingProtectionState().loadedTrackers.isEmpty())
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerBlockedAction(tabId = tab.id, tracker = mock()),
)
assertEquals(1, trackingProtectionState().blockedTrackers.size)
assertEquals(0, trackingProtectionState().loadedTrackers.size)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerBlockedAction(tabId = tab.id, tracker = mock()),
)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerBlockedAction(tabId = tab.id, tracker = mock()),
)
assertEquals(3, trackingProtectionState().blockedTrackers.size)
assertEquals(0, trackingProtectionState().loadedTrackers.size)
}
@Test
fun `TrackerLoadedAction - Adds tackers to TrackingProtectionState`() {
assertTrue(trackingProtectionState().blockedTrackers.isEmpty())
assertTrue(trackingProtectionState().loadedTrackers.isEmpty())
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerLoadedAction(tabId = tab.id, tracker = mock()),
)
assertEquals(0, trackingProtectionState().blockedTrackers.size)
assertEquals(1, trackingProtectionState().loadedTrackers.size)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerLoadedAction(tabId = tab.id, tracker = mock()),
)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerLoadedAction(tabId = tab.id, tracker = mock()),
)
assertEquals(0, trackingProtectionState().blockedTrackers.size)
assertEquals(3, trackingProtectionState().loadedTrackers.size)
}
@Test
fun `ClearTrackers - Removes trackers from TrackingProtectionState`() {
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerBlockedAction(tabId = tab.id, tracker = mock()),
)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerBlockedAction(tabId = tab.id, tracker = mock()),
)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerLoadedAction(tabId = tab.id, tracker = mock()),
)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerLoadedAction(tabId = tab.id, tracker = mock()),
)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.TrackerLoadedAction(tabId = tab.id, tracker = mock()),
)
assertEquals(2, trackingProtectionState().blockedTrackers.size)
assertEquals(3, trackingProtectionState().loadedTrackers.size)
state =
BrowserStateReducer.reduce(
state,
TrackingProtectionAction.ClearTrackersAction(tab.id),
)
assertEquals(0, trackingProtectionState().blockedTrackers.size)
assertEquals(0, trackingProtectionState().loadedTrackers.size)
}
}