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

Unified Diff: chrome/browser/tab_first_render_watcher_browsertest.cc

Issue 8417005: Share TabFirstRenderWatcher with HtmlDialogView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/tab_first_render_watcher.cc ('k') | chrome/browser/ui/views/html_dialog_view.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/tab_first_render_watcher_browsertest.cc
diff --git a/chrome/browser/tab_first_render_watcher_browsertest.cc b/chrome/browser/tab_first_render_watcher_browsertest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..a5c94afb5c39f6707c7f6330841d22b08db4928d
--- /dev/null
+++ b/chrome/browser/tab_first_render_watcher_browsertest.cc
@@ -0,0 +1,88 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/message_loop.h"
+#include "chrome/browser/tab_first_render_watcher.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/views/dom_view.h"
+#include "chrome/common/url_constants.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "views/widget/widget.h"
+
+namespace {
+
+views::Widget* CreateWindowForContents(views::View* contents) {
+ views::Widget::InitParams widget_params(
+ views::Widget::InitParams::TYPE_WINDOW);
+
+ views::Widget* widget = new views::Widget;
+ widget->Init(widget_params);
+ widget->SetContentsView(contents);
+
+ return widget;
+}
+
+} // namespace
+
+class TabFirstRenderWatcherTest : public InProcessBrowserTest,
+ public TabFirstRenderWatcher::Delegate {
+ public:
+ TabFirstRenderWatcherTest()
+ : host_created_(false),
+ main_frame_loaded_(false),
+ main_frame_rendered_(false) {
+ }
+
+ // TabFirstRenderWatcher::Delegate implementation.
+ virtual void OnRenderHostCreated(RenderViewHost* host) OVERRIDE {
+ host_created_ = true;
+ }
+
+ virtual void OnTabMainFrameLoaded() OVERRIDE {
+ main_frame_loaded_ = true;
+ MessageLoop::current()->Quit();
+ }
+
+ virtual void OnTabMainFrameFirstRender() OVERRIDE {
+ main_frame_rendered_ = true;
+ MessageLoop::current()->Quit();
+ }
+
+ protected:
+ bool host_created_;
+ bool main_frame_loaded_;
+ bool main_frame_rendered_;
+};
+
+// Migrated from HtmlDialogBrowserTest.TestStateTransition, which times out
+// about 5~10% of runs. See crbug.com/86059.
+IN_PROC_BROWSER_TEST_F(TabFirstRenderWatcherTest,
+ DISABLED_TestStateTransition) {
+ DOMView* dom_view = new DOMView;
+ dom_view->Init(browser()->profile(), NULL);
+ CreateWindowForContents(dom_view);
+ dom_view->GetWidget()->Show();
+
+ scoped_ptr<TabFirstRenderWatcher> watcher(
+ new TabFirstRenderWatcher(dom_view->dom_contents()->tab_contents(),
+ this));
+
+ EXPECT_FALSE(host_created_);
+ EXPECT_FALSE(main_frame_loaded_);
+ EXPECT_FALSE(main_frame_rendered_);
+
+ dom_view->LoadURL(GURL(chrome::kChromeUIChromeURLsURL));
+ EXPECT_TRUE(host_created_);
+
+ // OnTabMainFrameLoaded() will Quit().
+ MessageLoopForUI::current()->Run();
+ EXPECT_TRUE(main_frame_loaded_);
+
+ // OnTabMainFrameFirstRender() will Quit().
+ MessageLoopForUI::current()->Run();
+ EXPECT_TRUE(main_frame_rendered_);
+
+ dom_view->GetWidget()->Close();
+}
« no previous file with comments | « chrome/browser/tab_first_render_watcher.cc ('k') | chrome/browser/ui/views/html_dialog_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698