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

Side by Side Diff: chrome/browser/ui/views/html_dialog_view_browsertest.cc

Issue 9015022: Replace most of Browser::GetSelectedTabContents calls into Browser::GetSelectedWebContents. I've ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 8 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/bind.h" 5 #include "base/bind.h"
6 #include "base/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/memory/singleton.h" 8 #include "base/memory/singleton.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "chrome/browser/ui/browser.h" 11 #include "chrome/browser/ui/browser.h"
12 #include "chrome/browser/ui/views/html_dialog_view.h" 12 #include "chrome/browser/ui/views/html_dialog_view.h"
13 #include "chrome/browser/ui/webui/test_html_dialog_ui_delegate.h" 13 #include "chrome/browser/ui/webui/test_html_dialog_ui_delegate.h"
14 #include "chrome/common/url_constants.h" 14 #include "chrome/common/url_constants.h"
15 #include "chrome/test/base/in_process_browser_test.h" 15 #include "chrome/test/base/in_process_browser_test.h"
16 #include "chrome/test/base/ui_test_utils.h" 16 #include "chrome/test/base/ui_test_utils.h"
17 #include "content/browser/renderer_host/render_widget_host_view.h" 17 #include "content/browser/renderer_host/render_widget_host_view.h"
18 #include "content/browser/tab_contents/tab_contents.h" 18 #include "content/browser/tab_contents/tab_contents_view.h"
19 #include "content/public/browser/web_contents.h"
19 #include "testing/gmock/include/gmock/gmock.h" 20 #include "testing/gmock/include/gmock/gmock.h"
20 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
21 #include "ui/views/widget/widget.h" 22 #include "ui/views/widget/widget.h"
22 23
24 using content::WebContents;
23 using testing::Eq; 25 using testing::Eq;
24 26
25 namespace { 27 namespace {
26 28
27 // Initial size of HTMLDialog for SizeWindow test case. 29 // Initial size of HTMLDialog for SizeWindow test case.
28 const int kInitialWidth = 40; 30 const int kInitialWidth = 40;
29 const int kInitialHeight = 40; 31 const int kInitialHeight = 40;
30 32
31 class TestHtmlDialogView: public HtmlDialogView { 33 class TestHtmlDialogView: public HtmlDialogView {
32 public: 34 public:
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 #define MAYBE_SizeWindow DISABLED_SizeWindow 101 #define MAYBE_SizeWindow DISABLED_SizeWindow
100 #endif 102 #endif
101 103
102 IN_PROC_BROWSER_TEST_F(HtmlDialogBrowserTest, MAYBE_SizeWindow) { 104 IN_PROC_BROWSER_TEST_F(HtmlDialogBrowserTest, MAYBE_SizeWindow) {
103 test::TestHtmlDialogUIDelegate* delegate = new test::TestHtmlDialogUIDelegate( 105 test::TestHtmlDialogUIDelegate* delegate = new test::TestHtmlDialogUIDelegate(
104 GURL(chrome::kChromeUIChromeURLsURL)); 106 GURL(chrome::kChromeUIChromeURLsURL));
105 delegate->set_size(kInitialWidth, kInitialHeight); 107 delegate->set_size(kInitialWidth, kInitialHeight);
106 108
107 TestHtmlDialogView* html_view = 109 TestHtmlDialogView* html_view =
108 new TestHtmlDialogView(browser()->profile(), delegate); 110 new TestHtmlDialogView(browser()->profile(), delegate);
109 TabContents* tab_contents = browser()->GetSelectedTabContents(); 111 WebContents* web_contents = browser()->GetSelectedWebContents();
110 ASSERT_TRUE(tab_contents != NULL); 112 ASSERT_TRUE(web_contents != NULL);
111 views::Widget::CreateWindowWithParent(html_view, 113 views::Widget::CreateWindowWithParent(
112 tab_contents->GetDialogRootWindow()); 114 html_view, web_contents->GetView()->GetTopLevelNativeWindow());
113 html_view->InitDialog(); 115 html_view->InitDialog();
114 html_view->GetWidget()->Show(); 116 html_view->GetWidget()->Show();
115 117
116 // TestHtmlDialogView should quit current message loop on size change. 118 // TestHtmlDialogView should quit current message loop on size change.
117 html_view->set_should_quit_on_size_change(true); 119 html_view->set_should_quit_on_size_change(true);
118 120
119 gfx::Rect bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); 121 gfx::Rect bounds = html_view->GetWidget()->GetClientAreaScreenBounds();
120 122
121 gfx::Rect set_bounds = bounds; 123 gfx::Rect set_bounds = bounds;
122 gfx::Rect actual_bounds, rwhv_bounds; 124 gfx::Rect actual_bounds, rwhv_bounds;
123 125
124 // Bigger than the default in both dimensions. 126 // Bigger than the default in both dimensions.
125 set_bounds.set_width(400); 127 set_bounds.set_width(400);
126 set_bounds.set_height(300); 128 set_bounds.set_height(300);
127 129
128 html_view->MoveContents(tab_contents, set_bounds); 130 html_view->MoveContents(web_contents, set_bounds);
129 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit. 131 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit.
130 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); 132 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds();
131 EXPECT_EQ(set_bounds, actual_bounds); 133 EXPECT_EQ(set_bounds, actual_bounds);
132 134
133 rwhv_bounds = html_view->dom_contents()->tab_contents()-> 135 rwhv_bounds = html_view->dom_contents()->web_contents()->
134 GetRenderWidgetHostView()->GetViewBounds(); 136 GetRenderWidgetHostView()->GetViewBounds();
135 EXPECT_LT(0, rwhv_bounds.width()); 137 EXPECT_LT(0, rwhv_bounds.width());
136 EXPECT_LT(0, rwhv_bounds.height()); 138 EXPECT_LT(0, rwhv_bounds.height());
137 EXPECT_GE(set_bounds.width(), rwhv_bounds.width()); 139 EXPECT_GE(set_bounds.width(), rwhv_bounds.width());
138 EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); 140 EXPECT_GE(set_bounds.height(), rwhv_bounds.height());
139 141
140 // Larger in one dimension and smaller in the other. 142 // Larger in one dimension and smaller in the other.
141 set_bounds.set_width(550); 143 set_bounds.set_width(550);
142 set_bounds.set_height(250); 144 set_bounds.set_height(250);
143 145
144 html_view->MoveContents(tab_contents, set_bounds); 146 html_view->MoveContents(web_contents, set_bounds);
145 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit. 147 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit.
146 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); 148 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds();
147 EXPECT_EQ(set_bounds, actual_bounds); 149 EXPECT_EQ(set_bounds, actual_bounds);
148 150
149 rwhv_bounds = html_view->dom_contents()->tab_contents()-> 151 rwhv_bounds = html_view->dom_contents()->web_contents()->
150 GetRenderWidgetHostView()->GetViewBounds(); 152 GetRenderWidgetHostView()->GetViewBounds();
151 EXPECT_LT(0, rwhv_bounds.width()); 153 EXPECT_LT(0, rwhv_bounds.width());
152 EXPECT_LT(0, rwhv_bounds.height()); 154 EXPECT_LT(0, rwhv_bounds.height());
153 EXPECT_GE(set_bounds.width(), rwhv_bounds.width()); 155 EXPECT_GE(set_bounds.width(), rwhv_bounds.width());
154 EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); 156 EXPECT_GE(set_bounds.height(), rwhv_bounds.height());
155 157
156 // Get very small. 158 // Get very small.
157 gfx::Size min_size = html_view->GetWidget()->GetMinimumSize(); 159 gfx::Size min_size = html_view->GetWidget()->GetMinimumSize();
158 set_bounds.set_size(min_size); 160 set_bounds.set_size(min_size);
159 161
160 html_view->MoveContents(tab_contents, set_bounds); 162 html_view->MoveContents(web_contents, set_bounds);
161 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit. 163 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit.
162 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); 164 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds();
163 EXPECT_EQ(set_bounds, actual_bounds); 165 EXPECT_EQ(set_bounds, actual_bounds);
164 166
165 rwhv_bounds = html_view->dom_contents()->tab_contents()-> 167 rwhv_bounds = html_view->dom_contents()->web_contents()->
166 GetRenderWidgetHostView()->GetViewBounds(); 168 GetRenderWidgetHostView()->GetViewBounds();
167 EXPECT_LT(0, rwhv_bounds.width()); 169 EXPECT_LT(0, rwhv_bounds.width());
168 EXPECT_LT(0, rwhv_bounds.height()); 170 EXPECT_LT(0, rwhv_bounds.height());
169 EXPECT_GE(set_bounds.width(), rwhv_bounds.width()); 171 EXPECT_GE(set_bounds.width(), rwhv_bounds.width());
170 EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); 172 EXPECT_GE(set_bounds.height(), rwhv_bounds.height());
171 173
172 // Check to make sure we can't get to 0x0 174 // Check to make sure we can't get to 0x0
173 set_bounds.set_width(0); 175 set_bounds.set_width(0);
174 set_bounds.set_height(0); 176 set_bounds.set_height(0);
175 177
176 html_view->MoveContents(tab_contents, set_bounds); 178 html_view->MoveContents(web_contents, set_bounds);
177 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit. 179 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit.
178 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); 180 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds();
179 EXPECT_LT(0, actual_bounds.width()); 181 EXPECT_LT(0, actual_bounds.width());
180 EXPECT_LT(0, actual_bounds.height()); 182 EXPECT_LT(0, actual_bounds.height());
181 } 183 }
182 184
183 // This is timing out about 5~10% of runs. See crbug.com/86059. 185 // This is timing out about 5~10% of runs. See crbug.com/86059.
184 IN_PROC_BROWSER_TEST_F(HtmlDialogBrowserTest, DISABLED_WebContentRendered) { 186 IN_PROC_BROWSER_TEST_F(HtmlDialogBrowserTest, DISABLED_WebContentRendered) {
185 HtmlDialogUIDelegate* delegate = new test::TestHtmlDialogUIDelegate( 187 HtmlDialogUIDelegate* delegate = new test::TestHtmlDialogUIDelegate(
186 GURL(chrome::kChromeUIChromeURLsURL)); 188 GURL(chrome::kChromeUIChromeURLsURL));
187 189
188 TestHtmlDialogView* html_view = 190 TestHtmlDialogView* html_view =
189 new TestHtmlDialogView(browser()->profile(), delegate); 191 new TestHtmlDialogView(browser()->profile(), delegate);
190 TabContents* tab_contents = browser()->GetSelectedTabContents(); 192 WebContents* web_contents = browser()->GetSelectedWebContents();
191 ASSERT_TRUE(tab_contents != NULL); 193 ASSERT_TRUE(web_contents != NULL);
192 views::Widget::CreateWindowWithParent(html_view, 194 views::Widget::CreateWindowWithParent(
193 tab_contents->GetDialogRootWindow()); 195 html_view, web_contents->GetView()->GetTopLevelNativeWindow());
194 EXPECT_TRUE(html_view->initialized_); 196 EXPECT_TRUE(html_view->initialized_);
195 197
196 html_view->InitDialog(); 198 html_view->InitDialog();
197 html_view->GetWidget()->Show(); 199 html_view->GetWidget()->Show();
198 200
199 // TestHtmlDialogView::OnTabMainFrameFirstRender() will Quit(). 201 // TestHtmlDialogView::OnTabMainFrameFirstRender() will Quit().
200 MessageLoopForUI::current()->Run(); 202 MessageLoopForUI::current()->Run();
201 203
202 EXPECT_TRUE(html_view->painted()); 204 EXPECT_TRUE(html_view->painted());
203 205
204 html_view->GetWidget()->Close(); 206 html_view->GetWidget()->Close();
205 } 207 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698