| Index: chrome/browser/ui/webui/web_ui_browsertest.cc
|
| diff --git a/chrome/browser/ui/webui/web_ui_browsertest.cc b/chrome/browser/ui/webui/web_ui_browsertest.cc
|
| index b6e5da16b420471be82111e6392b2b8a920792ef..8fda3ba0e8609fb495d25ba33d72792b1b3b486e 100644
|
| --- a/chrome/browser/ui/webui/web_ui_browsertest.cc
|
| +++ b/chrome/browser/ui/webui/web_ui_browsertest.cc
|
| @@ -12,9 +12,10 @@
|
| #include "base/values.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/webui/chrome_web_ui.h"
|
| -#include "chrome/browser/ui/webui/test_chrome_web_ui_factory.h"
|
| +#include "chrome/browser/ui/browser_navigator.h"
|
| #include "chrome/common/chrome_paths.h"
|
| #include "chrome/common/url_constants.h"
|
| +#include "chrome/test/test_tab_strip_model_observer.h"
|
| #include "chrome/test/ui_test_utils.h"
|
| #include "content/browser/tab_contents/tab_contents.h"
|
| #include "testing/gtest/include/gtest/gtest-spi.h"
|
| @@ -22,6 +23,7 @@
|
|
|
| namespace {
|
|
|
| +const FilePath::CharType kMockJS[] = FILE_PATH_LITERAL("mock4js.js");
|
| const FilePath::CharType kWebUILibraryJS[] = FILE_PATH_LITERAL("test_api.js");
|
| const FilePath::CharType kWebUITestFolder[] = FILE_PATH_LITERAL("webui");
|
| base::LazyInstance<std::vector<std::string> > error_messages_(
|
| @@ -69,6 +71,14 @@ bool WebUIBrowserTest::RunJavascriptFunction(
|
| return RunJavascriptUsingHandler(function_name, function_arguments, false);
|
| }
|
|
|
| +bool WebUIBrowserTest::RunJavascriptTestF(const std::string& test_fixture,
|
| + const std::string& test_name) {
|
| + ConstValueVector args;
|
| + args.push_back(Value::CreateStringValue(test_fixture));
|
| + args.push_back(Value::CreateStringValue(test_name));
|
| + return RunJavascriptTest("RUN_TEST_F", args);
|
| +}
|
| +
|
| bool WebUIBrowserTest::RunJavascriptTest(const std::string& test_name) {
|
| return RunJavascriptTest(test_name, ConstValueVector());
|
| }
|
| @@ -95,12 +105,14 @@ bool WebUIBrowserTest::RunJavascriptTest(
|
| return RunJavascriptUsingHandler(test_name, test_arguments, true);
|
| }
|
|
|
| -void WebUIBrowserTest::PreLoadJavascriptLibraries(bool override_chrome_send) {
|
| +void WebUIBrowserTest::PreLoadJavascriptLibraries(
|
| + const std::string& preload_test_fixture,
|
| + const std::string& preload_test_name) {
|
| ASSERT_FALSE(libraries_preloaded_);
|
| - scoped_ptr<Value> override_chrome_send_arg(
|
| - Value::CreateBooleanValue(override_chrome_send));
|
| - RunJavascriptFunction("preloadJavascriptLibraries",
|
| - *override_chrome_send_arg);
|
| + ConstValueVector args;
|
| + args.push_back(Value::CreateStringValue(preload_test_fixture));
|
| + args.push_back(Value::CreateStringValue(preload_test_name));
|
| + RunJavascriptFunction("preloadJavascriptLibraries", args);
|
| libraries_preloaded_ = true;
|
| }
|
|
|
| @@ -109,6 +121,38 @@ WebUIBrowserTest::WebUIBrowserTest()
|
| libraries_preloaded_(false),
|
| skip_test_(false) {}
|
|
|
| +void WebUIBrowserTest::BrowsePreload(const GURL& browse_to,
|
| + const std::string& preload_test_fixture,
|
| + const std::string& preload_test_name) {
|
| + // Remember for callback OnLoadStart().
|
| + preload_test_fixture_ = preload_test_fixture;
|
| + preload_test_name_ = preload_test_name;
|
| +
|
| + TestNavigationObserver navigation_observer(
|
| + browser()->GetSelectedTabContentsWrapper(), this);
|
| + browser::NavigateParams params(
|
| + browser(), GURL(browse_to), PageTransition::TYPED);
|
| + params.disposition = CURRENT_TAB;
|
| + browser::Navigate(¶ms);
|
| + navigation_observer.WaitForObservation();
|
| +}
|
| +
|
| +void WebUIBrowserTest::BrowsePrintPreload(
|
| + const GURL& browse_to,
|
| + const std::string& preload_test_fixture,
|
| + const std::string& preload_test_name) {
|
| + // Remember for callback OnLoadStart().
|
| + preload_test_fixture_ = preload_test_fixture;
|
| + preload_test_name_ = preload_test_name;
|
| +
|
| + ui_test_utils::NavigateToURL(browser(), browse_to);
|
| +
|
| + TestTabStripModelObserver tabstrip_observer(
|
| + browser()->tabstrip_model(), this);
|
| + browser()->Print();
|
| + tabstrip_observer.WaitForObservation();
|
| +}
|
| +
|
| void WebUIBrowserTest::SetUpInProcessBrowserTestFixture() {
|
| ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_directory_));
|
| test_data_directory_ = test_data_directory_.Append(kWebUITestFolder);
|
| @@ -118,6 +162,13 @@ void WebUIBrowserTest::SetUpInProcessBrowserTestFixture() {
|
| PathService::Get(chrome::FILE_RESOURCES_PACK, &resources_pack_path);
|
| ResourceBundle::AddDataPackToSharedInstance(resources_pack_path);
|
|
|
| + FilePath mockPath;
|
| + ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &mockPath));
|
| + mockPath = mockPath.AppendASCII("chrome");
|
| + mockPath = mockPath.AppendASCII("third_party");
|
| + mockPath = mockPath.AppendASCII("mock4js");
|
| + mockPath = mockPath.Append(kMockJS);
|
| + AddLibrary(mockPath);
|
| AddLibrary(FilePath(kWebUILibraryJS));
|
| }
|
|
|
| @@ -140,14 +191,18 @@ GURL WebUIBrowserTest::WebUITestDataPathToURL(
|
| return net::FilePathToFileURL(test_path);
|
| }
|
|
|
| +// TestTabStripModelObserver::LoadStartObserver:
|
| +void WebUIBrowserTest::OnLoadStart() OVERRIDE {
|
| + PreLoadJavascriptLibraries(preload_test_fixture_, preload_test_name_);
|
| +}
|
| +
|
| void WebUIBrowserTest::BuildJavascriptLibraries(std::string* content) {
|
| ASSERT_TRUE(content != NULL);
|
| - std::string library_content, src_content;
|
| -
|
| std::vector<FilePath>::iterator user_libraries_iterator;
|
| for (user_libraries_iterator = user_libraries_.begin();
|
| user_libraries_iterator != user_libraries_.end();
|
| ++user_libraries_iterator) {
|
| + std::string library_content;
|
| if (user_libraries_iterator->IsAbsolute()) {
|
| ASSERT_TRUE(file_util::ReadFileToString(*user_libraries_iterator,
|
| &library_content));
|
| @@ -231,19 +286,6 @@ void WebUIBrowserTest::AddLibrary(const FilePath& library_path) {
|
| user_libraries_.push_back(library_path);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(WebUIBrowserTest, TestSamplePass) {
|
| - AddLibrary(FilePath(FILE_PATH_LITERAL("sample_downloads.js")));
|
| -
|
| - // Navigate to UI.
|
| - // TODO(dtseng): make accessor for subclasses to return?
|
| - ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIDownloadsURL));
|
| -
|
| - ASSERT_TRUE(RunJavascriptTest("testAssertFalse"));
|
| - ASSERT_FALSE(RunJavascriptTest("FAILS_testAssertFalse"));
|
| - ASSERT_TRUE(RunJavascriptTest("testInitialFocus"));
|
| - ASSERT_FALSE(RunJavascriptTest("testConsoleError"));
|
| -}
|
| -
|
| // According to the interface for EXPECT_FATAL_FAILURE
|
| // (http://code.google.com/p/googletest/wiki/AdvancedGuide#Catching_Failures)
|
| // the statement must be statically available. Therefore, we make a static
|
| @@ -278,48 +320,3 @@ IN_PROC_BROWSER_TEST_F(WebUIBrowserExpectFailTest, TestFailsFast) {
|
| EXPECT_FATAL_FAILURE(RunJavascriptTestNoReturn("FAILS_BogusFunctionName"),
|
| "WebUITestHandler::Observe");
|
| }
|
| -
|
| -// crbug.com/88104 - v8_shell#host doesn't build when host=="arm".
|
| -#if !defined(ARCH_CPU_ARM_FAMILY)
|
| -// This test framework is used in the generated tests, which are included
|
| -// below. WebUIBrowserTest requires being on a page which is a WebUI page. Using
|
| -// the TestChromeWebUIFactory, we use a dummy URL |kChromeTestBrowserTestPass|,
|
| -// which we force to be a WebUI page.
|
| -class WebUIBrowserTestPass
|
| - : public WebUIBrowserTest,
|
| - public TestChromeWebUIFactory::WebUIProvider {
|
| - private:
|
| - // TestChromeWebUIFactory::WebUIProvider:
|
| - virtual WebUI* NewWebUI(TabContents* tab_contents,
|
| - const GURL& url) OVERRIDE {
|
| - return new ChromeWebUI(tab_contents);
|
| - }
|
| -
|
| - // InProcessBrowserTest:
|
| - virtual void SetUpOnMainThread() OVERRIDE {
|
| - WebUIBrowserTest::SetUpOnMainThread();
|
| - ui_test_utils::NavigateToURL(browser(),
|
| - GURL(kChromeTestBrowserTestPass));
|
| - }
|
| -
|
| - virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
|
| - WebUIBrowserTest::SetUpInProcessBrowserTestFixture();
|
| - TestChromeWebUIFactory::AddFactoryOverride(
|
| - GURL(kChromeTestBrowserTestPass).host(), this);
|
| - }
|
| -
|
| - virtual void TearDownInProcessBrowserTestFixture() OVERRIDE {
|
| - WebUIBrowserTest::TearDownInProcessBrowserTestFixture();
|
| - TestChromeWebUIFactory::RemoveFactoryOverride(
|
| - GURL(kChromeTestBrowserTestPass).host());
|
| - }
|
| -
|
| - static const char kChromeTestBrowserTestPass[];
|
| -};
|
| -
|
| -const char WebUIBrowserTestPass::kChromeTestBrowserTestPass[] =
|
| - "chrome://WebUIBrowserTestPass";
|
| -
|
| -#include "js2webui/chrome/test/data/webui/sample_pass-inl.h"
|
| -
|
| -#endif // !defined(ARCH_CPU_ARM_FAMILY)
|
|
|