diff options
author | dtseng@chromium.org <dtseng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-13 00:44:44 +0000 |
---|---|---|
committer | dtseng@chromium.org <dtseng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-13 00:44:44 +0000 |
commit | 2e0e8253a232fa499d22e47753c5bbadaebd69e7 (patch) | |
tree | ec9b78197bf8701b68eaed066414c4d6644a60bf | |
parent | 93b9d6948d212b630a115dc4b77bbe6bf2b3b671 (diff) | |
download | chromium_src-2e0e8253a232fa499d22e47753c5bbadaebd69e7.zip chromium_src-2e0e8253a232fa499d22e47753c5bbadaebd69e7.tar.gz chromium_src-2e0e8253a232fa499d22e47753c5bbadaebd69e7.tar.bz2 |
Add initial changes to intercept logging.
BUG=none
TEST=Added new test to call console.error
Review URL: http://codereview.chromium.org/6816034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81342 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/test/data/webui/sample_downloads.js | 4 | ||||
-rw-r--r-- | content/browser/renderer_host/render_view_host.cc | 4 | ||||
-rw-r--r-- | content/browser/webui/web_ui_browsertest.cc | 27 |
3 files changed, 32 insertions, 3 deletions
diff --git a/chrome/test/data/webui/sample_downloads.js b/chrome/test/data/webui/sample_downloads.js index bb1dfe7..0d976f3 100644 --- a/chrome/test/data/webui/sample_downloads.js +++ b/chrome/test/data/webui/sample_downloads.js @@ -11,3 +11,7 @@ function testAssertFalse() { function testInitialFocus() { assertTrue(document.activeElement.id == 'term', ''); } + +function testConsoleError() { + console.error('checking console.error call causes failure.'); +} diff --git a/content/browser/renderer_host/render_view_host.cc b/content/browser/renderer_host/render_view_host.cc index b9e1f52..8cca4b6 100644 --- a/content/browser/renderer_host/render_view_host.cc +++ b/content/browser/renderer_host/render_view_host.cc @@ -1262,8 +1262,8 @@ void RenderViewHost::OnAddMessageToConsole(int32 level, int32 resolved_level = BindingsPolicy::is_web_ui_enabled(enabled_bindings_) ? level : 0; - logging::LogMessage("CONSOLE", resolved_level).stream() << "\"" << message - << "\", source: " << source_id << " (" << line_no << ")"; + logging::LogMessage("CONSOLE", line_no, resolved_level).stream() << "\"" << + message << "\", source: " << source_id << " (" << line_no << ")"; } void RenderViewHost::AddObserver(RenderViewHostObserver* observer) { diff --git a/content/browser/webui/web_ui_browsertest.cc b/content/browser/webui/web_ui_browsertest.cc index c052548..be72c48 100644 --- a/content/browser/webui/web_ui_browsertest.cc +++ b/content/browser/webui/web_ui_browsertest.cc @@ -4,6 +4,9 @@ #include "content/browser/webui/web_ui_browsertest.h" +#include <string> +#include <vector> + #include "base/path_service.h" #include "chrome/browser/ui/browser.h" #include "chrome/common/chrome_paths.h" @@ -15,6 +18,18 @@ static const FilePath::CharType* kWebUILibraryJS = FILE_PATH_LITERAL("test_api.js"); static const FilePath::CharType* kWebUITestFolder = FILE_PATH_LITERAL("webui"); +static std::vector<std::string> error_messages_; + +// Intercepts all log messages. +bool LogHandler(int severity, + const char* file, + int line, + size_t message_start, + const std::string& str) { + if (severity == logging::LOG_ERROR) + error_messages_.push_back(str); + return true; +} WebUIBrowserTest::~WebUIBrowserTest() {} @@ -72,7 +87,16 @@ bool WebUIBrowserTest::RunJavascriptUsingHandler( content.append(called_function); } SetupHandlers(); - return test_handler_->RunJavascript(content, is_test); + logging::SetLogMessageHandler(&LogHandler); + bool result = test_handler_->RunJavascript(content, is_test); + logging::SetLogMessageHandler(NULL); + + if (error_messages_.size() > 0) { + LOG(ERROR) << "Encountered javascript console error(s)"; + result = false; + error_messages_.clear(); + } + return result; } void WebUIBrowserTest::SetupHandlers() { @@ -99,4 +123,5 @@ IN_PROC_BROWSER_TEST_F(WebUIBrowserTest, TestSamplePass) { ASSERT_TRUE(RunJavascriptTest("testAssertFalse")); ASSERT_TRUE(RunJavascriptTest("testInitialFocus")); + ASSERT_FALSE(RunJavascriptTest("testConsoleError")); } |