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 |