| Index: chrome/test/chromedriver/navigation_tracker_unittest.cc
|
| diff --git a/chrome/test/chromedriver/navigation_tracker_unittest.cc b/chrome/test/chromedriver/navigation_tracker_unittest.cc
|
| deleted file mode 100644
|
| index 6c73ab67d1f3cae97cdaede52952fbf7d9c94ab3..0000000000000000000000000000000000000000
|
| --- a/chrome/test/chromedriver/navigation_tracker_unittest.cc
|
| +++ /dev/null
|
| @@ -1,187 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/compiler_specific.h"
|
| -#include "base/json/json_reader.h"
|
| -#include "base/values.h"
|
| -#include "chrome/test/chromedriver/navigation_tracker.h"
|
| -#include "chrome/test/chromedriver/status.h"
|
| -#include "chrome/test/chromedriver/stub_devtools_client.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace {
|
| -
|
| -void AssertPendingState(NavigationTracker* tracker,
|
| - const std::string& frame_id,
|
| - bool expected_is_pending) {
|
| - bool is_pending = !expected_is_pending;
|
| - ASSERT_EQ(kOk, tracker->IsPendingNavigation(frame_id, &is_pending).code());
|
| - ASSERT_EQ(expected_is_pending, is_pending);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -TEST(NavigationTracker, FrameLoadStartStop) {
|
| - StubDevToolsClient client;
|
| - NavigationTracker tracker(&client);
|
| -
|
| - base::DictionaryValue params;
|
| - tracker.OnEvent("Page.frameStartedLoading", params);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true));
|
| - tracker.OnEvent("Page.frameStoppedLoading", params);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", false));
|
| -}
|
| -
|
| -TEST(NavigationTracker, NavigationScheduledThenLoaded) {
|
| - StubDevToolsClient client;
|
| - NavigationTracker tracker(&client, NavigationTracker::kNotLoading);
|
| - base::DictionaryValue params;
|
| - params.SetString("frameId", "f");
|
| - base::DictionaryValue params_scheduled;
|
| - params_scheduled.SetInteger("delay", 0);
|
| - params_scheduled.SetString("frameId", "f");
|
| -
|
| - tracker.OnEvent("Page.frameScheduledNavigation", params_scheduled);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true));
|
| - tracker.OnEvent("Page.frameStartedLoading", params);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true));
|
| - tracker.OnEvent("Page.frameClearedScheduledNavigation", params);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true));
|
| - tracker.OnEvent("Page.frameStoppedLoading", params);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", false));
|
| -}
|
| -
|
| -TEST(NavigationTracker, NavigationScheduledForOtherFrame) {
|
| - StubDevToolsClient client;
|
| - NavigationTracker tracker(&client, NavigationTracker::kNotLoading);
|
| - base::DictionaryValue params_scheduled;
|
| - params_scheduled.SetInteger("delay", 0);
|
| - params_scheduled.SetString("frameId", "other");
|
| -
|
| - tracker.OnEvent("Page.frameScheduledNavigation", params_scheduled);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", false));
|
| -}
|
| -
|
| -TEST(NavigationTracker, NavigationScheduledThenCancelled) {
|
| - StubDevToolsClient client;
|
| - NavigationTracker tracker(&client, NavigationTracker::kNotLoading);
|
| - base::DictionaryValue params;
|
| - params.SetString("frameId", "f");
|
| - base::DictionaryValue params_scheduled;
|
| - params_scheduled.SetInteger("delay", 0);
|
| - params_scheduled.SetString("frameId", "f");
|
| -
|
| - tracker.OnEvent("Page.frameScheduledNavigation", params_scheduled);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true));
|
| - tracker.OnEvent("Page.frameClearedScheduledNavigation", params);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", false));
|
| -}
|
| -
|
| -TEST(NavigationTracker, NavigationScheduledTooFarAway) {
|
| - StubDevToolsClient client;
|
| - NavigationTracker tracker(&client, NavigationTracker::kNotLoading);
|
| -
|
| - base::DictionaryValue params_scheduled;
|
| - params_scheduled.SetInteger("delay", 10);
|
| - params_scheduled.SetString("frameId", "f");
|
| - tracker.OnEvent("Page.frameScheduledNavigation", params_scheduled);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", false));
|
| -}
|
| -
|
| -TEST(NavigationTracker, DiscardScheduledNavigationsOnMainFrameCommit) {
|
| - StubDevToolsClient client;
|
| - NavigationTracker tracker(&client, NavigationTracker::kNotLoading);
|
| -
|
| - base::DictionaryValue params_scheduled;
|
| - params_scheduled.SetString("frameId", "subframe");
|
| - params_scheduled.SetInteger("delay", 0);
|
| - tracker.OnEvent("Page.frameScheduledNavigation", params_scheduled);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "subframe", true));
|
| -
|
| - base::DictionaryValue params_navigated;
|
| - params_navigated.SetString("frame.parentId", "something");
|
| - tracker.OnEvent("Page.frameNavigated", params_navigated);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "subframe", true));
|
| - params_navigated.Clear();
|
| - tracker.OnEvent("Page.frameNavigated", params_navigated);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "subframe", false));
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -class FailToEvalScriptDevToolsClient : public StubDevToolsClient {
|
| - public:
|
| - virtual ~FailToEvalScriptDevToolsClient() {}
|
| -
|
| - virtual Status SendCommandAndGetResult(
|
| - const std::string& method,
|
| - const base::DictionaryValue& params,
|
| - scoped_ptr<base::DictionaryValue>* result) OVERRIDE {
|
| - EXPECT_STREQ("Runtime.evaluate", method.c_str());
|
| - return Status(kUnknownError, "failed to eval script");
|
| - }
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -TEST(NavigationTracker, UnknownStateFailsToDetermineState) {
|
| - FailToEvalScriptDevToolsClient client;
|
| - NavigationTracker tracker(&client);
|
| - bool is_pending;
|
| - ASSERT_EQ(kUnknownError,
|
| - tracker.IsPendingNavigation("f", &is_pending).code());
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -class DeterminingLoadStateDevToolsClient : public StubDevToolsClient {
|
| - public:
|
| - DeterminingLoadStateDevToolsClient(
|
| - bool is_loading,
|
| - const std::string& send_event_first,
|
| - base::DictionaryValue* send_event_first_params)
|
| - : is_loading_(is_loading),
|
| - send_event_first_(send_event_first),
|
| - send_event_first_params_(send_event_first_params) {}
|
| -
|
| - virtual ~DeterminingLoadStateDevToolsClient() {}
|
| -
|
| - virtual Status SendCommandAndGetResult(
|
| - const std::string& method,
|
| - const base::DictionaryValue& params,
|
| - scoped_ptr<base::DictionaryValue>* result) OVERRIDE {
|
| - if (send_event_first_.length()) {
|
| - listeners_.front()->OnEvent(send_event_first_, *send_event_first_params_);
|
| - }
|
| -
|
| - base::DictionaryValue result_dict;
|
| - result_dict.SetBoolean("result.value", is_loading_);
|
| - result->reset(result_dict.DeepCopy());
|
| - return Status(kOk);
|
| - }
|
| -
|
| - private:
|
| - bool is_loading_;
|
| - std::string send_event_first_;
|
| - base::DictionaryValue* send_event_first_params_;
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -TEST(NavigationTracker, UnknownStateForcesStart) {
|
| - base::DictionaryValue params;
|
| - DeterminingLoadStateDevToolsClient client(true, "", ¶ms);
|
| - NavigationTracker tracker(&client);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", true));
|
| -}
|
| -
|
| -TEST(NavigationTracker, UnknownStateForcesStartReceivesStop) {
|
| - base::DictionaryValue params;
|
| - DeterminingLoadStateDevToolsClient client(
|
| - true, "Page.frameStoppedLoading", ¶ms);
|
| - NavigationTracker tracker(&client);
|
| - ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, "f", false));
|
| -}
|
|
|