1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
import adblock
def test_redirect_worked_as_excepted_with_include_redirect_urls():
# https://github.com/brave/adblock-rust/blob/b7f29af8c0a0d000201d8d769b6a0b25a9dd4e89/src/blocker.rs#L1242
filter_set = adblock.FilterSet()
filter_set.add_filter_list(
"||foo.com$important,redirect-url=http://xyz.com", include_redirect_urls=True
)
engine = adblock.Engine(filter_set=filter_set)
res = engine.check_network_urls("https://foo.com", "https://foo.com", "script")
assert res.matched is True
assert res.important is True
assert res.redirect_type == "url"
assert res.redirect == "http://xyz.com"
def test_redirect_url_is_not_recognized_without_include_redirect_urls():
# https://github.com/brave/adblock-rust/blob/b7f29af8c0a0d000201d8d769b6a0b25a9dd4e89/src/blocker.rs#L1267
filter_set2 = adblock.FilterSet()
filter_set2.add_filter_list(
"||foo.com$important,redirect-url=http://xyz.com", include_redirect_urls=False
)
engine2 = adblock.Engine(filter_set=filter_set2)
res = engine2.check_network_urls("https://foo.com", "https://foo.com", "script")
assert res.matched is False
assert res.redirect is None
assert res.redirect_type is None
def test_redirect_url_exception():
# https://github.com/brave/adblock-rust/blob/b7f29af8c0a0d000201d8d769b6a0b25a9dd4e89/src/blocker.rs#L1314
filter_set = adblock.FilterSet(debug=True)
filter_set.add_filter_list(
"""
||imdb-video.media-imdb.com$media,redirect-url=http://xyz.com
@@||imdb-video.media-imdb.com^$domain=imdb.com
""",
include_redirect_urls=True,
)
engine2 = adblock.Engine(filter_set=filter_set, optimize=False)
res = engine2.check_network_urls(
"https://imdb-video.media-imdb.com/kBOeI88k1o23eNAi",
"https://www.imdb.com/video/13",
"media",
)
assert res.matched is False
assert res.redirect == "http://xyz.com"
assert res.redirect_type == "url"
assert res.exception == "@@||imdb-video.media-imdb.com^$domain=imdb.com"
def test_redirect_with_custom_resource():
filters = adblock.FilterSet()
filters.add_filter_list("-advertisement-$redirect=test\n")
engine = adblock.Engine(filter_set=filters)
engine.add_resource(
name="test", content_type="application/javascript", content="YWxlcnQoMSk="
)
result = engine.check_network_urls(
url="http://example.com/-advertisement-icon.",
source_url="example.com",
request_type="image",
)
assert result.matched
assert not result.exception
assert not result.important
assert result.redirect == "data:application/javascript;base64,YWxlcnQoMSk="
|