| Index: test/UpdateCheck.cpp |
| =================================================================== |
| --- a/test/UpdateCheck.cpp |
| +++ b/test/UpdateCheck.cpp |
| @@ -18,6 +18,7 @@ |
| #include <functional> |
| #include "BaseJsTest.h" |
| +#include "../src/JsEngineTransition.h" |
| namespace |
| { |
| @@ -46,10 +47,30 @@ |
| class UpdateCheckTest : public ::testing::Test |
| { |
| + void Construct() |
| + { |
| + jsEngine = CreateJsEngine(appInfo); |
| + jsEngine->SetLogSystem(std::make_shared<LazyLogSystem>()); |
| + jsEngine->SetFileSystem(std::make_shared<LazyFileSystem>()); |
| + jsEngine->SetWebRequest(webRequest); |
| + jsEngine->SetEventCallback("updateAvailable", |
| + std::bind(&UpdateCheckTest::EventCallback, this, std::placeholders::_1)); |
| + |
| + filterEngine = std::make_shared<AdblockPlus::FilterEngine>(jsEngine); |
| + } |
| + |
| + void Destroy() |
| + { |
| + webRequest->Cancel(); |
| + filterEngine.reset(); |
| + ToInternal(jsEngine)->WaitForQuietScheduler(); |
| + jsEngine.reset(); |
| + ASSERT_EQ(0, jsEngine.use_count()); |
| + } |
| + |
| protected: |
| AdblockPlus::AppInfo appInfo; |
| - TestWebRequest* webRequest; |
| - AdblockPlus::WebRequestPtr webRequestPtr; |
| + std::shared_ptr<TestWebRequest> webRequest; |
| AdblockPlus::JsEnginePtr jsEngine; |
| FilterEnginePtr filterEngine; |
| @@ -60,29 +81,22 @@ |
| void SetUp() |
| { |
| - webRequest = new TestWebRequest(); |
| - webRequestPtr.reset(webRequest); |
| - |
| + webRequest = std::make_shared<TestWebRequest>(); |
| eventCallbackCalled = false; |
| updateCallbackCalled = false; |
| - Reset(); |
| + Construct(); |
| } |
| void TearDown() |
| { |
| - webRequest->Cancel(); |
| + Destroy(); |
| + webRequest.reset(); |
| } |
| void Reset() |
| { |
| - jsEngine = CreateJsEngine(appInfo); |
| - jsEngine->SetLogSystem(AdblockPlus::LogSystemPtr(new LazyLogSystem)); |
| - jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(new LazyFileSystem)); |
| - jsEngine->SetWebRequest(webRequestPtr); |
| - jsEngine->SetEventCallback("updateAvailable", |
| - std::bind(&UpdateCheckTest::EventCallback, this, std::placeholders::_1)); |
| - |
| - filterEngine.reset(new AdblockPlus::FilterEngine(jsEngine)); |
| + Destroy(); |
| + Construct(); |
| } |
| void ForceUpdateCheck() |