Chromium Code Reviews| Index: chrome/test/chromedriver/session_unittest.cc |
| diff --git a/chrome/test/chromedriver/session_unittest.cc b/chrome/test/chromedriver/session_unittest.cc |
| index 23fb779bd26a14b3667c4bf6837393e7300eb1dd..9d31e12d88c5386a796d203af70c39722774f24a 100644 |
| --- a/chrome/test/chromedriver/session_unittest.cc |
| +++ b/chrome/test/chromedriver/session_unittest.cc |
| @@ -10,6 +10,7 @@ |
| #include "chrome/test/chromedriver/chrome/stub_chrome.h" |
| #include "chrome/test/chromedriver/chrome/stub_web_view.h" |
| #include "chrome/test/chromedriver/session.h" |
| +#include "chrome/test/chromedriver/util.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace { |
| @@ -32,6 +33,29 @@ class MockChrome : public StubChrome { |
| StubWebView web_view_; |
| }; |
| +class MockCommandListener : public CommandListener { |
|
stgao
2014/07/01 19:02:27
Duplicate code again.
Now it seems that it should
johnmoore
2014/07/02 22:17:45
I have removed AddListener from session, so this d
|
| + public: |
| + MockCommandListener() : called_(false) {} |
| + virtual ~MockCommandListener() {} |
| + |
| + virtual Status BeforeCommand(const std::string& command_name) OVERRIDE { |
| + called_ = true; |
| + EXPECT_STREQ("cmd", command_name.c_str()); |
| + return Status(kOk); |
| + } |
| + |
| + void VerifyCalled() { |
| + EXPECT_TRUE(called_); |
| + } |
| + |
| + void VerifyNotCalled() { |
| + EXPECT_FALSE(called_); |
| + } |
| + |
| + private: |
| + bool called_; |
| +}; |
| + |
| } // namespace |
| TEST(Session, GetTargetWindowNoChrome) { |
| @@ -101,3 +125,17 @@ TEST(Session, SwitchToTopFrame) { |
| session.SwitchToTopFrame(); |
| ASSERT_EQ(std::string(), session.GetCurrentFrameId()); |
| } |
| + |
| +TEST(Session, OnCommand) { |
| + Session session("1"); |
| + // Listeners are owned by and will be destroyed by session |
| + MockCommandListener* listener1 = new MockCommandListener(); |
| + MockCommandListener* listener2 = new MockCommandListener(); |
| + session.AddListener(listener1); |
| + session.AddListener(listener2); |
| + listener1->VerifyNotCalled(); |
| + listener2->VerifyNotCalled(); |
| + NotifySessionListenersBeforeCommand(&session, "cmd"); |
| + listener1->VerifyCalled(); |
| + listener2->VerifyCalled(); |
| +} |