Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(335)

Unified Diff: chrome/test/base/web_ui_browser_test.cc

Issue 320753002: Support javascript gtests in an extension background page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: WS Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/base/web_ui_browser_test.cc
diff --git a/chrome/test/base/web_ui_browser_test.cc b/chrome/test/base/web_ui_browser_test.cc
index 8e125ec213ea01daf6a5c5528fa9078e1b11381b..6b95c039073175ba7fe79ec0a5c2cbf5aed9f7c8 100644
--- a/chrome/test/base/web_ui_browser_test.cc
+++ b/chrome/test/base/web_ui_browser_test.cc
@@ -11,7 +11,6 @@
#include "base/memory/ref_counted_memory.h"
#include "base/path_service.h"
#include "base/strings/string_util.h"
-#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/profiles/profile.h"
@@ -31,7 +30,6 @@
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/test_navigation_observer.h"
#include "net/base/filename_util.h"
-#include "ui/base/resource/resource_bundle.h"
#include "ui/base/resource/resource_handle.h"
#if defined(ENABLE_FULL_PRINTING)
@@ -45,13 +43,6 @@ using content::WebUIMessageHandler;
namespace {
-const base::FilePath::CharType kA11yAuditLibraryJSPath[] = FILE_PATH_LITERAL(
- "third_party/accessibility-audit/axs_testing.js");
-const base::FilePath::CharType kMockJSPath[] =
- FILE_PATH_LITERAL("chrome/third_party/mock4js/mock4js.js");
-const base::FilePath::CharType kWebUILibraryJS[] =
- FILE_PATH_LITERAL("test_api.js");
-const base::FilePath::CharType kWebUITestFolder[] = FILE_PATH_LITERAL("webui");
base::LazyInstance<std::vector<std::string> > error_messages_ =
LAZY_INSTANCE_INITIALIZER;
@@ -61,8 +52,7 @@ bool LogHandler(int severity,
int line,
size_t message_start,
const std::string& str) {
- if (severity == logging::LOG_ERROR &&
- file &&
+ if (severity == logging::LOG_ERROR && file &&
std::string("CONSOLE") == file) {
error_messages_.Get().push_back(str);
}
@@ -94,10 +84,7 @@ class WebUIJsInjectionReadyObserver : public content::WebContentsObserver {
} // namespace
-WebUIBrowserTest::~WebUIBrowserTest() {}
-
-void WebUIBrowserTest::AddLibrary(const base::FilePath& library_path) {
- user_libraries_.push_back(library_path);
+WebUIBrowserTest::~WebUIBrowserTest() {
}
bool WebUIBrowserTest::RunJavascriptFunction(const std::string& function_name) {
@@ -226,8 +213,8 @@ void WebUIBrowserTest::BrowsePreload(const GURL& browse_to) {
WebUIJsInjectionReadyObserver injection_observer(
web_contents, this, preload_test_fixture_, preload_test_name_);
content::TestNavigationObserver navigation_observer(web_contents);
- chrome::NavigateParams params(browser(), GURL(browse_to),
- content::PAGE_TRANSITION_TYPED);
+ chrome::NavigateParams params(
+ browser(), GURL(browse_to), content::PAGE_TRANSITION_TYPED);
params.disposition = CURRENT_TAB;
chrome::Navigate(&params);
navigation_observer.Wait();
@@ -258,9 +245,10 @@ class PrintContentBrowserClient : public chrome::ChromeContentBrowserClient {
virtual content::WebContentsViewDelegate* GetWebContentsViewDelegate(
content::WebContents* web_contents) OVERRIDE {
preview_dialog_ = web_contents;
- observer_.reset(new WebUIJsInjectionReadyObserver(
- preview_dialog_, browser_test_, preload_test_fixture_,
- preload_test_name_));
+ observer_.reset(new WebUIJsInjectionReadyObserver(preview_dialog_,
+ browser_test_,
+ preload_test_fixture_,
+ preload_test_name_));
message_loop_runner_->Quit();
return NULL;
}
@@ -305,7 +293,8 @@ const char WebUIBrowserTest::kDummyURL[] = "chrome://DummyURL";
WebUIBrowserTest::WebUIBrowserTest()
: test_handler_(new WebUITestHandler()),
libraries_preloaded_(false),
- override_selected_web_ui_(NULL) {}
+ override_selected_web_ui_(NULL) {
+}
void WebUIBrowserTest::set_preload_test_fixture(
const std::string& preload_test_fixture) {
@@ -330,9 +319,7 @@ class MockWebUIDataSource : public content::URLDataSource {
private:
virtual ~MockWebUIDataSource() {}
- virtual std::string GetSource() const OVERRIDE {
- return "dummyurl";
- }
+ virtual std::string GetSource() const OVERRIDE { return "dummyurl"; }
virtual void StartDataRequest(
const std::string& path,
@@ -378,6 +365,8 @@ base::LazyInstance<MockWebUIProvider> mock_provider_ =
} // namespace
void WebUIBrowserTest::SetUpOnMainThread() {
+ JavaScriptBrowserTest::SetUpOnMainThread();
+
logging::SetLogMessageHandler(&LogHandler);
content::WebUIControllerFactory::UnregisterFactoryForTesting(
@@ -387,32 +376,8 @@ void WebUIBrowserTest::SetUpOnMainThread() {
content::WebUIControllerFactory::RegisterFactory(test_factory_.get());
- test_factory_->AddFactoryOverride(
- GURL(kDummyURL).host(), mock_provider_.Pointer());
-
- base::FilePath test_data_directory;
- ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_directory));
- test_data_directory = test_data_directory.Append(kWebUITestFolder);
- library_search_paths_.push_back(test_data_directory);
-
- base::FilePath gen_test_data_directory;
- ASSERT_TRUE(PathService::Get(chrome::DIR_GEN_TEST_DATA,
- &gen_test_data_directory));
- library_search_paths_.push_back(gen_test_data_directory);
-
- base::FilePath source_root_directory;
- ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &source_root_directory));
- library_search_paths_.push_back(source_root_directory);
-
- // TODO(dtseng): should this be part of every BrowserTest or just WebUI test.
- base::FilePath resources_pack_path;
- PathService::Get(chrome::FILE_RESOURCES_PACK, &resources_pack_path);
- ResourceBundle::GetSharedInstance().AddDataPackFromPath(
- resources_pack_path, ui::SCALE_FACTOR_NONE);
-
- AddLibrary(base::FilePath(kA11yAuditLibraryJSPath));
- AddLibrary(base::FilePath(kMockJSPath));
- AddLibrary(base::FilePath(kWebUILibraryJS));
+ test_factory_->AddFactoryOverride(GURL(kDummyURL).host(),
+ mock_provider_.Pointer());
}
void WebUIBrowserTest::CleanUpOnMainThread() {
@@ -438,74 +403,6 @@ WebUIMessageHandler* WebUIBrowserTest::GetMockMessageHandler() {
return NULL;
}
-GURL WebUIBrowserTest::WebUITestDataPathToURL(
- const base::FilePath::StringType& path) {
- base::FilePath dir_test_data;
- EXPECT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &dir_test_data));
- base::FilePath test_path(dir_test_data.Append(kWebUITestFolder).Append(path));
- EXPECT_TRUE(base::PathExists(test_path));
- return net::FilePathToFileURL(test_path);
-}
-
-void WebUIBrowserTest::BuildJavascriptLibraries(
- std::vector<base::string16>* libraries) {
- ASSERT_TRUE(libraries != NULL);
- std::vector<base::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(base::ReadFileToString(*user_libraries_iterator,
- &library_content))
- << user_libraries_iterator->value();
- } else {
- bool ok = false;
- std::vector<base::FilePath>::iterator library_search_path_iterator;
- for (library_search_path_iterator = library_search_paths_.begin();
- library_search_path_iterator != library_search_paths_.end();
- ++library_search_path_iterator) {
- ok = base::ReadFileToString(
- base::MakeAbsoluteFilePath(
- library_search_path_iterator->Append(*user_libraries_iterator)),
- &library_content);
- if (ok)
- break;
- }
- ASSERT_TRUE(ok) << "User library not found: "
- << user_libraries_iterator->value();
- }
- library_content.append(";\n");
-
- // This magic code puts filenames in stack traces.
- library_content.append("//# sourceURL=");
- library_content.append(user_libraries_iterator->BaseName().AsUTF8Unsafe());
- library_content.append("\n");
- libraries->push_back(base::UTF8ToUTF16(library_content));
- }
-}
-
-base::string16 WebUIBrowserTest::BuildRunTestJSCall(
- bool is_async,
- const std::string& function_name,
- const WebUIBrowserTest::ConstValueVector& test_func_args) {
- ConstValueVector arguments;
- base::FundamentalValue* is_async_arg = new base::FundamentalValue(is_async);
- arguments.push_back(is_async_arg);
- base::StringValue* function_name_arg = new base::StringValue(function_name);
- arguments.push_back(function_name_arg);
- base::ListValue* baked_argument_list = new base::ListValue();
- ConstValueVector::const_iterator arguments_iterator;
- for (arguments_iterator = test_func_args.begin();
- arguments_iterator != test_func_args.end();
- ++arguments_iterator) {
- baked_argument_list->Append((*arguments_iterator)->DeepCopy());
- }
- arguments.push_back(baked_argument_list);
- return content::WebUI::GetJavascriptCall(std::string("runTest"),
- arguments.get());
-}
-
bool WebUIBrowserTest::RunJavascriptUsingHandler(
const std::string& function_name,
const ConstValueVector& function_arguments,
@@ -531,9 +428,8 @@ bool WebUIBrowserTest::RunJavascriptUsingHandler(
called_function =
BuildRunTestJSCall(is_async, function_name, function_arguments);
} else {
- called_function =
- content::WebUI::GetJavascriptCall(function_name,
- function_arguments.get());
+ called_function = content::WebUI::GetJavascriptCall(
+ function_name, function_arguments.get());
}
content.append(called_function);
}
@@ -562,9 +458,10 @@ bool WebUIBrowserTest::RunJavascriptUsingHandler(
}
void WebUIBrowserTest::SetupHandlers() {
- content::WebUI* web_ui_instance = override_selected_web_ui_ ?
- override_selected_web_ui_ :
- browser()->tab_strip_model()->GetActiveWebContents()->GetWebUI();
+ content::WebUI* web_ui_instance =
+ override_selected_web_ui_
+ ? override_selected_web_ui_
+ : browser()->tab_strip_model()->GetActiveWebContents()->GetWebUI();
ASSERT_TRUE(web_ui_instance != NULL);
test_handler_->set_web_ui(web_ui_instance);
@@ -575,3 +472,12 @@ void WebUIBrowserTest::SetupHandlers() {
GetMockMessageHandler()->RegisterMessages();
}
}
+
+GURL WebUIBrowserTest::WebUITestDataPathToURL(
+ const base::FilePath::StringType& path) {
+ base::FilePath dir_test_data;
+ EXPECT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &dir_test_data));
+ base::FilePath test_path(dir_test_data.Append(kWebUITestFolder).Append(path));
+ EXPECT_TRUE(base::PathExists(test_path));
+ return net::FilePathToFileURL(test_path);
+}

Powered by Google App Engine
This is Rietveld 408576698