From 468a82d9381d6787d603b42b6427a65b35694b90 Mon Sep 17 00:00:00 2001 From: "estade@chromium.org" Date: Fri, 2 Oct 2009 01:47:00 +0000 Subject: Adding new files for http://codereview.chromium.org/245036/show The trybots are failing that patch, so I am going to try checking in these changes separately, then try the rest of the patch. TBR=nsylvain Review URL: http://codereview.chromium.org/249064 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27820 0039d316-1c4b-4281-b951-d872f2087c98 --- .../data/fast_shutdown/on_before_unloader.html | 1 + chrome/test/data/fast_shutdown/on_unloader.html | 9 +++++ chrome/test/ui/fast_shutdown_uitest.cc | 46 ++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 chrome/test/data/fast_shutdown/on_before_unloader.html create mode 100644 chrome/test/data/fast_shutdown/on_unloader.html create mode 100644 chrome/test/ui/fast_shutdown_uitest.cc (limited to 'chrome/test') diff --git a/chrome/test/data/fast_shutdown/on_before_unloader.html b/chrome/test/data/fast_shutdown/on_before_unloader.html new file mode 100644 index 0000000..fe6580d --- /dev/null +++ b/chrome/test/data/fast_shutdown/on_before_unloader.html @@ -0,0 +1 @@ + diff --git a/chrome/test/data/fast_shutdown/on_unloader.html b/chrome/test/data/fast_shutdown/on_unloader.html new file mode 100644 index 0000000..7e7d19b --- /dev/null +++ b/chrome/test/data/fast_shutdown/on_unloader.html @@ -0,0 +1,9 @@ + + + diff --git a/chrome/test/ui/fast_shutdown_uitest.cc b/chrome/test/ui/fast_shutdown_uitest.cc new file mode 100644 index 0000000..286f6d2 --- /dev/null +++ b/chrome/test/ui/fast_shutdown_uitest.cc @@ -0,0 +1,46 @@ +// Copyright (c) 2009 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 "app/message_box_flags.h" +#include "base/gfx/rect.h" +#include "chrome/app/chrome_dll_resource.h" +#include "chrome/browser/view_ids.h" +#include "chrome/test/ui/ui_test.h" +#include "chrome/test/automation/automation_proxy.h" +#include "chrome/test/automation/browser_proxy.h" +#include "chrome/test/automation/tab_proxy.h" +#include "chrome/test/automation/window_proxy.h" +#include "views/event.h" + +class FastShutdown : public UITest { +}; + +// This tests for a previous error where uninstalling an onbeforeunload +// handler would enable fast shutdown even if an onUnload handler still +// existed. +TEST_F(FastShutdown, SlowTermination) { + scoped_refptr browser(automation()->GetBrowserWindow(0)); + ASSERT_TRUE(browser.get()); + scoped_refptr window(browser->GetWindow()); + ASSERT_TRUE(window.get()); + + // This page has an unload handler. + GURL url = GetTestUrl(L"fast_shutdown", L"on_unloader.html"); + NavigateToURLBlockUntilNavigationsComplete(url, 1); + gfx::Rect bounds; + ASSERT_TRUE(window->GetViewBounds(VIEW_ID_TAB_CONTAINER, &bounds, true)); + // This click will launch a popup which has a before unload handler. + ASSERT_TRUE(window->SimulateOSClick(bounds.CenterPoint(), + views::Event::EF_LEFT_BUTTON_DOWN)); + ASSERT_TRUE(browser->WaitForTabCountToBecome(2, action_timeout_ms())); + // Close the tab, removing the one and only before unload handler. + scoped_refptr tab(browser->GetTab(1)); + ASSERT_TRUE(tab->Close(true)); + + // Close the browser. We should launch the unload handler, which is an + // alert(). + ASSERT_TRUE(browser->ApplyAccelerator(IDC_CLOSE_WINDOW)); + ASSERT_TRUE(automation()->WaitForAppModalDialog(action_timeout_ms())); + automation()->ClickAppModalDialogButton(MessageBoxFlags::DIALOGBUTTON_OK); +} -- cgit v1.1