| 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)); | 
| } |