python-adblock

Updated Brave adblock library for Python
Log | Files | Refs | README

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="