Index: content/public/test/content_browser_test_utils.cc |
diff --git a/content/public/test/content_browser_test_utils.cc b/content/public/test/content_browser_test_utils.cc |
index daa8e09267aec581b1ada59ffba88c66473c0475..6be71c424d0fda55353a21460e99f72ef0469866 100644 |
--- a/content/public/test/content_browser_test_utils.cc |
+++ b/content/public/test/content_browser_test_utils.cc |
@@ -8,6 +8,8 @@ |
#include "base/files/file_path.h" |
#include "base/path_service.h" |
#include "base/run_loop.h" |
+#include "base/strings/pattern.h" |
+#include "base/strings/utf_string_conversions.h" |
#include "content/public/browser/navigation_controller.h" |
#include "content/public/browser/notification_source.h" |
#include "content/public/browser/web_contents.h" |
@@ -127,5 +129,32 @@ void ShellAddedObserver::ShellCreated(Shell* shell) { |
runner_->QuitClosure().Run(); |
} |
+ConsoleObserverDelegate::ConsoleObserverDelegate(WebContents* web_contents, |
+ const std::string& filter) |
+ : web_contents_(web_contents), |
+ filter_(filter), |
+ message_loop_runner_(new MessageLoopRunner) {} |
+ |
+ConsoleObserverDelegate::~ConsoleObserverDelegate() {} |
+ |
+void ConsoleObserverDelegate::Wait() { |
+ message_loop_runner_->Run(); |
+} |
+ |
+bool ConsoleObserverDelegate::AddMessageToConsole( |
+ WebContents* source, |
+ int32_t level, |
+ const base::string16& message, |
+ int32_t line_no, |
+ const base::string16& source_id) { |
+ DCHECK(source == web_contents_); |
+ |
+ std::string ascii_message = base::UTF16ToASCII(message); |
+ if (base::MatchPattern(ascii_message, filter_)) { |
+ message_ = ascii_message; |
+ message_loop_runner_->Quit(); |
+ } |
+ return false; |
+} |
} // namespace content |