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