OLD | NEW |
1 #include <AdblockPlus.h> | 1 #include <AdblockPlus.h> |
2 #include <gtest/gtest.h> | 2 #include <gtest/gtest.h> |
3 | 3 |
4 TEST(FilterEngineStubsTest, AddRemove) | 4 TEST(FilterEngineStubsTest, FilterCreation) |
5 { | 5 { |
6 AdblockPlus::JsEngine jsEngine(0, 0); | 6 AdblockPlus::JsEngine jsEngine(0, 0); |
7 AdblockPlus::FilterEngine filterEngine(jsEngine); | 7 AdblockPlus::FilterEngine filterEngine(jsEngine); |
8 ASSERT_EQ(filterEngine.GetSubscriptions().size(), 0u); | 8 |
9 AdblockPlus::Subscription subscription("foo", "bar"); | 9 AdblockPlus::Filter& filter1 = filterEngine.GetFilter("foo"); |
10 filterEngine.AddSubscription(subscription); | 10 ASSERT_EQ(filter1.GetProperty("type", ""), "blocking"); |
11 ASSERT_EQ(filterEngine.GetSubscriptions().size(), 1u); | 11 AdblockPlus::Filter& filter2 = filterEngine.GetFilter("@@foo"); |
12 filterEngine.RemoveSubscription(subscription); | 12 ASSERT_EQ(filter2.GetProperty("type", ""), "exception"); |
13 ASSERT_EQ(filterEngine.GetSubscriptions().size(), 0u); | 13 AdblockPlus::Filter& filter3 = filterEngine.GetFilter("example.com##foo"); |
| 14 ASSERT_EQ(filter3.GetProperty("type", ""), "elemhide"); |
| 15 AdblockPlus::Filter& filter4 = filterEngine.GetFilter("example.com#@#foo"); |
| 16 ASSERT_EQ(filter4.GetProperty("type", ""), "elemhideexception"); |
| 17 AdblockPlus::Filter& filter5 = filterEngine.GetFilter(" foo "); |
| 18 ASSERT_EQ(&filter5, &filter1); |
| 19 } |
| 20 |
| 21 TEST(FilterEngineStubsTest, FilterProperties) |
| 22 { |
| 23 AdblockPlus::JsEngine jsEngine(0, 0); |
| 24 AdblockPlus::FilterEngine filterEngine(jsEngine); |
| 25 AdblockPlus::Filter& filter = filterEngine.GetFilter("foo"); |
| 26 |
| 27 ASSERT_EQ(filter.GetProperty("stringFoo", "x"), "x"); |
| 28 ASSERT_EQ(filter.GetProperty("intFoo", 42), 42); |
| 29 ASSERT_EQ(filter.GetProperty("boolFoo", false), false); |
| 30 |
| 31 filter.SetProperty("stringFoo", "y"); |
| 32 filter.SetProperty("intFoo", 24); |
| 33 filter.SetProperty("boolFoo", true); |
| 34 ASSERT_EQ(filter.GetProperty("stringFoo", "x"), "y"); |
| 35 ASSERT_EQ(filter.GetProperty("intFoo", 42), 24); |
| 36 ASSERT_EQ(filter.GetProperty("boolFoo", false), true); |
| 37 } |
| 38 |
| 39 TEST(FilterEngineStubsTest, AddRemoveFilters) |
| 40 { |
| 41 AdblockPlus::JsEngine jsEngine(0, 0); |
| 42 AdblockPlus::FilterEngine filterEngine(jsEngine); |
| 43 ASSERT_EQ(filterEngine.GetListedFilters().size(), 0u); |
| 44 AdblockPlus::Filter& filter = filterEngine.GetFilter("foo"); |
| 45 ASSERT_EQ(filterEngine.GetListedFilters().size(), 0u); |
| 46 filter.AddToList(); |
| 47 ASSERT_EQ(filterEngine.GetListedFilters().size(), 1u); |
| 48 ASSERT_EQ(filterEngine.GetListedFilters()[0], &filter); |
| 49 filter.AddToList(); |
| 50 ASSERT_EQ(filterEngine.GetListedFilters().size(), 1u); |
| 51 ASSERT_EQ(filterEngine.GetListedFilters()[0], &filter); |
| 52 filter.RemoveFromList(); |
| 53 ASSERT_EQ(filterEngine.GetListedFilters().size(), 0u); |
| 54 filter.RemoveFromList(); |
| 55 ASSERT_EQ(filterEngine.GetListedFilters().size(), 0u); |
| 56 } |
| 57 |
| 58 TEST(FilterEngineStubsTest, SubscriptionProperties) |
| 59 { |
| 60 AdblockPlus::JsEngine jsEngine(0, 0); |
| 61 AdblockPlus::FilterEngine filterEngine(jsEngine); |
| 62 AdblockPlus::Subscription& subscription = filterEngine.GetSubscription("foo"); |
| 63 |
| 64 ASSERT_EQ(subscription.GetProperty("stringFoo", "x"), "x"); |
| 65 ASSERT_EQ(subscription.GetProperty("intFoo", 42), 42); |
| 66 ASSERT_EQ(subscription.GetProperty("boolFoo", false), false); |
| 67 |
| 68 subscription.SetProperty("stringFoo", "y"); |
| 69 subscription.SetProperty("intFoo", 24); |
| 70 subscription.SetProperty("boolFoo", true); |
| 71 ASSERT_EQ(subscription.GetProperty("stringFoo", "x"), "y"); |
| 72 ASSERT_EQ(subscription.GetProperty("intFoo", 42), 24); |
| 73 ASSERT_EQ(subscription.GetProperty("boolFoo", false), true); |
| 74 } |
| 75 |
| 76 TEST(FilterEngineStubsTest, AddRemoveSubscriptions) |
| 77 { |
| 78 AdblockPlus::JsEngine jsEngine(0, 0); |
| 79 AdblockPlus::FilterEngine filterEngine(jsEngine); |
| 80 ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 0u); |
| 81 AdblockPlus::Subscription& subscription = filterEngine.GetSubscription("foo"); |
| 82 ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 0u); |
| 83 subscription.AddToList(); |
| 84 ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 1u); |
| 85 ASSERT_EQ(filterEngine.GetListedSubscriptions()[0], &subscription); |
| 86 subscription.AddToList(); |
| 87 ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 1u); |
| 88 ASSERT_EQ(filterEngine.GetListedSubscriptions()[0], &subscription); |
| 89 subscription.RemoveFromList(); |
| 90 ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 0u); |
| 91 subscription.RemoveFromList(); |
| 92 ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 0u); |
14 } | 93 } |
15 | 94 |
16 TEST(FilterEngineStubsTest, Matches) | 95 TEST(FilterEngineStubsTest, Matches) |
17 { | 96 { |
18 AdblockPlus::JsEngine jsEngine(0, 0); | 97 AdblockPlus::JsEngine jsEngine(0, 0); |
19 AdblockPlus::FilterEngine filterEngine(jsEngine); | 98 AdblockPlus::FilterEngine filterEngine(jsEngine); |
20 filterEngine.AddSubscription(AdblockPlus::Subscription("foo", "bar")); | 99 AdblockPlus::Subscription& subscription = filterEngine.GetSubscription("foo"); |
21 ASSERT_FALSE(filterEngine.Matches("http://example.org", "")); | 100 subscription.AddToList(); |
22 ASSERT_TRUE(filterEngine.Matches("http://example.org/adbanner.gif", "")); | 101 |
| 102 AdblockPlus::Filter* match1 = filterEngine.Matches("http://example.org", "", "
"); |
| 103 ASSERT_FALSE(match1); |
| 104 |
| 105 AdblockPlus::Filter* match2 = filterEngine.Matches("http://example.org/adbanne
r.gif", "", ""); |
| 106 ASSERT_TRUE(match2); |
| 107 ASSERT_EQ(match2->GetProperty("type", ""), "blocking"); |
| 108 |
| 109 AdblockPlus::Filter* match3 = filterEngine.Matches("http://example.org/notbann
er.gif", "", ""); |
| 110 ASSERT_TRUE(match3); |
| 111 ASSERT_EQ(match3->GetProperty("type", ""), "exception"); |
23 } | 112 } |
OLD | NEW |