| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/test/chromedriver/chrome/javascript_dialog_manager.h" | 10 #include "chrome/test/chromedriver/chrome/javascript_dialog_manager.h" |
| 11 #include "chrome/test/chromedriver/chrome/status.h" | 11 #include "chrome/test/chromedriver/chrome/status.h" |
| 12 #include "chrome/test/chromedriver/chrome/stub_devtools_client.h" | 12 #include "chrome/test/chromedriver/chrome/stub_devtools_client.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 14 | 14 |
| 15 TEST(JavaScriptDialogManager, NoDialog) { | 15 TEST(JavaScriptDialogManager, NoDialog) { |
| 16 StubDevToolsClient client; | 16 StubDevToolsClient client; |
| 17 JavaScriptDialogManager manager(&client); | 17 JavaScriptDialogManager manager(&client); |
| 18 std::string message("HI"); | 18 std::string message("HI"); |
| 19 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); | 19 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); |
| 20 ASSERT_FALSE(manager.IsDialogOpen()); | 20 ASSERT_FALSE(manager.IsDialogOpen()); |
| 21 ASSERT_STREQ("HI", message.c_str()); | 21 ASSERT_STREQ("HI", message.c_str()); |
| 22 ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, "").code()); | 22 ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, std::string()).code()); |
| 23 } | 23 } |
| 24 | 24 |
| 25 namespace { | 25 namespace { |
| 26 | 26 |
| 27 class RecorderDevToolsClient : public StubDevToolsClient { | 27 class RecorderDevToolsClient : public StubDevToolsClient { |
| 28 public: | 28 public: |
| 29 RecorderDevToolsClient() {} | 29 RecorderDevToolsClient() {} |
| 30 virtual ~RecorderDevToolsClient() {} | 30 virtual ~RecorderDevToolsClient() {} |
| 31 | 31 |
| 32 // Overridden from StubDevToolsClient: | 32 // Overridden from StubDevToolsClient: |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 params.SetString("message", "hi"); | 66 params.SetString("message", "hi"); |
| 67 manager.OnEvent("Page.javascriptDialogOpening", params); | 67 manager.OnEvent("Page.javascriptDialogOpening", params); |
| 68 ASSERT_TRUE(manager.IsDialogOpen()); | 68 ASSERT_TRUE(manager.IsDialogOpen()); |
| 69 std::string message; | 69 std::string message; |
| 70 ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); | 70 ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); |
| 71 | 71 |
| 72 ASSERT_TRUE(manager.OnConnected().IsOk()); | 72 ASSERT_TRUE(manager.OnConnected().IsOk()); |
| 73 ASSERT_EQ("Page.enable", client.method_); | 73 ASSERT_EQ("Page.enable", client.method_); |
| 74 ASSERT_FALSE(manager.IsDialogOpen()); | 74 ASSERT_FALSE(manager.IsDialogOpen()); |
| 75 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); | 75 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); |
| 76 ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, "").code()); | 76 ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, std::string()).code()); |
| 77 } | 77 } |
| 78 | 78 |
| 79 namespace { | 79 namespace { |
| 80 | 80 |
| 81 class FakeDevToolsClient : public StubDevToolsClient { | 81 class FakeDevToolsClient : public StubDevToolsClient { |
| 82 public: | 82 public: |
| 83 FakeDevToolsClient() : listener_(NULL), closing_count_(0) {} | 83 FakeDevToolsClient() : listener_(NULL), closing_count_(0) {} |
| 84 virtual ~FakeDevToolsClient() {} | 84 virtual ~FakeDevToolsClient() {} |
| 85 | 85 |
| 86 void set_closing_count(int closing_count) { | 86 void set_closing_count(int closing_count) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 ASSERT_FALSE(manager.IsDialogOpen()); | 118 ASSERT_FALSE(manager.IsDialogOpen()); |
| 119 std::string message; | 119 std::string message; |
| 120 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); | 120 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); |
| 121 | 121 |
| 122 manager.OnEvent("Page.javascriptDialogOpening", params); | 122 manager.OnEvent("Page.javascriptDialogOpening", params); |
| 123 ASSERT_TRUE(manager.IsDialogOpen()); | 123 ASSERT_TRUE(manager.IsDialogOpen()); |
| 124 ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); | 124 ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); |
| 125 ASSERT_EQ("hi", message); | 125 ASSERT_EQ("hi", message); |
| 126 | 126 |
| 127 client.set_closing_count(1); | 127 client.set_closing_count(1); |
| 128 ASSERT_EQ(kOk, manager.HandleDialog(false, "").code()); | 128 ASSERT_EQ(kOk, manager.HandleDialog(false, std::string()).code()); |
| 129 ASSERT_FALSE(manager.IsDialogOpen()); | 129 ASSERT_FALSE(manager.IsDialogOpen()); |
| 130 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); | 130 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); |
| 131 ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, "").code()); | 131 ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, std::string()).code()); |
| 132 } | 132 } |
| 133 | 133 |
| 134 TEST(JavaScriptDialogManager, TwoDialogs) { | 134 TEST(JavaScriptDialogManager, TwoDialogs) { |
| 135 FakeDevToolsClient client; | 135 FakeDevToolsClient client; |
| 136 JavaScriptDialogManager manager(&client); | 136 JavaScriptDialogManager manager(&client); |
| 137 base::DictionaryValue params; | 137 base::DictionaryValue params; |
| 138 params.SetString("message", "1"); | 138 params.SetString("message", "1"); |
| 139 manager.OnEvent("Page.javascriptDialogOpening", params); | 139 manager.OnEvent("Page.javascriptDialogOpening", params); |
| 140 params.SetString("message", "2"); | 140 params.SetString("message", "2"); |
| 141 manager.OnEvent("Page.javascriptDialogOpening", params); | 141 manager.OnEvent("Page.javascriptDialogOpening", params); |
| 142 | 142 |
| 143 std::string message; | 143 std::string message; |
| 144 ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); | 144 ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); |
| 145 ASSERT_TRUE(manager.IsDialogOpen()); | 145 ASSERT_TRUE(manager.IsDialogOpen()); |
| 146 ASSERT_EQ("1", message); | 146 ASSERT_EQ("1", message); |
| 147 | 147 |
| 148 ASSERT_EQ(kOk, manager.HandleDialog(false, "").code()); | 148 ASSERT_EQ(kOk, manager.HandleDialog(false, std::string()).code()); |
| 149 ASSERT_TRUE(manager.IsDialogOpen()); | 149 ASSERT_TRUE(manager.IsDialogOpen()); |
| 150 ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); | 150 ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); |
| 151 ASSERT_EQ("2", message); | 151 ASSERT_EQ("2", message); |
| 152 | 152 |
| 153 client.set_closing_count(2); | 153 client.set_closing_count(2); |
| 154 ASSERT_EQ(kOk, manager.HandleDialog(false, "").code()); | 154 ASSERT_EQ(kOk, manager.HandleDialog(false, std::string()).code()); |
| 155 ASSERT_FALSE(manager.IsDialogOpen()); | 155 ASSERT_FALSE(manager.IsDialogOpen()); |
| 156 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); | 156 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); |
| 157 ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, "").code()); | 157 ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, std::string()).code()); |
| 158 } | 158 } |
| 159 | 159 |
| 160 TEST(JavaScriptDialogManager, OneDialogManualClose) { | 160 TEST(JavaScriptDialogManager, OneDialogManualClose) { |
| 161 StubDevToolsClient client; | 161 StubDevToolsClient client; |
| 162 JavaScriptDialogManager manager(&client); | 162 JavaScriptDialogManager manager(&client); |
| 163 base::DictionaryValue params; | 163 base::DictionaryValue params; |
| 164 params.SetString("message", "hi"); | 164 params.SetString("message", "hi"); |
| 165 ASSERT_FALSE(manager.IsDialogOpen()); | 165 ASSERT_FALSE(manager.IsDialogOpen()); |
| 166 std::string message; | 166 std::string message; |
| 167 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); | 167 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); |
| 168 | 168 |
| 169 manager.OnEvent("Page.javascriptDialogOpening", params); | 169 manager.OnEvent("Page.javascriptDialogOpening", params); |
| 170 ASSERT_TRUE(manager.IsDialogOpen()); | 170 ASSERT_TRUE(manager.IsDialogOpen()); |
| 171 ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); | 171 ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); |
| 172 ASSERT_EQ("hi", message); | 172 ASSERT_EQ("hi", message); |
| 173 | 173 |
| 174 manager.OnEvent("Page.javascriptDialogClosing", params); | 174 manager.OnEvent("Page.javascriptDialogClosing", params); |
| 175 ASSERT_FALSE(manager.IsDialogOpen()); | 175 ASSERT_FALSE(manager.IsDialogOpen()); |
| 176 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); | 176 ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); |
| 177 ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, "").code()); | 177 ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, std::string()).code()); |
| 178 } | 178 } |
| OLD | NEW |