OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 test::TestHtmlDialogUIDelegate* delegate = new test::TestHtmlDialogUIDelegate( | 107 test::TestHtmlDialogUIDelegate* delegate = new test::TestHtmlDialogUIDelegate( |
108 GURL(chrome::kChromeUIChromeURLsURL)); | 108 GURL(chrome::kChromeUIChromeURLsURL)); |
109 delegate->set_size(kInitialWidth, kInitialHeight); | 109 delegate->set_size(kInitialWidth, kInitialHeight); |
110 | 110 |
111 TestHtmlDialogView* html_view = | 111 TestHtmlDialogView* html_view = |
112 new TestHtmlDialogView(browser()->profile(), browser(), delegate); | 112 new TestHtmlDialogView(browser()->profile(), browser(), delegate); |
113 WebContents* web_contents = browser()->GetSelectedWebContents(); | 113 WebContents* web_contents = browser()->GetSelectedWebContents(); |
114 ASSERT_TRUE(web_contents != NULL); | 114 ASSERT_TRUE(web_contents != NULL); |
115 views::Widget::CreateWindowWithParent( | 115 views::Widget::CreateWindowWithParent( |
116 html_view, web_contents->GetView()->GetTopLevelNativeWindow()); | 116 html_view, web_contents->GetView()->GetTopLevelNativeWindow()); |
117 html_view->InitDialog(); | |
118 html_view->GetWidget()->Show(); | 117 html_view->GetWidget()->Show(); |
119 | 118 |
120 // TestHtmlDialogView should quit current message loop on size change. | 119 // TestHtmlDialogView should quit current message loop on size change. |
121 html_view->set_should_quit_on_size_change(true); | 120 html_view->set_should_quit_on_size_change(true); |
122 | 121 |
123 gfx::Rect bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); | 122 gfx::Rect bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); |
124 | 123 |
125 gfx::Rect set_bounds = bounds; | 124 gfx::Rect set_bounds = bounds; |
126 gfx::Rect actual_bounds, rwhv_bounds; | 125 gfx::Rect actual_bounds, rwhv_bounds; |
127 | 126 |
128 // Bigger than the default in both dimensions. | 127 // Bigger than the default in both dimensions. |
129 set_bounds.set_width(400); | 128 set_bounds.set_width(400); |
130 set_bounds.set_height(300); | 129 set_bounds.set_height(300); |
131 | 130 |
132 html_view->MoveContents(web_contents, set_bounds); | 131 html_view->MoveContents(web_contents, set_bounds); |
133 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit. | 132 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit. |
134 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); | 133 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); |
135 EXPECT_EQ(set_bounds, actual_bounds); | 134 EXPECT_EQ(set_bounds, actual_bounds); |
136 | 135 |
137 rwhv_bounds = html_view->dom_contents()->web_contents()-> | 136 rwhv_bounds = |
138 GetRenderWidgetHostView()->GetViewBounds(); | 137 html_view->web_contents()->GetRenderWidgetHostView()->GetViewBounds(); |
139 EXPECT_LT(0, rwhv_bounds.width()); | 138 EXPECT_LT(0, rwhv_bounds.width()); |
140 EXPECT_LT(0, rwhv_bounds.height()); | 139 EXPECT_LT(0, rwhv_bounds.height()); |
141 EXPECT_GE(set_bounds.width(), rwhv_bounds.width()); | 140 EXPECT_GE(set_bounds.width(), rwhv_bounds.width()); |
142 EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); | 141 EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); |
143 | 142 |
144 // Larger in one dimension and smaller in the other. | 143 // Larger in one dimension and smaller in the other. |
145 set_bounds.set_width(550); | 144 set_bounds.set_width(550); |
146 set_bounds.set_height(250); | 145 set_bounds.set_height(250); |
147 | 146 |
148 html_view->MoveContents(web_contents, set_bounds); | 147 html_view->MoveContents(web_contents, set_bounds); |
149 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit. | 148 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit. |
150 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); | 149 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); |
151 EXPECT_EQ(set_bounds, actual_bounds); | 150 EXPECT_EQ(set_bounds, actual_bounds); |
152 | 151 |
153 rwhv_bounds = html_view->dom_contents()->web_contents()-> | 152 rwhv_bounds = |
154 GetRenderWidgetHostView()->GetViewBounds(); | 153 html_view->web_contents()->GetRenderWidgetHostView()->GetViewBounds(); |
155 EXPECT_LT(0, rwhv_bounds.width()); | 154 EXPECT_LT(0, rwhv_bounds.width()); |
156 EXPECT_LT(0, rwhv_bounds.height()); | 155 EXPECT_LT(0, rwhv_bounds.height()); |
157 EXPECT_GE(set_bounds.width(), rwhv_bounds.width()); | 156 EXPECT_GE(set_bounds.width(), rwhv_bounds.width()); |
158 EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); | 157 EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); |
159 | 158 |
160 // Get very small. | 159 // Get very small. |
161 gfx::Size min_size = html_view->GetWidget()->GetMinimumSize(); | 160 gfx::Size min_size = html_view->GetWidget()->GetMinimumSize(); |
162 set_bounds.set_size(min_size); | 161 set_bounds.set_size(min_size); |
163 | 162 |
164 html_view->MoveContents(web_contents, set_bounds); | 163 html_view->MoveContents(web_contents, set_bounds); |
165 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit. | 164 ui_test_utils::RunMessageLoop(); // TestHtmlDialogView will quit. |
166 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); | 165 actual_bounds = html_view->GetWidget()->GetClientAreaScreenBounds(); |
167 EXPECT_EQ(set_bounds, actual_bounds); | 166 EXPECT_EQ(set_bounds, actual_bounds); |
168 | 167 |
169 rwhv_bounds = html_view->dom_contents()->web_contents()-> | 168 rwhv_bounds = |
170 GetRenderWidgetHostView()->GetViewBounds(); | 169 html_view->web_contents()->GetRenderWidgetHostView()->GetViewBounds(); |
171 EXPECT_LT(0, rwhv_bounds.width()); | 170 EXPECT_LT(0, rwhv_bounds.width()); |
172 EXPECT_LT(0, rwhv_bounds.height()); | 171 EXPECT_LT(0, rwhv_bounds.height()); |
173 EXPECT_GE(set_bounds.width(), rwhv_bounds.width()); | 172 EXPECT_GE(set_bounds.width(), rwhv_bounds.width()); |
174 EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); | 173 EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); |
175 | 174 |
176 // Check to make sure we can't get to 0x0 | 175 // Check to make sure we can't get to 0x0 |
177 set_bounds.set_width(0); | 176 set_bounds.set_width(0); |
178 set_bounds.set_height(0); | 177 set_bounds.set_height(0); |
179 | 178 |
180 html_view->MoveContents(web_contents, set_bounds); | 179 html_view->MoveContents(web_contents, set_bounds); |
(...skipping 19 matching lines...) Expand all Loading... |
200 html_view->InitDialog(); | 199 html_view->InitDialog(); |
201 html_view->GetWidget()->Show(); | 200 html_view->GetWidget()->Show(); |
202 | 201 |
203 // TestHtmlDialogView::OnTabMainFrameRender() will Quit(). | 202 // TestHtmlDialogView::OnTabMainFrameRender() will Quit(). |
204 MessageLoopForUI::current()->Run(); | 203 MessageLoopForUI::current()->Run(); |
205 | 204 |
206 EXPECT_TRUE(html_view->painted()); | 205 EXPECT_TRUE(html_view->painted()); |
207 | 206 |
208 html_view->GetWidget()->Close(); | 207 html_view->GetWidget()->Close(); |
209 } | 208 } |
OLD | NEW |