Index: test/FilterEngine.cpp |
=================================================================== |
--- a/test/FilterEngine.cpp |
+++ b/test/FilterEngine.cpp |
@@ -1,60 +1,42 @@ |
-#include <iostream> |
-#include <AdblockPlus.h> |
-#include <gtest/gtest.h> |
+#include "BaseJsTest.h" |
-class DummyFileSystem : public AdblockPlus::FileSystem |
+namespace |
{ |
- std::tr1::shared_ptr<std::istream> Read(const std::string& path) const |
+ typedef std::tr1::shared_ptr<AdblockPlus::FilterEngine> FilterEnginePtr; |
+ |
+ class FilterEngineTest : public BaseJsTest |
{ |
- throw std::runtime_error("Not implemented"); |
- } |
+ protected: |
+ FilterEnginePtr filterEngine; |
- void Write(const std::string& path, |
- std::tr1::shared_ptr<std::ostream> content) |
- { |
- throw std::runtime_error("Not implemented"); |
- } |
+ void SetUp() |
+ { |
+ BaseJsTest::SetUp(); |
+ // TODO: Don't use the default ErrorCallback/WebRequest |
+ jsEngine->SetErrorCallback(AdblockPlus::ErrorCallbackPtr(new AdblockPlus::DefaultErrorCallback)); |
+ jsEngine->SetWebRequest(AdblockPlus::WebRequestPtr(new AdblockPlus::DefaultWebRequest)); |
+ filterEngine = FilterEnginePtr(new AdblockPlus::FilterEngine(jsEngine)); |
+ } |
+ }; |
+} |
- void Move(const std::string& fromPath, const std::string& toPath) |
- { |
- throw std::runtime_error("Not implemented"); |
- } |
- |
- void Remove(const std::string& path) |
- { |
- throw std::runtime_error("Not implemented"); |
- } |
- |
- StatResult Stat(const std::string& path) const |
- { |
- throw std::runtime_error("Not implemented"); |
- } |
-}; |
- |
-TEST(FilterEngineTest, FilterCreation) |
+TEST_F(FilterEngineTest, FilterCreation) |
{ |
- AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); |
- jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(new DummyFileSystem())); |
- AdblockPlus::FilterEngine filterEngine(jsEngine); |
- |
- AdblockPlus::FilterPtr filter1 = filterEngine.GetFilter("foo"); |
+ AdblockPlus::FilterPtr filter1 = filterEngine->GetFilter("foo"); |
ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, filter1->GetProperty("type", -1)); |
- AdblockPlus::FilterPtr filter2 = filterEngine.GetFilter("@@foo"); |
+ AdblockPlus::FilterPtr filter2 = filterEngine->GetFilter("@@foo"); |
ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, filter2->GetProperty("type", -1)); |
- AdblockPlus::FilterPtr filter3 = filterEngine.GetFilter("example.com##foo"); |
+ AdblockPlus::FilterPtr filter3 = filterEngine->GetFilter("example.com##foo"); |
ASSERT_EQ(AdblockPlus::Filter::TYPE_ELEMHIDE, filter3->GetProperty("type", -1)); |
- AdblockPlus::FilterPtr filter4 = filterEngine.GetFilter("example.com#@#foo"); |
+ AdblockPlus::FilterPtr filter4 = filterEngine->GetFilter("example.com#@#foo"); |
ASSERT_EQ(AdblockPlus::Filter::TYPE_ELEMHIDE_EXCEPTION, filter4->GetProperty("type", -1)); |
- AdblockPlus::FilterPtr filter5 = filterEngine.GetFilter(" foo "); |
+ AdblockPlus::FilterPtr filter5 = filterEngine->GetFilter(" foo "); |
ASSERT_EQ(*filter1, *filter5); |
} |
-TEST(FilterEngineTest, FilterProperties) |
+TEST_F(FilterEngineTest, FilterProperties) |
{ |
- AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); |
- jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(new DummyFileSystem())); |
- AdblockPlus::FilterEngine filterEngine(jsEngine); |
- AdblockPlus::FilterPtr filter = filterEngine.GetFilter("foo"); |
+ AdblockPlus::FilterPtr filter = filterEngine->GetFilter("foo"); |
ASSERT_EQ("x", filter->GetProperty("stringFoo", "x")); |
ASSERT_EQ(42, filter->GetProperty("intFoo", 42)); |
@@ -68,32 +50,26 @@ |
ASSERT_TRUE(filter->GetProperty("boolFoo", false)); |
} |
-TEST(FilterEngineTest, AddRemoveFilters) |
+TEST_F(FilterEngineTest, AddRemoveFilters) |
{ |
- AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); |
- jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(new DummyFileSystem())); |
- AdblockPlus::FilterEngine filterEngine(jsEngine); |
- ASSERT_EQ(0u, filterEngine.GetListedFilters().size()); |
- AdblockPlus::FilterPtr filter = filterEngine.GetFilter("foo"); |
- ASSERT_EQ(0u, filterEngine.GetListedFilters().size()); |
+ ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
+ AdblockPlus::FilterPtr filter = filterEngine->GetFilter("foo"); |
+ ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
filter->AddToList(); |
- ASSERT_EQ(1u, filterEngine.GetListedFilters().size()); |
- ASSERT_EQ(*filter, *filterEngine.GetListedFilters()[0]); |
+ ASSERT_EQ(1u, filterEngine->GetListedFilters().size()); |
+ ASSERT_EQ(*filter, *filterEngine->GetListedFilters()[0]); |
filter->AddToList(); |
- ASSERT_EQ(1u, filterEngine.GetListedFilters().size()); |
- ASSERT_EQ(*filter, *filterEngine.GetListedFilters()[0]); |
+ ASSERT_EQ(1u, filterEngine->GetListedFilters().size()); |
+ ASSERT_EQ(*filter, *filterEngine->GetListedFilters()[0]); |
filter->RemoveFromList(); |
- ASSERT_EQ(0u, filterEngine.GetListedFilters().size()); |
+ ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
filter->RemoveFromList(); |
- ASSERT_EQ(0u, filterEngine.GetListedFilters().size()); |
+ ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
} |
-TEST(FilterEngineTest, SubscriptionProperties) |
+TEST_F(FilterEngineTest, SubscriptionProperties) |
{ |
- AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); |
- jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(new DummyFileSystem())); |
- AdblockPlus::FilterEngine filterEngine(jsEngine); |
- AdblockPlus::SubscriptionPtr subscription = filterEngine.GetSubscription("foo"); |
+ AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo"); |
ASSERT_EQ("x", subscription->GetProperty("stringFoo", "x")); |
ASSERT_EQ(42, subscription->GetProperty("intFoo", 42)); |
@@ -107,58 +83,47 @@ |
ASSERT_TRUE(subscription->GetProperty("boolFoo", false)); |
} |
-TEST(FilterEngineTest, AddRemoveSubscriptions) |
+TEST_F(FilterEngineTest, AddRemoveSubscriptions) |
{ |
- AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); |
- jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(new DummyFileSystem())); |
- AdblockPlus::FilterEngine filterEngine(jsEngine); |
- ASSERT_EQ(0u, filterEngine.GetListedSubscriptions().size()); |
- AdblockPlus::SubscriptionPtr subscription = filterEngine.GetSubscription("foo"); |
- ASSERT_EQ(0u, filterEngine.GetListedSubscriptions().size()); |
+ ASSERT_EQ(0u, filterEngine->GetListedSubscriptions().size()); |
+ AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo"); |
+ ASSERT_EQ(0u, filterEngine->GetListedSubscriptions().size()); |
subscription->AddToList(); |
- ASSERT_EQ(1u, filterEngine.GetListedSubscriptions().size()); |
- ASSERT_EQ(*subscription, *filterEngine.GetListedSubscriptions()[0]); |
+ ASSERT_EQ(1u, filterEngine->GetListedSubscriptions().size()); |
+ ASSERT_EQ(*subscription, *filterEngine->GetListedSubscriptions()[0]); |
subscription->AddToList(); |
- ASSERT_EQ(1u, filterEngine.GetListedSubscriptions().size()); |
- ASSERT_EQ(*subscription, *filterEngine.GetListedSubscriptions()[0]); |
+ ASSERT_EQ(1u, filterEngine->GetListedSubscriptions().size()); |
+ ASSERT_EQ(*subscription, *filterEngine->GetListedSubscriptions()[0]); |
subscription->RemoveFromList(); |
- ASSERT_EQ(0u, filterEngine.GetListedSubscriptions().size()); |
+ ASSERT_EQ(0u, filterEngine->GetListedSubscriptions().size()); |
subscription->RemoveFromList(); |
- ASSERT_EQ(0u, filterEngine.GetListedSubscriptions().size()); |
+ ASSERT_EQ(0u, filterEngine->GetListedSubscriptions().size()); |
} |
-TEST(FilterEngineTest, SubscriptionUpdates) |
+TEST_F(FilterEngineTest, SubscriptionUpdates) |
{ |
- AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); |
- jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(new DummyFileSystem())); |
- AdblockPlus::FilterEngine filterEngine(jsEngine); |
- AdblockPlus::SubscriptionPtr subscription = filterEngine.GetSubscription("foo"); |
+ AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo"); |
ASSERT_FALSE(subscription->IsUpdating()); |
- |
subscription->UpdateFilters(); |
} |
-TEST(FilterEngineTest, Matches) |
+TEST_F(FilterEngineTest, Matches) |
{ |
- AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); |
- jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(new DummyFileSystem())); |
- AdblockPlus::FilterEngine filterEngine(jsEngine); |
+ filterEngine->GetFilter("adbanner.gif")->AddToList(); |
+ filterEngine->GetFilter("@@notbanner.gif")->AddToList(); |
- filterEngine.GetFilter("adbanner.gif")->AddToList(); |
- filterEngine.GetFilter("@@notbanner.gif")->AddToList(); |
- |
- AdblockPlus::FilterPtr match1 = filterEngine.Matches("http://example.org/foobar.gif", "IMAGE", ""); |
+ AdblockPlus::FilterPtr match1 = filterEngine->Matches("http://example.org/foobar.gif", "IMAGE", ""); |
ASSERT_FALSE(match1); |
- AdblockPlus::FilterPtr match2 = filterEngine.Matches("http://example.org/adbanner.gif", "IMAGE", ""); |
+ AdblockPlus::FilterPtr match2 = filterEngine->Matches("http://example.org/adbanner.gif", "IMAGE", ""); |
ASSERT_TRUE(match2); |
ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match2->GetProperty("type", -1)); |
- AdblockPlus::FilterPtr match3 = filterEngine.Matches("http://example.org/notbanner.gif", "IMAGE", ""); |
+ AdblockPlus::FilterPtr match3 = filterEngine->Matches("http://example.org/notbanner.gif", "IMAGE", ""); |
ASSERT_TRUE(match3); |
ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match3->GetProperty("type", -1)); |
- AdblockPlus::FilterPtr match4 = filterEngine.Matches("http://example.org/notbanner.gif", "IMAGE", ""); |
+ AdblockPlus::FilterPtr match4 = filterEngine->Matches("http://example.org/notbanner.gif", "IMAGE", ""); |
ASSERT_TRUE(match4); |
ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match4->GetProperty("type", -1)); |
} |