1
0
Fork 0
fenix/app/src/test/java/org/mozilla/fenix/trackingprotection/TrackerBucketsTest.kt

74 lines
2.6 KiB
Kotlin

/* 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
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.fenix.trackingprotection
import mozilla.components.concept.engine.EngineSession.TrackingProtectionPolicy.TrackingCategory.FINGERPRINTING
import mozilla.components.concept.engine.EngineSession.TrackingProtectionPolicy.TrackingCategory.MOZILLA_SOCIAL
import mozilla.components.concept.engine.content.blocking.TrackerLog
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
import org.mozilla.fenix.trackingprotection.TrackingProtectionCategory.CRYPTOMINERS
import org.mozilla.fenix.trackingprotection.TrackingProtectionCategory.FINGERPRINTERS
class TrackerBucketsTest {
@Test
fun `initializes with empty map`() {
assertTrue(TrackerBuckets().buckets.blockedBucketMap.isEmpty())
assertTrue(TrackerBuckets().buckets.loadedBucketMap.isEmpty())
}
@Test
fun `getter accesses corresponding bucket`() {
val buckets = TrackerBuckets()
buckets.updateIfNeeded(
listOf(
TrackerLog(
"http://facebook.com",
listOf(MOZILLA_SOCIAL)
),
TrackerLog("https://google.com", listOf(), listOf(FINGERPRINTING)),
TrackerLog("https://mozilla.com")
)
)
assertEquals(listOf("google.com"), buckets.buckets.blockedBucketMap[FINGERPRINTERS])
assertEquals(
listOf("facebook.com"),
buckets.buckets.loadedBucketMap[TrackingProtectionCategory.SOCIAL_MEDIA_TRACKERS]
)
assertTrue(buckets.buckets.blockedBucketMap[CRYPTOMINERS].isNullOrEmpty())
assertTrue(buckets.buckets.loadedBucketMap[CRYPTOMINERS].isNullOrEmpty())
}
@Test
fun `sorts trackers into bucket`() {
val buckets = TrackerBuckets()
buckets.updateIfNeeded(
listOf(
TrackerLog(
"http://facebook.com",
listOf(MOZILLA_SOCIAL)
),
TrackerLog("https://google.com", listOf(), listOf(FINGERPRINTING)),
TrackerLog("https://mozilla.com")
)
)
assertEquals(
mapOf(
TrackingProtectionCategory.SOCIAL_MEDIA_TRACKERS to listOf("facebook.com")
), buckets.buckets.loadedBucketMap
)
assertEquals(
mapOf(
FINGERPRINTERS to listOf("google.com")
), buckets.buckets.blockedBucketMap
)
}
}