OLD | NEW |
1 #include "BaseJsTest.h" | 1 #include "BaseJsTest.h" |
2 | 2 |
3 namespace | 3 namespace |
4 { | 4 { |
5 typedef std::tr1::shared_ptr<AdblockPlus::FilterEngine> FilterEnginePtr; | 5 typedef std::tr1::shared_ptr<AdblockPlus::FilterEngine> FilterEnginePtr; |
6 | 6 |
7 class FilterEngineTest : public BaseJsTest | 7 class FilterEngineTest : public BaseJsTest |
8 { | 8 { |
9 protected: | 9 protected: |
10 FilterEnginePtr filterEngine; | 10 FilterEnginePtr filterEngine; |
11 | 11 |
12 void SetUp() | 12 void SetUp() |
13 { | 13 { |
14 BaseJsTest::SetUp(); | 14 BaseJsTest::SetUp(); |
15 // TODO: Don't use the default ErrorCallback/WebRequest | 15 // TODO: Don't use the default ErrorCallback/WebRequest |
16 jsEngine->SetErrorCallback(AdblockPlus::ErrorCallbackPtr(new AdblockPlus::
DefaultErrorCallback)); | 16 jsEngine->SetErrorCallback(AdblockPlus::ErrorCallbackPtr(new AdblockPlus::
DefaultErrorCallback)); |
17 jsEngine->SetWebRequest(AdblockPlus::WebRequestPtr(new AdblockPlus::Defaul
tWebRequest)); | 17 jsEngine->SetWebRequest(AdblockPlus::WebRequestPtr(new AdblockPlus::Defaul
tWebRequest)); |
18 filterEngine = FilterEnginePtr(new AdblockPlus::FilterEngine(jsEngine)); | 18 filterEngine = FilterEnginePtr(new AdblockPlus::FilterEngine(jsEngine)); |
19 } | 19 } |
20 }; | 20 }; |
21 } | 21 } |
22 | 22 |
23 TEST_F(FilterEngineTest, FilterCreation) | 23 TEST_F(FilterEngineTest, FilterCreation) |
24 { | 24 { |
25 AdblockPlus::FilterPtr filter1 = filterEngine->GetFilter("foo"); | 25 AdblockPlus::FilterPtr filter1 = filterEngine->GetFilter("foo"); |
26 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, filter1->GetProperty("type", -1)
); | 26 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, filter1->GetType()); |
27 AdblockPlus::FilterPtr filter2 = filterEngine->GetFilter("@@foo"); | 27 AdblockPlus::FilterPtr filter2 = filterEngine->GetFilter("@@foo"); |
28 ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, filter2->GetProperty("type", -1
)); | 28 ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, filter2->GetType()); |
29 AdblockPlus::FilterPtr filter3 = filterEngine->GetFilter("example.com##foo"); | 29 AdblockPlus::FilterPtr filter3 = filterEngine->GetFilter("example.com##foo"); |
30 ASSERT_EQ(AdblockPlus::Filter::TYPE_ELEMHIDE, filter3->GetProperty("type", -1)
); | 30 ASSERT_EQ(AdblockPlus::Filter::TYPE_ELEMHIDE, filter3->GetType()); |
31 AdblockPlus::FilterPtr filter4 = filterEngine->GetFilter("example.com#@#foo"); | 31 AdblockPlus::FilterPtr filter4 = filterEngine->GetFilter("example.com#@#foo"); |
32 ASSERT_EQ(AdblockPlus::Filter::TYPE_ELEMHIDE_EXCEPTION, filter4->GetProperty("
type", -1)); | 32 ASSERT_EQ(AdblockPlus::Filter::TYPE_ELEMHIDE_EXCEPTION, filter4->GetType()); |
33 AdblockPlus::FilterPtr filter5 = filterEngine->GetFilter(" foo "); | 33 AdblockPlus::FilterPtr filter5 = filterEngine->GetFilter(" foo "); |
34 ASSERT_EQ(*filter1, *filter5); | 34 ASSERT_EQ(*filter1, *filter5); |
35 } | 35 } |
36 | 36 |
37 TEST_F(FilterEngineTest, FilterProperties) | 37 TEST_F(FilterEngineTest, FilterProperties) |
38 { | 38 { |
39 AdblockPlus::FilterPtr filter = filterEngine->GetFilter("foo"); | 39 AdblockPlus::FilterPtr filter = filterEngine->GetFilter("foo"); |
40 | 40 |
41 ASSERT_EQ("x", filter->GetProperty("stringFoo", "x")); | 41 ASSERT_TRUE(filter->GetProperty("stringFoo")->IsUndefined()); |
42 ASSERT_EQ(42, filter->GetProperty("intFoo", 42)); | 42 ASSERT_TRUE(filter->GetProperty("intFoo")->IsUndefined()); |
43 ASSERT_FALSE(filter->GetProperty("boolFoo", false)); | 43 ASSERT_TRUE(filter->GetProperty("boolFoo")->IsUndefined()); |
44 | 44 |
45 filter->SetProperty("stringFoo", "y"); | 45 filter->SetProperty("stringFoo", "y"); |
46 filter->SetProperty("intFoo", 24); | 46 filter->SetProperty("intFoo", 24); |
47 filter->SetProperty("boolFoo", true); | 47 filter->SetProperty("boolFoo", true); |
48 ASSERT_EQ("y", filter->GetProperty("stringFoo", "x")); | 48 ASSERT_EQ("y", filter->GetProperty("stringFoo")->AsString()); |
49 ASSERT_EQ(24, filter->GetProperty("intFoo", 42)); | 49 ASSERT_EQ(24, filter->GetProperty("intFoo")->AsInt()); |
50 ASSERT_TRUE(filter->GetProperty("boolFoo", false)); | 50 ASSERT_TRUE(filter->GetProperty("boolFoo")->AsBool()); |
51 } | 51 } |
52 | 52 |
53 TEST_F(FilterEngineTest, AddRemoveFilters) | 53 TEST_F(FilterEngineTest, AddRemoveFilters) |
54 { | 54 { |
55 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); | 55 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
56 AdblockPlus::FilterPtr filter = filterEngine->GetFilter("foo"); | 56 AdblockPlus::FilterPtr filter = filterEngine->GetFilter("foo"); |
57 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); | 57 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
58 filter->AddToList(); | 58 filter->AddToList(); |
59 ASSERT_EQ(1u, filterEngine->GetListedFilters().size()); | 59 ASSERT_EQ(1u, filterEngine->GetListedFilters().size()); |
60 ASSERT_EQ(*filter, *filterEngine->GetListedFilters()[0]); | 60 ASSERT_EQ(*filter, *filterEngine->GetListedFilters()[0]); |
61 filter->AddToList(); | 61 filter->AddToList(); |
62 ASSERT_EQ(1u, filterEngine->GetListedFilters().size()); | 62 ASSERT_EQ(1u, filterEngine->GetListedFilters().size()); |
63 ASSERT_EQ(*filter, *filterEngine->GetListedFilters()[0]); | 63 ASSERT_EQ(*filter, *filterEngine->GetListedFilters()[0]); |
64 filter->RemoveFromList(); | 64 filter->RemoveFromList(); |
65 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); | 65 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
66 filter->RemoveFromList(); | 66 filter->RemoveFromList(); |
67 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); | 67 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
68 } | 68 } |
69 | 69 |
70 TEST_F(FilterEngineTest, SubscriptionProperties) | 70 TEST_F(FilterEngineTest, SubscriptionProperties) |
71 { | 71 { |
72 AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo
"); | 72 AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo
"); |
73 | 73 |
74 ASSERT_EQ("x", subscription->GetProperty("stringFoo", "x")); | 74 ASSERT_TRUE(subscription->GetProperty("stringFoo")->IsUndefined()); |
75 ASSERT_EQ(42, subscription->GetProperty("intFoo", 42)); | 75 ASSERT_TRUE(subscription->GetProperty("intFoo")->IsUndefined()); |
76 ASSERT_FALSE(subscription->GetProperty("boolFoo", false)); | 76 ASSERT_TRUE(subscription->GetProperty("boolFoo")->IsUndefined()); |
77 | 77 |
78 subscription->SetProperty("stringFoo", "y"); | 78 subscription->SetProperty("stringFoo", "y"); |
79 subscription->SetProperty("intFoo", 24); | 79 subscription->SetProperty("intFoo", 24); |
80 subscription->SetProperty("boolFoo", true); | 80 subscription->SetProperty("boolFoo", true); |
81 ASSERT_EQ("y", subscription->GetProperty("stringFoo", "x")); | 81 ASSERT_EQ("y", subscription->GetProperty("stringFoo")->AsString()); |
82 ASSERT_EQ(24, subscription->GetProperty("intFoo", 42)); | 82 ASSERT_EQ(24, subscription->GetProperty("intFoo")->AsInt()); |
83 ASSERT_TRUE(subscription->GetProperty("boolFoo", false)); | 83 ASSERT_TRUE(subscription->GetProperty("boolFoo")->AsBool()); |
84 } | 84 } |
85 | 85 |
86 TEST_F(FilterEngineTest, AddRemoveSubscriptions) | 86 TEST_F(FilterEngineTest, AddRemoveSubscriptions) |
87 { | 87 { |
88 ASSERT_EQ(0u, filterEngine->GetListedSubscriptions().size()); | 88 ASSERT_EQ(0u, filterEngine->GetListedSubscriptions().size()); |
89 AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo
"); | 89 AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo
"); |
90 ASSERT_EQ(0u, filterEngine->GetListedSubscriptions().size()); | 90 ASSERT_EQ(0u, filterEngine->GetListedSubscriptions().size()); |
91 subscription->AddToList(); | 91 subscription->AddToList(); |
92 ASSERT_EQ(1u, filterEngine->GetListedSubscriptions().size()); | 92 ASSERT_EQ(1u, filterEngine->GetListedSubscriptions().size()); |
93 ASSERT_EQ(*subscription, *filterEngine->GetListedSubscriptions()[0]); | 93 ASSERT_EQ(*subscription, *filterEngine->GetListedSubscriptions()[0]); |
(...skipping 18 matching lines...) Expand all Loading... |
112 filterEngine->GetFilter("adbanner.gif")->AddToList(); | 112 filterEngine->GetFilter("adbanner.gif")->AddToList(); |
113 filterEngine->GetFilter("@@notbanner.gif")->AddToList(); | 113 filterEngine->GetFilter("@@notbanner.gif")->AddToList(); |
114 filterEngine->GetFilter("tpbanner.gif$third-party")->AddToList(); | 114 filterEngine->GetFilter("tpbanner.gif$third-party")->AddToList(); |
115 filterEngine->GetFilter("fpbanner.gif$~third-party")->AddToList(); | 115 filterEngine->GetFilter("fpbanner.gif$~third-party")->AddToList(); |
116 | 116 |
117 AdblockPlus::FilterPtr match1 = filterEngine->Matches("http://example.org/foob
ar.gif", "IMAGE", ""); | 117 AdblockPlus::FilterPtr match1 = filterEngine->Matches("http://example.org/foob
ar.gif", "IMAGE", ""); |
118 ASSERT_FALSE(match1); | 118 ASSERT_FALSE(match1); |
119 | 119 |
120 AdblockPlus::FilterPtr match2 = filterEngine->Matches("http://example.org/adba
nner.gif", "IMAGE", ""); | 120 AdblockPlus::FilterPtr match2 = filterEngine->Matches("http://example.org/adba
nner.gif", "IMAGE", ""); |
121 ASSERT_TRUE(match2); | 121 ASSERT_TRUE(match2); |
122 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match2->GetProperty("type", -1))
; | 122 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match2->GetType()); |
123 | 123 |
124 AdblockPlus::FilterPtr match3 = filterEngine->Matches("http://example.org/notb
anner.gif", "IMAGE", ""); | 124 AdblockPlus::FilterPtr match3 = filterEngine->Matches("http://example.org/notb
anner.gif", "IMAGE", ""); |
125 ASSERT_TRUE(match3); | 125 ASSERT_TRUE(match3); |
126 ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match3->GetProperty("type", -1)
); | 126 ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match3->GetType()); |
127 | 127 |
128 AdblockPlus::FilterPtr match4 = filterEngine->Matches("http://example.org/notb
anner.gif", "IMAGE", ""); | 128 AdblockPlus::FilterPtr match4 = filterEngine->Matches("http://example.org/notb
anner.gif", "IMAGE", ""); |
129 ASSERT_TRUE(match4); | 129 ASSERT_TRUE(match4); |
130 ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match4->GetProperty("type", -1)
); | 130 ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match4->GetType()); |
131 | 131 |
132 AdblockPlus::FilterPtr match5 = filterEngine->Matches("http://example.org/tpba
nner.gif", "IMAGE", "http://example.org/"); | 132 AdblockPlus::FilterPtr match5 = filterEngine->Matches("http://example.org/tpba
nner.gif", "IMAGE", "http://example.org/"); |
133 ASSERT_FALSE(match5); | 133 ASSERT_FALSE(match5); |
134 | 134 |
135 AdblockPlus::FilterPtr match6 = filterEngine->Matches("http://example.org/fpba
nner.gif", "IMAGE", "http://example.org/"); | 135 AdblockPlus::FilterPtr match6 = filterEngine->Matches("http://example.org/fpba
nner.gif", "IMAGE", "http://example.org/"); |
136 ASSERT_TRUE(match6); | 136 ASSERT_TRUE(match6); |
137 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match6->GetProperty("type", -1))
; | 137 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match6->GetType()); |
138 | 138 |
139 AdblockPlus::FilterPtr match7 = filterEngine->Matches("http://example.org/tpba
nner.gif", "IMAGE", "http://example.com/"); | 139 AdblockPlus::FilterPtr match7 = filterEngine->Matches("http://example.org/tpba
nner.gif", "IMAGE", "http://example.com/"); |
140 ASSERT_TRUE(match7); | 140 ASSERT_TRUE(match7); |
141 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match6->GetProperty("type", -1))
; | 141 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match6->GetType()); |
142 | 142 |
143 AdblockPlus::FilterPtr match8 = filterEngine->Matches("http://example.org/fpba
nner.gif", "IMAGE", "http://example.com/"); | 143 AdblockPlus::FilterPtr match8 = filterEngine->Matches("http://example.org/fpba
nner.gif", "IMAGE", "http://example.com/"); |
144 ASSERT_FALSE(match8); | 144 ASSERT_FALSE(match8); |
145 } | 145 } |
OLD | NEW |