| OLD | NEW |
| 1 #include <AdblockPlus.h> | 1 #include "BaseJsTest.h" |
| 2 #include <gtest/gtest.h> | |
| 3 | 2 |
| 4 class MockErrorCallback : public AdblockPlus::ErrorCallback | 3 namespace |
| 5 { | 4 { |
| 6 public: | 5 class MockErrorCallback : public AdblockPlus::ErrorCallback |
| 7 std::string lastMessage; | 6 { |
| 7 public: |
| 8 std::string lastMessage; |
| 8 | 9 |
| 9 void operator()(const std::string& message) | 10 void operator()(const std::string& message) |
| 11 { |
| 12 lastMessage = message; |
| 13 } |
| 14 }; |
| 15 |
| 16 typedef std::tr1::shared_ptr<MockErrorCallback> MockErrorCallbackPtr; |
| 17 |
| 18 class ConsoleJsObjectTest : public BaseJsTest |
| 10 { | 19 { |
| 11 lastMessage = message; | 20 protected: |
| 12 } | 21 MockErrorCallbackPtr mockErrorCallback; |
| 13 }; | |
| 14 | 22 |
| 15 TEST(ConsoleJsObjectTest, ErrorInvokesErrorCallback) | 23 void SetUp() |
| 16 { | 24 { |
| 17 AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); | 25 BaseJsTest::SetUp(); |
| 18 MockErrorCallback* errorCallback = new MockErrorCallback(); | 26 mockErrorCallback = MockErrorCallbackPtr(new MockErrorCallback); |
| 19 jsEngine->SetErrorCallback(AdblockPlus::ErrorCallbackPtr(errorCallback)); | 27 jsEngine->SetErrorCallback(mockErrorCallback); |
| 20 jsEngine->Evaluate("console.error('foo')"); | 28 } |
| 21 ASSERT_EQ("foo", errorCallback->lastMessage); | 29 }; |
| 22 } | 30 } |
| 23 | 31 |
| 24 TEST(ConsoleJsObjectTest, ErrorWithMultipleArguments) | 32 TEST_F(ConsoleJsObjectTest, ErrorInvokesErrorCallback) |
| 25 { | 33 { |
| 26 AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); | 34 jsEngine->Evaluate("console.error('foo')"); |
| 27 MockErrorCallback* errorCallback = new MockErrorCallback(); | 35 ASSERT_EQ("foo", mockErrorCallback->lastMessage); |
| 28 jsEngine->SetErrorCallback(AdblockPlus::ErrorCallbackPtr(errorCallback)); | |
| 29 jsEngine->Evaluate("console.error('foo', 'bar')"); | |
| 30 ASSERT_EQ("foobar", errorCallback->lastMessage); | |
| 31 } | 36 } |
| 32 | 37 |
| 33 TEST(ConsoleJsObjectTest, TraceDoesNothing) | 38 TEST_F(ConsoleJsObjectTest, ErrorWithMultipleArguments) |
| 34 { | 39 { |
| 35 AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); | 40 jsEngine->Evaluate("console.error('foo', 'bar')"); |
| 41 ASSERT_EQ("foobar", mockErrorCallback->lastMessage); |
| 42 } |
| 43 |
| 44 TEST_F(ConsoleJsObjectTest, TraceDoesNothing) |
| 45 { |
| 46 jsEngine->SetErrorCallback(AdblockPlus::ErrorCallbackPtr(new ThrowingErrorCall
back)); |
| 36 jsEngine->Evaluate("console.trace()"); | 47 jsEngine->Evaluate("console.trace()"); |
| 37 } | 48 } |
| OLD | NEW |