| Index: chrome/browser/automation/automation_tab_helper_browsertest.cc
|
| diff --git a/chrome/browser/automation/automation_tab_helper_browsertest.cc b/chrome/browser/automation/automation_tab_helper_browsertest.cc
|
| deleted file mode 100644
|
| index 44f6247db5ed6e8e54f736249bb8907800c5d70f..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/automation/automation_tab_helper_browsertest.cc
|
| +++ /dev/null
|
| @@ -1,215 +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/files/file_path.h"
|
| -#include "base/path_service.h"
|
| -#include "base/string16.h"
|
| -#include "base/stringprintf.h"
|
| -#include "base/utf_string_conversions.h"
|
| -#include "chrome/browser/automation/automation_tab_helper.h"
|
| -#include "chrome/browser/automation/mock_tab_event_observer.h"
|
| -#include "chrome/browser/ui/browser.h"
|
| -#include "chrome/browser/ui/tabs/tab_strip_model.h"
|
| -#include "chrome/common/chrome_notification_types.h"
|
| -#include "chrome/common/chrome_paths.h"
|
| -#include "chrome/common/url_constants.h"
|
| -#include "chrome/test/base/in_process_browser_test.h"
|
| -#include "chrome/test/base/ui_test_utils.h"
|
| -#include "content/public/browser/notification_details.h"
|
| -#include "content/public/browser/notification_observer.h"
|
| -#include "content/public/browser/notification_registrar.h"
|
| -#include "content/public/browser/notification_service.h"
|
| -#include "content/public/browser/notification_source.h"
|
| -#include "content/public/browser/render_view_host.h"
|
| -#include "content/public/browser/web_contents.h"
|
| -#include "content/public/test/browser_test_utils.h"
|
| -#include "net/base/net_util.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using testing::_;
|
| -
|
| -class MockNotificationObserver : public content::NotificationObserver {
|
| - public:
|
| - MockNotificationObserver() { }
|
| - virtual ~MockNotificationObserver() { }
|
| -
|
| - MOCK_METHOD3(Observe, void(int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details));
|
| -
|
| - void Register(int type, const content::NotificationSource& source) {
|
| - registrar_.Add(this, type, source);
|
| - }
|
| -
|
| - private:
|
| - content::NotificationRegistrar registrar_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(MockNotificationObserver);
|
| -};
|
| -
|
| -class AutomationTabHelperBrowserTest : public InProcessBrowserTest {
|
| - public:
|
| - AutomationTabHelperBrowserTest() {}
|
| - virtual ~AutomationTabHelperBrowserTest() {}
|
| -
|
| - void SetUpInProcessBrowserTestFixture() {
|
| - EXPECT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_));
|
| - test_data_dir_ = test_data_dir_.AppendASCII("automation");
|
| - }
|
| -
|
| - // Add default expectations for a client redirection initiated by script,
|
| - // and quit the message loop when the redirect has completed. This expects
|
| - // that the tab receives news of the redirect before the script returns.
|
| - void ExpectClientRedirectAndBreak(
|
| - MockTabEventObserver* mock_tab_observer,
|
| - MockNotificationObserver* mock_notification_observer) {
|
| - mock_notification_observer->Register(
|
| - content::NOTIFICATION_DOM_OPERATION_RESPONSE,
|
| - content::NotificationService::AllSources());
|
| -
|
| - testing::InSequence expect_in_sequence;
|
| - EXPECT_CALL(*mock_tab_observer, OnFirstPendingLoad(_));
|
| - EXPECT_CALL(*mock_notification_observer, Observe(
|
| - testing::Eq(
|
| - static_cast<int>(content::NOTIFICATION_DOM_OPERATION_RESPONSE)),
|
| - _, _));
|
| - EXPECT_CALL(*mock_tab_observer, OnNoMorePendingLoads(_))
|
| - .WillOnce(testing::InvokeWithoutArgs(
|
| - MessageLoopForUI::current(), &MessageLoop::Quit));
|
| - }
|
| -
|
| - // Executes javascript to execute a given test case found in the current
|
| - // page's script. If |wait_for_response| is true, this method will not
|
| - // return until the javascript has been executed.
|
| - // Use with [ASSERT|EXPECT]_NO_FATAL_FAILURE.
|
| - void RunTestCaseInJavaScript(int test_case_number, bool wait_for_response) {
|
| - std::string script = base::StringPrintf("runTestCase(%d);",
|
| - test_case_number);
|
| - content::RenderViewHost* host = browser()->tab_strip_model()->
|
| - GetActiveWebContents()->GetRenderViewHost();
|
| - if (wait_for_response) {
|
| - ASSERT_TRUE(content::ExecuteScript(host, script));
|
| - } else {
|
| - script += "window.domAutomationController.setAutomationId(0);"
|
| - "window.domAutomationController.send(0);";
|
| - host->ExecuteJavascriptInWebFrame(string16(), ASCIIToUTF16(script));
|
| - }
|
| - }
|
| -
|
| - // Returns the |AutomationTabHelper| for the first browser's first tab.
|
| - AutomationTabHelper* tab_helper() {
|
| - return AutomationTabHelper::FromWebContents(
|
| - browser()->tab_strip_model()->GetWebContentsAt(0));
|
| - }
|
| -
|
| - protected:
|
| - base::FilePath test_data_dir_;
|
| -};
|
| -
|
| -IN_PROC_BROWSER_TEST_F(AutomationTabHelperBrowserTest, FormSubmission) {
|
| - ui_test_utils::NavigateToURL(browser(), net::FilePathToFileURL(
|
| - test_data_dir_.AppendASCII("client_redirects.html")));
|
| -
|
| - MockNotificationObserver mock_notification_observer;
|
| - MockTabEventObserver mock_observer(tab_helper());
|
| -
|
| - ExpectClientRedirectAndBreak(&mock_observer, &mock_notification_observer);
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(RunTestCaseInJavaScript(1, false));
|
| - content::RunMessageLoop();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(AutomationTabHelperBrowserTest,
|
| - CancelFormSubmission) {
|
| - ui_test_utils::NavigateToURL(browser(), net::FilePathToFileURL(
|
| - test_data_dir_.AppendASCII("client_redirects.html")));
|
| -
|
| - MockNotificationObserver mock_notification_observer;
|
| - MockTabEventObserver mock_observer(tab_helper());
|
| -
|
| - testing::InSequence expect_in_sequence;
|
| - EXPECT_CALL(mock_observer, OnFirstPendingLoad(_)).Times(0);
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(RunTestCaseInJavaScript(2, true));
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(AutomationTabHelperBrowserTest,
|
| - JsRedirectToSite) {
|
| - ui_test_utils::NavigateToURL(browser(), net::FilePathToFileURL(
|
| - test_data_dir_.AppendASCII("client_redirects.html")));
|
| -
|
| - MockNotificationObserver mock_notification_observer;
|
| - MockTabEventObserver mock_observer(tab_helper());
|
| -
|
| - ExpectClientRedirectAndBreak(&mock_observer, &mock_notification_observer);
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(RunTestCaseInJavaScript(3, false));
|
| - content::RunMessageLoop();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(AutomationTabHelperBrowserTest,
|
| - JsRedirectToUnknownSite) {
|
| - ui_test_utils::NavigateToURL(browser(), net::FilePathToFileURL(
|
| - test_data_dir_.AppendASCII("client_redirects.html")));
|
| -
|
| - MockNotificationObserver mock_notification_observer;
|
| - MockTabEventObserver mock_observer(tab_helper());
|
| -
|
| - ExpectClientRedirectAndBreak(&mock_observer, &mock_notification_observer);
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(RunTestCaseInJavaScript(4, false));
|
| - content::RunMessageLoop();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(AutomationTabHelperBrowserTest,
|
| - MetaTagRedirect) {
|
| - MockTabEventObserver mock_observer(tab_helper());
|
| -
|
| - testing::InSequence expect_in_sequence;
|
| - EXPECT_CALL(mock_observer, OnFirstPendingLoad(_));
|
| - EXPECT_CALL(mock_observer, OnNoMorePendingLoads(_));
|
| -
|
| - ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
|
| - browser(),
|
| - net::FilePathToFileURL(test_data_dir_.AppendASCII("meta_redirect.html")),
|
| - 2);
|
| -}
|
| -
|
| -// Tests that the load stop event occurs after the window onload handler.
|
| -IN_PROC_BROWSER_TEST_F(AutomationTabHelperBrowserTest,
|
| - LoadStopComesAfterOnLoad) {
|
| - MockNotificationObserver mock_notification_observer;
|
| - mock_notification_observer.Register(
|
| - content::NOTIFICATION_DOM_OPERATION_RESPONSE,
|
| - content::NotificationService::AllSources());
|
| - MockTabEventObserver mock_tab_observer(tab_helper());
|
| -
|
| - EXPECT_CALL(mock_tab_observer, OnFirstPendingLoad(_));
|
| - {
|
| - testing::InSequence expect_in_sequence;
|
| - EXPECT_CALL(mock_notification_observer, Observe(
|
| - testing::Eq(
|
| - static_cast<int>(content::NOTIFICATION_DOM_OPERATION_RESPONSE)),
|
| - _, _));
|
| - EXPECT_CALL(mock_tab_observer, OnNoMorePendingLoads(_));
|
| - }
|
| -
|
| - ui_test_utils::NavigateToURL(browser(), net::FilePathToFileURL(
|
| - test_data_dir_.AppendASCII("sends_message_on_load.html")));
|
| -}
|
| -
|
| -// Tests that a crashed tab reports that it has stopped loading.
|
| -IN_PROC_BROWSER_TEST_F(AutomationTabHelperBrowserTest,
|
| - CrashedTabStopsLoading) {
|
| - MockTabEventObserver mock_tab_observer(tab_helper());
|
| -
|
| - testing::InSequence expect_in_sequence;
|
| - EXPECT_CALL(mock_tab_observer, OnFirstPendingLoad(_));
|
| - EXPECT_CALL(mock_tab_observer, OnNoMorePendingLoads(_));
|
| -
|
| - ui_test_utils::NavigateToURL(browser(), GURL(content::kChromeUICrashURL));
|
| -}
|
|
|