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 |