diff options
author | scr@chromium.org <scr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-30 06:28:50 +0000 |
---|---|---|
committer | scr@chromium.org <scr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-30 06:28:50 +0000 |
commit | 1582387e898ffc722d7f34768e257d1d25b9cde8 (patch) | |
tree | 1d0d81267afeac63c95d03dd4f9d1fd0fe1bd25b /chrome/test/data/webui | |
parent | b945425ee28d986f665f9a51ceadbc787ddef0e2 (diff) | |
download | chromium_src-1582387e898ffc722d7f34768e257d1d25b9cde8.zip chromium_src-1582387e898ffc722d7f34768e257d1d25b9cde8.tar.gz chromium_src-1582387e898ffc722d7f34768e257d1d25b9cde8.tar.bz2 |
Allow WebUI Tests to use preLoad in HtmlDialogUI.
- Refactor JsInjectionReadyObserver to its own header/impl files.
- Call JsInjectionReadyObserver::OnJsInjectionReady when the dialog
is shown.
- Move preamble generation to after the AddLibrary calls & generate setting
of preload_* variables rather than passing in browsePreload and
browsePrintPreload.
- Modify tests that show HtmlDialogUI to show the dialogs using preamble
rather than SetUpOnMainThread so AddLibrary & set_preload_* calls precede
showing the dialog (so preload is called against the appropriate fixture).
R=flackr@chromium.org, jhawkins@chromium.org
BUG=104371
TEST=browser_tests --gtest_filter=Hung*.* -AND- CertificateViewerUITest*.*
Review URL: http://codereview.chromium.org/8586009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112146 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/data/webui')
-rw-r--r-- | chrome/test/data/webui/async_gen.cc | 35 | ||||
-rw-r--r-- | chrome/test/data/webui/async_gen.h (renamed from chrome/test/data/webui/async_gen-inl.h) | 34 | ||||
-rw-r--r-- | chrome/test/data/webui/async_gen.js | 16 | ||||
-rw-r--r-- | chrome/test/data/webui/certificate_viewer_dialog_test.js | 8 | ||||
-rw-r--r-- | chrome/test/data/webui/certificate_viewer_ui_test-inl.h | 10 | ||||
-rw-r--r-- | chrome/test/data/webui/hung_renderer_dialog_test.js | 7 | ||||
-rw-r--r-- | chrome/test/data/webui/hung_renderer_dialog_ui_test-inl.h | 11 | ||||
-rw-r--r-- | chrome/test/data/webui/print_preview.cc | 15 | ||||
-rw-r--r-- | chrome/test/data/webui/print_preview.h | 25 | ||||
-rw-r--r-- | chrome/test/data/webui/print_preview.js | 16 | ||||
-rw-r--r-- | chrome/test/data/webui/test_api.js | 3 |
11 files changed, 121 insertions, 59 deletions
diff --git a/chrome/test/data/webui/async_gen.cc b/chrome/test/data/webui/async_gen.cc new file mode 100644 index 0000000..1291bbd --- /dev/null +++ b/chrome/test/data/webui/async_gen.cc @@ -0,0 +1,35 @@ +// Copyright (c) 2011 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 "chrome/test/data/webui/async_gen.h" + +#include "base/bind.h" +#include "base/bind_helpers.h" +#include "base/values.h" + +WebUIBrowserAsyncGenTest::WebUIBrowserAsyncGenTest() {} + +WebUIBrowserAsyncGenTest::~WebUIBrowserAsyncGenTest() {} + +WebUIBrowserAsyncGenTest::AsyncWebUIMessageHandler:: + AsyncWebUIMessageHandler() {} + +WebUIBrowserAsyncGenTest::AsyncWebUIMessageHandler:: + ~AsyncWebUIMessageHandler() {} + +void WebUIBrowserAsyncGenTest::AsyncWebUIMessageHandler::HandleCallJS( + const base::ListValue* list_value) { + std::string call_js; + ASSERT_TRUE(list_value->GetString(0, &call_js)); + web_ui_->CallJavascriptFunction(call_js); +} + +void WebUIBrowserAsyncGenTest::AsyncWebUIMessageHandler::RegisterMessages() { + web_ui_->RegisterMessageCallback( + "callJS", base::Bind(&AsyncWebUIMessageHandler::HandleCallJS, + base::Unretained(this))); + web_ui_->RegisterMessageCallback( + "tearDown", base::Bind(&AsyncWebUIMessageHandler::HandleTearDown, + base::Unretained(this))); +} diff --git a/chrome/test/data/webui/async_gen-inl.h b/chrome/test/data/webui/async_gen.h index fae1af4..4bc70df 100644 --- a/chrome/test/data/webui/async_gen-inl.h +++ b/chrome/test/data/webui/async_gen.h @@ -1,13 +1,17 @@ // Copyright (c) 2011 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. +#ifndef CHROME_TEST_DATA_WEBUI_ASYNC_GEN_H_ +#define CHROME_TEST_DATA_WEBUI_ASYNC_GEN_H_ +#pragma once -#include "base/bind.h" -#include "base/bind_helpers.h" -#include "base/values.h" #include "chrome/browser/ui/webui/web_ui_browsertest.h" #include "testing/gmock/include/gmock/gmock.h" +namespace base { +class ListValue; +} // namespace base + // C++ support class for javascript-generated asynchronous tests. class WebUIBrowserAsyncGenTest : public WebUIBrowserTest { public: @@ -20,23 +24,13 @@ class WebUIBrowserAsyncGenTest : public WebUIBrowserTest { AsyncWebUIMessageHandler(); ~AsyncWebUIMessageHandler(); - MOCK_METHOD1(HandleTornDown, void(const base::ListValue*)); + MOCK_METHOD1(HandleTearDown, void(const base::ListValue*)); private: - void HandleCallJS(const base::ListValue* list_value) { - std::string call_js; - ASSERT_TRUE(list_value->GetString(0, &call_js)); - web_ui_->CallJavascriptFunction(call_js); - } - - virtual void RegisterMessages() OVERRIDE { - web_ui_->RegisterMessageCallback( - "callJS", base::Bind(&AsyncWebUIMessageHandler::HandleCallJS, - base::Unretained(this))); - web_ui_->RegisterMessageCallback( - "tornDown", base::Bind(&AsyncWebUIMessageHandler::HandleTornDown, - base::Unretained(this))); - } + void HandleCallJS(const base::ListValue* list_value); + + // WebUIMessageHandler implementation. + virtual void RegisterMessages() OVERRIDE; }; // Handler for this test fixture. @@ -50,8 +44,10 @@ class WebUIBrowserAsyncGenTest : public WebUIBrowserTest { virtual void SetUpOnMainThread() OVERRIDE { WebUIBrowserTest::SetUpOnMainThread(); - EXPECT_CALL(message_handler_, HandleTornDown(::testing::_)); + EXPECT_CALL(message_handler_, HandleTearDown(::testing::_)); } DISALLOW_COPY_AND_ASSIGN(WebUIBrowserAsyncGenTest); }; + +#endif // CHROME_TEST_DATA_WEBUI_ASYNC_GEN_H_ diff --git a/chrome/test/data/webui/async_gen.js b/chrome/test/data/webui/async_gen.js index 13929b8..8b8078f 100644 --- a/chrome/test/data/webui/async_gen.js +++ b/chrome/test/data/webui/async_gen.js @@ -23,7 +23,7 @@ WebUIBrowserAsyncGenTest.prototype = { expectFalse(this.tornDown); expectFalse(this.running); this.tornDown = true; - chrome.send('tornDown'); + chrome.send('tearDown'); testing.Test.prototype.tearDown.call(this); }, @@ -46,18 +46,8 @@ WebUIBrowserAsyncGenTest.prototype = { running: false, }; -// Include the bulk of c++ code. -GEN('#include "chrome/test/data/webui/async_gen-inl.h"'); -GEN(''); - -// Constructors and destructors must be provided in .cc to prevent clang errors. -GEN('WebUIBrowserAsyncGenTest::WebUIBrowserAsyncGenTest() {}'); -GEN('WebUIBrowserAsyncGenTest::~WebUIBrowserAsyncGenTest() {}'); -GEN('WebUIBrowserAsyncGenTest::AsyncWebUIMessageHandler::'); -GEN(' AsyncWebUIMessageHandler() {}'); -GEN('WebUIBrowserAsyncGenTest::AsyncWebUIMessageHandler::'); -GEN(' ~AsyncWebUIMessageHandler() {}'); -GEN(''); +// Include the c++ test fixture. +GEN('#include "chrome/test/data/webui/async_gen.h"'); /** * Will be set to continuation test #1. diff --git a/chrome/test/data/webui/certificate_viewer_dialog_test.js b/chrome/test/data/webui/certificate_viewer_dialog_test.js index 13cac46..fc22d6d 100644 --- a/chrome/test/data/webui/certificate_viewer_dialog_test.js +++ b/chrome/test/data/webui/certificate_viewer_dialog_test.js @@ -17,6 +17,14 @@ CertificateViewerUITest.prototype = { * @override */ typedefCppFixture: 'CertificateViewerUITest', + + /** + * Show the certificate viewer dialog. + */ + testGenPreamble: function() { + GEN('ShowCertificateViewer();'); + }, + }; /** diff --git a/chrome/test/data/webui/certificate_viewer_ui_test-inl.h b/chrome/test/data/webui/certificate_viewer_ui_test-inl.h index 0e5ef75..8ec38cc 100644 --- a/chrome/test/data/webui/certificate_viewer_ui_test-inl.h +++ b/chrome/test/data/webui/certificate_viewer_ui_test-inl.h @@ -22,11 +22,11 @@ class CertificateViewerUITest : public WebUIBrowserTest { CertificateViewerUITest(); virtual ~CertificateViewerUITest(); - private: - virtual void SetUpOnMainThread() OVERRIDE; + protected: + void ShowCertificateViewer(); }; -void CertificateViewerUITest::SetUpOnMainThread() { +void CertificateViewerUITest::ShowCertificateViewer() { // Enable more WebUI to use WebUI certificate viewer. ChromeWebUI::OverrideMoreWebUI(true); @@ -37,8 +37,8 @@ void CertificateViewerUITest::SetUpOnMainThread() { ASSERT_TRUE(browser()); ASSERT_TRUE(browser()->window()); - TestHtmlDialogObserver dialog_observer; - ShowCertificateViewer(browser()->window()->GetNativeHandle(), google_cert); + TestHtmlDialogObserver dialog_observer(this); + ::ShowCertificateViewer(browser()->window()->GetNativeHandle(), google_cert); WebUI* webui = dialog_observer.GetWebUI(); webui->tab_contents()->render_view_host()->SetWebUIProperty( "expectedUrl", chrome::kChromeUICertificateViewerURL); diff --git a/chrome/test/data/webui/hung_renderer_dialog_test.js b/chrome/test/data/webui/hung_renderer_dialog_test.js index 6fdb211..5e75ee3 100644 --- a/chrome/test/data/webui/hung_renderer_dialog_test.js +++ b/chrome/test/data/webui/hung_renderer_dialog_test.js @@ -17,6 +17,13 @@ HungRendererDialogUITest.prototype = { * @override */ typedefCppFixture: 'HungRendererDialogUITest', + + /** + * Show the hung renderer dialog. + */ + testGenPreamble: function() { + GEN('ShowHungRendererDialogInternal();'); + }, }; // Include the bulk of c++ code. diff --git a/chrome/test/data/webui/hung_renderer_dialog_ui_test-inl.h b/chrome/test/data/webui/hung_renderer_dialog_ui_test-inl.h index 6811805..d78ac873 100644 --- a/chrome/test/data/webui/hung_renderer_dialog_ui_test-inl.h +++ b/chrome/test/data/webui/hung_renderer_dialog_ui_test-inl.h @@ -18,21 +18,21 @@ class HungRendererDialogUITest : public WebUIBrowserTest { HungRendererDialogUITest(); virtual ~HungRendererDialogUITest(); - private: - virtual void SetUpOnMainThread() OVERRIDE; + protected: + void ShowHungRendererDialogInternal(); }; -void HungRendererDialogUITest::SetUpOnMainThread() { +void HungRendererDialogUITest::ShowHungRendererDialogInternal() { // Force the flag so that we will use the WebUI version of the Dialog. ChromeWebUI::OverrideMoreWebUI(true); // Choose which tab contents to report as hung. In this case, the default // tab contents will be about:blank. - ASSERT_TRUE(browser() != NULL); + ASSERT_TRUE(browser()); TabContents* tab_contents = browser()->GetSelectedTabContents(); // The TestHtmlDialogObserver will catch our dialog when it gets created. - TestHtmlDialogObserver dialog_observer; + TestHtmlDialogObserver dialog_observer(this); // Show a disabled Hung Renderer Dialog that won't kill processes or restart // hang timers. @@ -49,5 +49,4 @@ void HungRendererDialogUITest::SetUpOnMainThread() { // Tell the test which WebUI instance we are dealing with and complete // initialization of this test. SetWebUIInstance(webui); - WebUIBrowserTest::SetUpOnMainThread(); } diff --git a/chrome/test/data/webui/print_preview.cc b/chrome/test/data/webui/print_preview.cc new file mode 100644 index 0000000..becc763 --- /dev/null +++ b/chrome/test/data/webui/print_preview.cc @@ -0,0 +1,15 @@ +// Copyright (c) 2011 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 "chrome/test/data/webui/print_preview.h" + +PrintPreviewWebUITest::PrintPreviewWebUITest() {} + +PrintPreviewWebUITest::~PrintPreviewWebUITest() {} + +// Always print preview for testing. +void PrintPreviewWebUITest::SetUpCommandLine(CommandLine* command_line) { + WebUIBrowserTest::SetUpCommandLine(command_line); + command_line->AppendSwitch(switches::kEnablePrintPreview); +} diff --git a/chrome/test/data/webui/print_preview.h b/chrome/test/data/webui/print_preview.h new file mode 100644 index 0000000..2bc4600 --- /dev/null +++ b/chrome/test/data/webui/print_preview.h @@ -0,0 +1,25 @@ +// Copyright (c) 2011 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. + +#ifndef CHROME_TEST_DATA_WEBUI_PRINT_PREVIEW_H_ +#define CHROME_TEST_DATA_WEBUI_PRINT_PREVIEW_H_ +#pragma once + +#include "base/command_line.h" +#include "chrome/browser/ui/webui/web_ui_browsertest.h" +#include "chrome/common/chrome_switches.h" + +class PrintPreviewWebUITest : public WebUIBrowserTest { + public: + PrintPreviewWebUITest(); + virtual ~PrintPreviewWebUITest(); + + private: + // WebUIBrowserTest implementation. + virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE; + + DISALLOW_COPY_AND_ASSIGN(PrintPreviewWebUITest); +}; + +#endif // CHROME_TEST_DATA_WEBUI_PRINT_PREVIEW_H_ diff --git a/chrome/test/data/webui/print_preview.js b/chrome/test/data/webui/print_preview.js index 530211e..690dfc1 100644 --- a/chrome/test/data/webui/print_preview.js +++ b/chrome/test/data/webui/print_preview.js @@ -163,21 +163,7 @@ PrintPreviewWebUITest.prototype = { }, }; -GEN('#include "base/command_line.h"'); -GEN('#include "chrome/browser/ui/webui/web_ui_browsertest.h"'); -GEN('#include "chrome/common/chrome_switches.h"'); -GEN(''); -GEN('class PrintPreviewWebUITest'); -GEN(' : public WebUIBrowserTest {'); -GEN(' protected:'); -GEN(' // WebUIBrowserTest override.'); -GEN(' virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {'); -GEN(' WebUIBrowserTest::SetUpCommandLine(command_line);'); -GEN(' command_line->AppendSwitch(switches::kEnablePrintPreview);'); -GEN(' }'); -GEN(''); -GEN('};'); -GEN(''); +GEN('#include "chrome/test/data/webui/print_preview.h"'); /** * The expected length of the |printer-list| element. diff --git a/chrome/test/data/webui/test_api.js b/chrome/test/data/webui/test_api.js index f5dbee4..8717ebe 100644 --- a/chrome/test/data/webui/test_api.js +++ b/chrome/test/data/webui/test_api.js @@ -69,7 +69,8 @@ var testing = {}; /** * When set to a function, will be called in the context of the test - * generation inside the function, and before any generated C++. + * generation inside the function, after AddLibrary calls and before + * generated C++. * @type {function(string,string)} */ testGenPreamble: null, |