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

Side by Side Diff: chrome/test/base/javascript_browser_test.cc

Issue 2045843002: Move console error detection in browser tests to higher level (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ftp-error
Patch Set: Created 4 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 unified diff | Download patch
« no previous file with comments | « chrome/test/base/javascript_browser_test.h ('k') | chrome/test/base/web_ui_browser_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/test/base/javascript_browser_test.h" 5 #include "chrome/test/base/javascript_browser_test.h"
6 6
7 #include "base/logging.h"
7 #include "base/path_service.h" 8 #include "base/path_service.h"
8 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/common/chrome_paths.h" 10 #include "chrome/common/chrome_paths.h"
10 #include "content/public/browser/web_ui.h" 11 #include "content/public/browser/web_ui.h"
11 #include "ui/base/resource/resource_bundle.h" 12 #include "ui/base/resource/resource_bundle.h"
12 13
14 namespace {
15
16 bool g_has_console_errors = false;
17 bool g_has_console_info = false;
18
19 bool LogHandler(int severity,
20 const char* file,
21 int line,
22 size_t message_start,
23 const std::string& str) {
24 if (std::string("CONSOLE") == file) {
25 g_has_console_info = true;
26 if (severity == logging::LOG_ERROR)
27 g_has_console_errors = true;
28 }
29 return false;
30 }
31
32 } // namespace
33
13 // static 34 // static
14 const base::FilePath::CharType 35 const base::FilePath::CharType
15 JavaScriptBrowserTest::kA11yAuditLibraryJSPath[] = 36 JavaScriptBrowserTest::kA11yAuditLibraryJSPath[] =
16 FILE_PATH_LITERAL("third_party/accessibility-audit/axs_testing.js"); 37 FILE_PATH_LITERAL("third_party/accessibility-audit/axs_testing.js");
17 38
18 // static 39 // static
19 const base::FilePath::CharType JavaScriptBrowserTest::kChaiJSPath[] = 40 const base::FilePath::CharType JavaScriptBrowserTest::kChaiJSPath[] =
20 FILE_PATH_LITERAL("third_party/chaijs/chai.js"); 41 FILE_PATH_LITERAL("third_party/chaijs/chai.js");
21 42
22 // static 43 // static
(...skipping 12 matching lines...) Expand all
35 user_libraries_.push_back(library_path); 56 user_libraries_.push_back(library_path);
36 } 57 }
37 58
38 JavaScriptBrowserTest::JavaScriptBrowserTest() { 59 JavaScriptBrowserTest::JavaScriptBrowserTest() {
39 } 60 }
40 61
41 JavaScriptBrowserTest::~JavaScriptBrowserTest() { 62 JavaScriptBrowserTest::~JavaScriptBrowserTest() {
42 } 63 }
43 64
44 void JavaScriptBrowserTest::SetUpOnMainThread() { 65 void JavaScriptBrowserTest::SetUpOnMainThread() {
66 InProcessBrowserTest::SetUpOnMainThread();
67
68 logging::SetLogMessageHandler(&LogHandler);
69
45 base::FilePath test_data_directory; 70 base::FilePath test_data_directory;
46 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_directory)); 71 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_directory));
47 test_data_directory = test_data_directory.Append(kWebUITestFolder); 72 test_data_directory = test_data_directory.Append(kWebUITestFolder);
48 library_search_paths_.push_back(test_data_directory); 73 library_search_paths_.push_back(test_data_directory);
49 74
50 base::FilePath gen_test_data_directory; 75 base::FilePath gen_test_data_directory;
51 ASSERT_TRUE( 76 ASSERT_TRUE(
52 PathService::Get(chrome::DIR_GEN_TEST_DATA, &gen_test_data_directory)); 77 PathService::Get(chrome::DIR_GEN_TEST_DATA, &gen_test_data_directory));
53 library_search_paths_.push_back(gen_test_data_directory); 78 library_search_paths_.push_back(gen_test_data_directory);
54 79
55 base::FilePath source_root_directory; 80 base::FilePath source_root_directory;
56 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &source_root_directory)); 81 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &source_root_directory));
57 library_search_paths_.push_back(source_root_directory); 82 library_search_paths_.push_back(source_root_directory);
58 83
59 AddLibrary(base::FilePath(kMockJSPath)); 84 AddLibrary(base::FilePath(kMockJSPath));
60 AddLibrary(base::FilePath(kChaiJSPath)); 85 AddLibrary(base::FilePath(kChaiJSPath));
61 AddLibrary(base::FilePath(kWebUILibraryJS)); 86 AddLibrary(base::FilePath(kWebUILibraryJS));
62 } 87 }
63 88
89 void JavaScriptBrowserTest::TearDownOnMainThread() {
90 logging::SetLogMessageHandler(nullptr);
91 InProcessBrowserTest::TearDownOnMainThread();
92 }
93
64 // TODO(dtseng): Make this return bool (success/failure) and remove ASSERt_TRUE 94 // TODO(dtseng): Make this return bool (success/failure) and remove ASSERt_TRUE
65 // calls. 95 // calls.
66 void JavaScriptBrowserTest::BuildJavascriptLibraries( 96 void JavaScriptBrowserTest::BuildJavascriptLibraries(
67 std::vector<base::string16>* libraries) { 97 std::vector<base::string16>* libraries) {
68 ASSERT_TRUE(libraries != NULL); 98 ASSERT_TRUE(libraries != NULL);
69 std::vector<base::FilePath>::iterator user_libraries_iterator; 99 std::vector<base::FilePath>::iterator user_libraries_iterator;
70 for (user_libraries_iterator = user_libraries_.begin(); 100 for (user_libraries_iterator = user_libraries_.begin();
71 user_libraries_iterator != user_libraries_.end(); 101 user_libraries_iterator != user_libraries_.end();
72 ++user_libraries_iterator) { 102 ++user_libraries_iterator) {
73 std::string library_content; 103 std::string library_content;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 ConstValueVector::const_iterator arguments_iterator; 144 ConstValueVector::const_iterator arguments_iterator;
115 for (arguments_iterator = test_func_args.begin(); 145 for (arguments_iterator = test_func_args.begin();
116 arguments_iterator != test_func_args.end(); 146 arguments_iterator != test_func_args.end();
117 ++arguments_iterator) { 147 ++arguments_iterator) {
118 baked_argument_list->Append((*arguments_iterator)->DeepCopy()); 148 baked_argument_list->Append((*arguments_iterator)->DeepCopy());
119 } 149 }
120 arguments.push_back(baked_argument_list); 150 arguments.push_back(baked_argument_list);
121 return content::WebUI::GetJavascriptCall(std::string("runTest"), 151 return content::WebUI::GetJavascriptCall(std::string("runTest"),
122 arguments.get()); 152 arguments.get());
123 } 153 }
154
155 bool JavaScriptBrowserTest::has_console_errors() const {
156 return g_has_console_errors;
157 }
158
159 void JavaScriptBrowserTest::set_has_console_errors(bool has_console_errors) {
160 g_has_console_errors = has_console_errors;
161 }
162
163 bool JavaScriptBrowserTest::has_console_info() const {
164 return g_has_console_info;
165 }
166
167 void JavaScriptBrowserTest::set_has_console_info(bool has_console_info) {
168 g_has_console_info = has_console_info;
169 }
OLDNEW
« no previous file with comments | « chrome/test/base/javascript_browser_test.h ('k') | chrome/test/base/web_ui_browser_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698