summaryrefslogtreecommitdiffstats
path: root/chrome/test/data/webui
diff options
context:
space:
mode:
authorscr@chromium.org <scr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-30 06:28:50 +0000
committerscr@chromium.org <scr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-30 06:28:50 +0000
commit1582387e898ffc722d7f34768e257d1d25b9cde8 (patch)
tree1d0d81267afeac63c95d03dd4f9d1fd0fe1bd25b /chrome/test/data/webui
parentb945425ee28d986f665f9a51ceadbc787ddef0e2 (diff)
downloadchromium_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.cc35
-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.js16
-rw-r--r--chrome/test/data/webui/certificate_viewer_dialog_test.js8
-rw-r--r--chrome/test/data/webui/certificate_viewer_ui_test-inl.h10
-rw-r--r--chrome/test/data/webui/hung_renderer_dialog_test.js7
-rw-r--r--chrome/test/data/webui/hung_renderer_dialog_ui_test-inl.h11
-rw-r--r--chrome/test/data/webui/print_preview.cc15
-rw-r--r--chrome/test/data/webui/print_preview.h25
-rw-r--r--chrome/test/data/webui/print_preview.js16
-rw-r--r--chrome/test/data/webui/test_api.js3
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,