| Index: test/FilterEngineStubs.cpp |
| =================================================================== |
| --- a/test/FilterEngineStubs.cpp |
| +++ b/test/FilterEngineStubs.cpp |
| @@ -1,23 +1,112 @@ |
| #include <AdblockPlus.h> |
| #include <gtest/gtest.h> |
| -TEST(FilterEngineStubsTest, AddRemove) |
| +TEST(FilterEngineStubsTest, FilterCreation) |
| { |
| AdblockPlus::JsEngine jsEngine(0, 0); |
| AdblockPlus::FilterEngine filterEngine(jsEngine); |
| - ASSERT_EQ(filterEngine.GetSubscriptions().size(), 0u); |
| - AdblockPlus::Subscription subscription("foo", "bar"); |
| - filterEngine.AddSubscription(subscription); |
| - ASSERT_EQ(filterEngine.GetSubscriptions().size(), 1u); |
| - filterEngine.RemoveSubscription(subscription); |
| - ASSERT_EQ(filterEngine.GetSubscriptions().size(), 0u); |
| + |
| + AdblockPlus::Filter& filter1 = filterEngine.GetFilter("foo"); |
| + ASSERT_EQ(filter1.GetProperty("type", ""), "blocking"); |
| + AdblockPlus::Filter& filter2 = filterEngine.GetFilter("@@foo"); |
| + ASSERT_EQ(filter2.GetProperty("type", ""), "exception"); |
| + AdblockPlus::Filter& filter3 = filterEngine.GetFilter("example.com##foo"); |
| + ASSERT_EQ(filter3.GetProperty("type", ""), "elemhide"); |
| + AdblockPlus::Filter& filter4 = filterEngine.GetFilter("example.com#@#foo"); |
| + ASSERT_EQ(filter4.GetProperty("type", ""), "elemhideexception"); |
| + AdblockPlus::Filter& filter5 = filterEngine.GetFilter(" foo "); |
| + ASSERT_EQ(&filter5, &filter1); |
| +} |
| + |
| +TEST(FilterEngineStubsTest, FilterProperties) |
| +{ |
| + AdblockPlus::JsEngine jsEngine(0, 0); |
| + AdblockPlus::FilterEngine filterEngine(jsEngine); |
| + AdblockPlus::Filter& filter = filterEngine.GetFilter("foo"); |
| + |
| + ASSERT_EQ(filter.GetProperty("stringFoo", "x"), "x"); |
| + ASSERT_EQ(filter.GetProperty("intFoo", 42), 42); |
| + ASSERT_EQ(filter.GetProperty("boolFoo", false), false); |
| + |
| + filter.SetProperty("stringFoo", "y"); |
| + filter.SetProperty("intFoo", 24); |
| + filter.SetProperty("boolFoo", true); |
| + ASSERT_EQ(filter.GetProperty("stringFoo", "x"), "y"); |
| + ASSERT_EQ(filter.GetProperty("intFoo", 42), 24); |
| + ASSERT_EQ(filter.GetProperty("boolFoo", false), true); |
| +} |
| + |
| +TEST(FilterEngineStubsTest, AddRemoveFilters) |
| +{ |
| + AdblockPlus::JsEngine jsEngine(0, 0); |
| + AdblockPlus::FilterEngine filterEngine(jsEngine); |
| + ASSERT_EQ(filterEngine.GetListedFilters().size(), 0u); |
| + AdblockPlus::Filter& filter = filterEngine.GetFilter("foo"); |
| + ASSERT_EQ(filterEngine.GetListedFilters().size(), 0u); |
| + filter.AddToList(); |
| + ASSERT_EQ(filterEngine.GetListedFilters().size(), 1u); |
| + ASSERT_EQ(filterEngine.GetListedFilters()[0], &filter); |
| + filter.AddToList(); |
| + ASSERT_EQ(filterEngine.GetListedFilters().size(), 1u); |
| + ASSERT_EQ(filterEngine.GetListedFilters()[0], &filter); |
| + filter.RemoveFromList(); |
| + ASSERT_EQ(filterEngine.GetListedFilters().size(), 0u); |
| + filter.RemoveFromList(); |
| + ASSERT_EQ(filterEngine.GetListedFilters().size(), 0u); |
| +} |
| + |
| +TEST(FilterEngineStubsTest, SubscriptionProperties) |
| +{ |
| + AdblockPlus::JsEngine jsEngine(0, 0); |
| + AdblockPlus::FilterEngine filterEngine(jsEngine); |
| + AdblockPlus::Subscription& subscription = filterEngine.GetSubscription("foo"); |
| + |
| + ASSERT_EQ(subscription.GetProperty("stringFoo", "x"), "x"); |
| + ASSERT_EQ(subscription.GetProperty("intFoo", 42), 42); |
| + ASSERT_EQ(subscription.GetProperty("boolFoo", false), false); |
| + |
| + subscription.SetProperty("stringFoo", "y"); |
| + subscription.SetProperty("intFoo", 24); |
| + subscription.SetProperty("boolFoo", true); |
| + ASSERT_EQ(subscription.GetProperty("stringFoo", "x"), "y"); |
| + ASSERT_EQ(subscription.GetProperty("intFoo", 42), 24); |
| + ASSERT_EQ(subscription.GetProperty("boolFoo", false), true); |
| +} |
| + |
| +TEST(FilterEngineStubsTest, AddRemoveSubscriptions) |
| +{ |
| + AdblockPlus::JsEngine jsEngine(0, 0); |
| + AdblockPlus::FilterEngine filterEngine(jsEngine); |
| + ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 0u); |
| + AdblockPlus::Subscription& subscription = filterEngine.GetSubscription("foo"); |
| + ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 0u); |
| + subscription.AddToList(); |
| + ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 1u); |
| + ASSERT_EQ(filterEngine.GetListedSubscriptions()[0], &subscription); |
| + subscription.AddToList(); |
| + ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 1u); |
| + ASSERT_EQ(filterEngine.GetListedSubscriptions()[0], &subscription); |
| + subscription.RemoveFromList(); |
| + ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 0u); |
| + subscription.RemoveFromList(); |
| + ASSERT_EQ(filterEngine.GetListedSubscriptions().size(), 0u); |
| } |
| TEST(FilterEngineStubsTest, Matches) |
| { |
| AdblockPlus::JsEngine jsEngine(0, 0); |
| AdblockPlus::FilterEngine filterEngine(jsEngine); |
| - filterEngine.AddSubscription(AdblockPlus::Subscription("foo", "bar")); |
| - ASSERT_FALSE(filterEngine.Matches("http://example.org", "")); |
| - ASSERT_TRUE(filterEngine.Matches("http://example.org/adbanner.gif", "")); |
| + AdblockPlus::Subscription& subscription = filterEngine.GetSubscription("foo"); |
| + subscription.AddToList(); |
| + |
| + AdblockPlus::Filter* match1 = filterEngine.Matches("http://example.org", "", ""); |
| + ASSERT_FALSE(match1); |
| + |
| + AdblockPlus::Filter* match2 = filterEngine.Matches("http://example.org/adbanner.gif", "", ""); |
| + ASSERT_TRUE(match2); |
| + ASSERT_EQ(match2->GetProperty("type", ""), "blocking"); |
| + |
| + AdblockPlus::Filter* match3 = filterEngine.Matches("http://example.org/notbanner.gif", "", ""); |
| + ASSERT_TRUE(match3); |
| + ASSERT_EQ(match3->GetProperty("type", ""), "exception"); |
| } |