summaryrefslogtreecommitdiffstats
path: root/chrome/test/base/web_ui_browser_test.cc
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-29 17:42:02 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-29 17:42:02 +0000
commitdead21caa8e88e85efcd90f033a92629b0df08b3 (patch)
treecf899e2b6cd445ffc4343a03422d6fc7dda19e25 /chrome/test/base/web_ui_browser_test.cc
parent02a63db901e14b550815e592016c27fa395cb7b6 (diff)
downloadchromium_src-dead21caa8e88e85efcd90f033a92629b0df08b3.zip
chromium_src-dead21caa8e88e85efcd90f033a92629b0df08b3.tar.gz
chromium_src-dead21caa8e88e85efcd90f033a92629b0df08b3.tar.bz2
mojo: Port chrome://identity-internals to mojo Web UI.
BUG=391095 NOPRESUBMIT=true R=fgorski@chromium.org, jam@chromium.org, jschuh@chromium.org, sky@chromium.org Review URL: https://codereview.chromium.org/365513002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286247 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/base/web_ui_browser_test.cc')
-rw-r--r--chrome/test/base/web_ui_browser_test.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/chrome/test/base/web_ui_browser_test.cc b/chrome/test/base/web_ui_browser_test.cc
index cf9a2aa..c82c1d0 100644
--- a/chrome/test/base/web_ui_browser_test.cc
+++ b/chrome/test/base/web_ui_browser_test.cc
@@ -9,6 +9,7 @@
#include "base/lazy_instance.h"
#include "base/memory/ref_counted_memory.h"
+#include "base/message_loop/message_loop.h"
#include "base/path_service.h"
#include "base/strings/string_util.h"
#include "base/values.h"
@@ -82,6 +83,35 @@ class WebUIJsInjectionReadyObserver : public content::WebContentsObserver {
std::string preload_test_name_;
};
+class WebUIMainObserver : public content::WebContentsObserver {
+ public:
+ explicit WebUIMainObserver(content::WebContents* web_contents)
+ : content::WebContentsObserver(web_contents),
+ message_loop_runner_(new content::MessageLoopRunner),
+ has_fired_(false) {
+ }
+
+ void Wait() {
+ if (has_fired_)
+ return;
+
+ message_loop_runner_->Run();
+ }
+
+ virtual void DidRunWebUIMojoMain() OVERRIDE {
+ has_fired_ = true;
+ message_loop_runner_->Quit();
+ }
+
+ private:
+ // The MessageLoopRunner used to spin the message loop.
+ scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
+
+ bool has_fired_;
+
+ DISALLOW_COPY_AND_ASSIGN(WebUIMainObserver);
+};
+
} // namespace
WebUIBrowserTest::~WebUIBrowserTest() {
@@ -220,6 +250,14 @@ void WebUIBrowserTest::BrowsePreload(const GURL& browse_to) {
navigation_observer.Wait();
}
+void WebUIBrowserTest::BrowsePreloadAndWaitForMain(const GURL& browse_to) {
+ content::WebContents* web_contents =
+ browser()->tab_strip_model()->GetActiveWebContents();
+ WebUIMainObserver webui_main_observer(web_contents);
+ BrowsePreload(browse_to);
+ webui_main_observer.Wait();
+}
+
#if defined(ENABLE_FULL_PRINTING)
// This custom ContentBrowserClient is used to get notified when a WebContents