74 lines
2.6 KiB
Kotlin
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
|
|
)
|
|
}
|
|
}
|