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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "chrome/test/chromedriver/chrome/browser_info.h" | 10 #include "chrome/test/chromedriver/chrome/browser_info.h" |
11 #include "chrome/test/chromedriver/chrome/navigation_tracker.h" | 11 #include "chrome/test/chromedriver/chrome/navigation_tracker.h" |
12 #include "chrome/test/chromedriver/chrome/status.h" | 12 #include "chrome/test/chromedriver/chrome/status.h" |
13 #include "chrome/test/chromedriver/chrome/stub_devtools_client.h" | 13 #include "chrome/test/chromedriver/chrome/stub_devtools_client.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
15 | 15 |
16 namespace { | 16 namespace { |
17 | 17 |
18 void AssertPendingState(NavigationTracker* tracker, | 18 void AssertPendingState(NavigationTracker* tracker, |
19 const std::string& frame_id, | 19 const std::string& frame_id, |
20 bool expected_is_pending) { | 20 bool expected_is_pending) { |
21 bool is_pending = !expected_is_pending; | 21 bool is_pending = !expected_is_pending; |
22 ASSERT_EQ(kOk, tracker->IsPendingNavigation(frame_id, &is_pending).code()); | 22 ASSERT_EQ( |
| 23 kOk, tracker->IsPendingNavigation(frame_id, nullptr, &is_pending).code()); |
23 ASSERT_EQ(expected_is_pending, is_pending); | 24 ASSERT_EQ(expected_is_pending, is_pending); |
24 } | 25 } |
25 | 26 |
26 class DeterminingLoadStateDevToolsClient : public StubDevToolsClient { | 27 class DeterminingLoadStateDevToolsClient : public StubDevToolsClient { |
27 public: | 28 public: |
28 DeterminingLoadStateDevToolsClient( | 29 DeterminingLoadStateDevToolsClient( |
29 bool has_empty_base_url, | 30 bool has_empty_base_url, |
30 bool is_loading, | 31 bool is_loading, |
31 const std::string& send_event_first, | 32 const std::string& send_event_first, |
32 base::DictionaryValue* send_event_first_params) | 33 base::DictionaryValue* send_event_first_params) |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 }; | 308 }; |
308 | 309 |
309 } // namespace | 310 } // namespace |
310 | 311 |
311 TEST(NavigationTracker, UnknownStateFailsToDetermineState) { | 312 TEST(NavigationTracker, UnknownStateFailsToDetermineState) { |
312 FailToEvalScriptDevToolsClient client; | 313 FailToEvalScriptDevToolsClient client; |
313 BrowserInfo browser_info; | 314 BrowserInfo browser_info; |
314 NavigationTracker tracker(&client, &browser_info); | 315 NavigationTracker tracker(&client, &browser_info); |
315 bool is_pending; | 316 bool is_pending; |
316 ASSERT_EQ(kUnknownError, | 317 ASSERT_EQ(kUnknownError, |
317 tracker.IsPendingNavigation("f", &is_pending).code()); | 318 tracker.IsPendingNavigation("f", nullptr, &is_pending).code()); |
318 } | 319 } |
319 | 320 |
320 TEST(NavigationTracker, UnknownStatePageNotLoadAtAll) { | 321 TEST(NavigationTracker, UnknownStatePageNotLoadAtAll) { |
321 base::DictionaryValue params; | 322 base::DictionaryValue params; |
322 DeterminingLoadStateDevToolsClient client( | 323 DeterminingLoadStateDevToolsClient client( |
323 true, true, std::string(), ¶ms); | 324 true, true, std::string(), ¶ms); |
324 BrowserInfo browser_info; | 325 BrowserInfo browser_info; |
325 NavigationTracker tracker(&client, &browser_info); | 326 NavigationTracker tracker(&client, &browser_info); |
326 ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true)); | 327 ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true)); |
327 } | 328 } |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 result.SetString("frameId", "f"); | 360 result.SetString("frameId", "f"); |
360 tracker.OnCommandSuccess(&client, "Page.navigate", result); | 361 tracker.OnCommandSuccess(&client, "Page.navigate", result); |
361 ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true)); | 362 ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true)); |
362 tracker.OnEvent(&client, "Page.loadEventFired", params); | 363 tracker.OnEvent(&client, "Page.loadEventFired", params); |
363 ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true)); | 364 ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true)); |
364 params.Clear(); | 365 params.Clear(); |
365 params.SetString("frameId", "f"); | 366 params.SetString("frameId", "f"); |
366 tracker.OnEvent(&client, "Page.frameStoppedLoading", params); | 367 tracker.OnEvent(&client, "Page.frameStoppedLoading", params); |
367 ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", false)); | 368 ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", false)); |
368 } | 369 } |
OLD | NEW |