summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordtseng@chromium.org <dtseng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-13 00:44:44 +0000
committerdtseng@chromium.org <dtseng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-13 00:44:44 +0000
commit2e0e8253a232fa499d22e47753c5bbadaebd69e7 (patch)
treeec9b78197bf8701b68eaed066414c4d6644a60bf
parent93b9d6948d212b630a115dc4b77bbe6bf2b3b671 (diff)
downloadchromium_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.js4
-rw-r--r--content/browser/renderer_host/render_view_host.cc4
-rw-r--r--content/browser/webui/web_ui_browsertest.cc27
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"));
}