| Index: test/GlobalJsObject.cpp |
| diff --git a/test/GlobalJsObject.cpp b/test/GlobalJsObject.cpp |
| index 575f76a2536cc87fcdda929864cdd404e5421e20..0c2e32d2594fa86c05fa5caa82e108ac133bff10 100644 |
| --- a/test/GlobalJsObject.cpp |
| +++ b/test/GlobalJsObject.cpp |
| @@ -20,61 +20,45 @@ |
| namespace |
| { |
| - class GlobalJsObjectTest : public ::testing::Test |
| + class GlobalJsObjectTest : public BaseJsTest |
| { |
| protected: |
| - std::unique_ptr<AdblockPlus::Platform> platform; |
| - AdblockPlus::JsEnginePtr jsEngine; |
| - |
| void SetUp() override |
| { |
| ThrowingPlatformCreationParameters params; |
| params.timer = AdblockPlus::CreateDefaultTimer(); |
| platform.reset(new AdblockPlus::Platform(std::move(params))); |
| - jsEngine = platform->GetJsEngine(); |
| } |
| }; |
| } |
| TEST_F(GlobalJsObjectTest, SetTimeout) |
| { |
| - jsEngine->Evaluate("setTimeout(function() {foo = 'bar';}, 100)"); |
| - ASSERT_TRUE(jsEngine->Evaluate("this.foo").IsUndefined()); |
| + GetJsEngine().Evaluate("setTimeout(function() {foo = 'bar';}, 100)"); |
| + ASSERT_TRUE(GetJsEngine().Evaluate("this.foo").IsUndefined()); |
| AdblockPlus::Sleep(200); |
| - ASSERT_EQ("bar", jsEngine->Evaluate("this.foo").AsString()); |
| + ASSERT_EQ("bar", GetJsEngine().Evaluate("this.foo").AsString()); |
| } |
| TEST_F(GlobalJsObjectTest, SetTimeoutWithArgs) |
| { |
| - jsEngine->Evaluate("setTimeout(function(s) {foo = s;}, 100, 'foobar')"); |
| - ASSERT_TRUE(jsEngine->Evaluate("this.foo").IsUndefined()); |
| + GetJsEngine().Evaluate("setTimeout(function(s) {foo = s;}, 100, 'foobar')"); |
| + ASSERT_TRUE(GetJsEngine().Evaluate("this.foo").IsUndefined()); |
| AdblockPlus::Sleep(200); |
| - ASSERT_EQ("foobar", jsEngine->Evaluate("this.foo").AsString()); |
| + ASSERT_EQ("foobar", GetJsEngine().Evaluate("this.foo").AsString()); |
| } |
| TEST_F(GlobalJsObjectTest, SetTimeoutWithInvalidArgs) |
| { |
| - ASSERT_ANY_THROW(jsEngine->Evaluate("setTimeout()")); |
| - ASSERT_ANY_THROW(jsEngine->Evaluate("setTimeout('', 1)")); |
| + ASSERT_ANY_THROW(GetJsEngine().Evaluate("setTimeout()")); |
| + ASSERT_ANY_THROW(GetJsEngine().Evaluate("setTimeout('', 1)")); |
| } |
| TEST_F(GlobalJsObjectTest, SetMultipleTimeouts) |
| { |
| - jsEngine->Evaluate("foo = []"); |
| - jsEngine->Evaluate("setTimeout(function(s) {foo.push('1');}, 100)"); |
| - jsEngine->Evaluate("setTimeout(function(s) {foo.push('2');}, 150)"); |
| - AdblockPlus::Sleep(200); |
| - ASSERT_EQ("1,2", jsEngine->Evaluate("this.foo").AsString()); |
| -} |
| - |
| -TEST_F(GlobalJsObjectTest, TimeoutDoesNotKeepJsEngine) |
| -{ |
| - jsEngine->Evaluate("setTimeout(function() {}, 50000)"); |
| - // 1 reference is held by platform and yet one by the test fixture class. |
| - EXPECT_EQ(2u, jsEngine.use_count()); |
| + GetJsEngine().Evaluate("foo = []"); |
| + GetJsEngine().Evaluate("setTimeout(function(s) {foo.push('1');}, 100)"); |
| + GetJsEngine().Evaluate("setTimeout(function(s) {foo.push('2');}, 150)"); |
| AdblockPlus::Sleep(200); |
| - std::weak_ptr<AdblockPlus::JsEngine> weakJsEngine = jsEngine; |
| - jsEngine.reset(); |
| - platform.reset(); |
| - EXPECT_FALSE(weakJsEngine.lock()); |
| -} |
| + ASSERT_EQ("1,2", GetJsEngine().Evaluate("this.foo").AsString()); |
| +} |