| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <list> | 5 #include <list> |
| 6 #include <string> | 6 #include <string> |
| 7 | 7 |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "chrome/test/chromedriver/chrome/status.h" | 9 #include "chrome/test/chromedriver/chrome/status.h" |
| 10 #include "chrome/test/chromedriver/chrome/stub_chrome.h" | 10 #include "chrome/test/chromedriver/chrome/stub_chrome.h" |
| 11 #include "chrome/test/chromedriver/chrome/stub_web_view.h" | 11 #include "chrome/test/chromedriver/chrome/stub_web_view.h" |
| 12 #include "chrome/test/chromedriver/session.h" | 12 #include "chrome/test/chromedriver/session.h" |
| 13 #include "chrome/test/chromedriver/util.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 14 | 15 |
| 15 namespace { | 16 namespace { |
| 16 | 17 |
| 17 class MockChrome : public StubChrome { | 18 class MockChrome : public StubChrome { |
| 18 public: | 19 public: |
| 19 MockChrome() : web_view_("1") {} | 20 MockChrome() : web_view_("1") {} |
| 20 virtual ~MockChrome() {} | 21 virtual ~MockChrome() {} |
| 21 | 22 |
| 22 virtual Status GetWebViewById(const std::string& id, | 23 virtual Status GetWebViewById(const std::string& id, |
| 23 WebView** web_view) OVERRIDE { | 24 WebView** web_view) OVERRIDE { |
| 24 if (id == web_view_.GetId()) { | 25 if (id == web_view_.GetId()) { |
| 25 *web_view = &web_view_; | 26 *web_view = &web_view_; |
| 26 return Status(kOk); | 27 return Status(kOk); |
| 27 } | 28 } |
| 28 return Status(kUnknownError); | 29 return Status(kUnknownError); |
| 29 } | 30 } |
| 30 | 31 |
| 31 private: | 32 private: |
| 32 StubWebView web_view_; | 33 StubWebView web_view_; |
| 33 }; | 34 }; |
| 34 | 35 |
| 36 class MockCommandListener : public CommandListener { |
| 37 public: |
| 38 MockCommandListener() : called_(false) {} |
| 39 virtual ~MockCommandListener() {} |
| 40 |
| 41 virtual Status BeforeCommand(const std::string& command_name) OVERRIDE { |
| 42 called_ = true; |
| 43 EXPECT_STREQ("cmd", command_name.c_str()); |
| 44 return Status(kOk); |
| 45 } |
| 46 |
| 47 void VerifyCalled() { |
| 48 EXPECT_TRUE(called_); |
| 49 } |
| 50 |
| 51 void VerifyNotCalled() { |
| 52 EXPECT_FALSE(called_); |
| 53 } |
| 54 |
| 55 private: |
| 56 bool called_; |
| 57 }; |
| 58 |
| 35 } // namespace | 59 } // namespace |
| 36 | 60 |
| 37 TEST(Session, GetTargetWindowNoChrome) { | 61 TEST(Session, GetTargetWindowNoChrome) { |
| 38 Session session("1"); | 62 Session session("1"); |
| 39 WebView* web_view; | 63 WebView* web_view; |
| 40 ASSERT_EQ(kNoSuchWindow, session.GetTargetWindow(&web_view).code()); | 64 ASSERT_EQ(kNoSuchWindow, session.GetTargetWindow(&web_view).code()); |
| 41 } | 65 } |
| 42 | 66 |
| 43 TEST(Session, GetTargetWindowTargetWindowClosed) { | 67 TEST(Session, GetTargetWindowTargetWindowClosed) { |
| 44 scoped_ptr<Chrome> chrome(new MockChrome()); | 68 scoped_ptr<Chrome> chrome(new MockChrome()); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 session.SwitchToTopFrame(); | 118 session.SwitchToTopFrame(); |
| 95 ASSERT_EQ(std::string(), session.GetCurrentFrameId()); | 119 ASSERT_EQ(std::string(), session.GetCurrentFrameId()); |
| 96 | 120 |
| 97 session.SwitchToSubFrame("3.1", std::string()); | 121 session.SwitchToSubFrame("3.1", std::string()); |
| 98 ASSERT_EQ("3.1", session.GetCurrentFrameId()); | 122 ASSERT_EQ("3.1", session.GetCurrentFrameId()); |
| 99 session.SwitchToSubFrame("3.2", std::string()); | 123 session.SwitchToSubFrame("3.2", std::string()); |
| 100 ASSERT_EQ("3.2", session.GetCurrentFrameId()); | 124 ASSERT_EQ("3.2", session.GetCurrentFrameId()); |
| 101 session.SwitchToTopFrame(); | 125 session.SwitchToTopFrame(); |
| 102 ASSERT_EQ(std::string(), session.GetCurrentFrameId()); | 126 ASSERT_EQ(std::string(), session.GetCurrentFrameId()); |
| 103 } | 127 } |
| 128 |
| 129 TEST(Session, OnCommand) { |
| 130 Session session("1"); |
| 131 // Listeners are owned by and will be destroyed by session |
| 132 MockCommandListener* listener1 = new MockCommandListener(); |
| 133 MockCommandListener* listener2 = new MockCommandListener(); |
| 134 session.AddListener(listener1); |
| 135 session.AddListener(listener2); |
| 136 listener1->VerifyNotCalled(); |
| 137 listener2->VerifyNotCalled(); |
| 138 NotifySessionListenersBeforeCommand(&session, "cmd"); |
| 139 listener1->VerifyCalled(); |
| 140 listener2->VerifyCalled(); |
| 141 } |
| OLD | NEW |