Commit d7ca4a94 authored by tapted@chromium.org's avatar tapted@chromium.org

MacViews: Fix WebDialogBrowserTest.SizeWindow to get browser_tests compiling on MacViews

gyp changes are made to filter out toolkit-views browser_tests that
aren't yet compiled in to a toolkit-views Chrome binary on Mac.

One, WebDialogBrowserTest.SizeWindow, was a disabled test (disabled for
4 years :o). It was preventing browser_tests compiling on MacViews
because it was passing a gfx::NativeWindow to CreateWindowWithParent,
which takes a view.

The parent isn't important for the test - it's just adding widget
context. This CL changes the parent to be web_contents->GetNativeView()
instead so the test compiles.

To ensure nothing breaks, the test needs to be enabled. According to the
comment, the reasons for it being disabled on Windows still seem
relevant. However, on Linux the test was just timing out due to a quirk
of the test. So the quirk is fixed, and WebDialogBrowserTest.SizeWindow
is enabled on Linux Aura.

The test is also enabled on Mac, but currently fails because
NativeViewHost isn't implemented yet. That's coming, and leaving the
test enabled will ensure we check it.

With this change browser_tests compiles and links on toolkit-views Mac.

BUG=404979, 399191, 52602
TEST=browser_tests

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=290998

Review URL: https://codereview.chromium.org/486063002

Cr-Commit-Position: refs/heads/master@{#291272}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291272 0039d316-1c4b-4281-b951-d872f2087c98
parent 476d5156
...@@ -84,24 +84,24 @@ class WebDialogBrowserTest : public InProcessBrowserTest { ...@@ -84,24 +84,24 @@ class WebDialogBrowserTest : public InProcessBrowserTest {
WebDialogBrowserTest() {} WebDialogBrowserTest() {}
}; };
// http://code.google.com/p/chromium/issues/detail?id=52602 // Windows has some issues resizing windows. An off by one problem, and a
// Windows has some issues resizing windows- an off by one problem, // minimum size that seems too big. See http://crbug.com/52602.
// and a minimum size that seems too big. This file isn't included in #if defined(OS_WIN)
// Mac builds yet. On Chrome OS, this test doesn't apply since ChromeOS #define MAYBE_SizeWindow DISABLED_SizeWindow
// doesn't allow resizing of windows. #else
IN_PROC_BROWSER_TEST_F(WebDialogBrowserTest, DISABLED_SizeWindow) { #define MAYBE_SizeWindow SizeWindow
ui::test::TestWebDialogDelegate* delegate = #endif
new ui::test::TestWebDialogDelegate( IN_PROC_BROWSER_TEST_F(WebDialogBrowserTest, MAYBE_SizeWindow) {
GURL(chrome::kChromeUIChromeURLsURL)); ui::test::TestWebDialogDelegate delegate(
delegate->set_size(kInitialWidth, kInitialHeight); (GURL(chrome::kChromeUIChromeURLsURL)));
delegate.set_size(kInitialWidth, kInitialHeight);
TestWebDialogView* view = TestWebDialogView* view =
new TestWebDialogView(browser()->profile(), delegate); new TestWebDialogView(browser()->profile(), &delegate);
WebContents* web_contents = WebContents* web_contents =
browser()->tab_strip_model()->GetActiveWebContents(); browser()->tab_strip_model()->GetActiveWebContents();
ASSERT_TRUE(web_contents != NULL); ASSERT_TRUE(web_contents != NULL);
views::Widget::CreateWindowWithParent( views::Widget::CreateWindowWithParent(view, web_contents->GetNativeView());
view, web_contents->GetTopLevelNativeWindow());
view->GetWidget()->Show(); view->GetWidget()->Show();
// TestWebDialogView should quit current message loop on size change. // TestWebDialogView should quit current message loop on size change.
...@@ -145,7 +145,10 @@ IN_PROC_BROWSER_TEST_F(WebDialogBrowserTest, DISABLED_SizeWindow) { ...@@ -145,7 +145,10 @@ IN_PROC_BROWSER_TEST_F(WebDialogBrowserTest, DISABLED_SizeWindow) {
EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); EXPECT_GE(set_bounds.height(), rwhv_bounds.height());
// Get very small. // Get very small.
gfx::Size min_size = view->GetWidget()->GetMinimumSize(); const gfx::Size min_size = view->GetWidget()->GetMinimumSize();
EXPECT_LT(0, min_size.width());
EXPECT_LT(0, min_size.height());
set_bounds.set_size(min_size); set_bounds.set_size(min_size);
view->MoveContents(web_contents, set_bounds); view->MoveContents(web_contents, set_bounds);
...@@ -160,13 +163,28 @@ IN_PROC_BROWSER_TEST_F(WebDialogBrowserTest, DISABLED_SizeWindow) { ...@@ -160,13 +163,28 @@ IN_PROC_BROWSER_TEST_F(WebDialogBrowserTest, DISABLED_SizeWindow) {
EXPECT_GE(set_bounds.width(), rwhv_bounds.width()); EXPECT_GE(set_bounds.width(), rwhv_bounds.width());
EXPECT_GE(set_bounds.height(), rwhv_bounds.height()); EXPECT_GE(set_bounds.height(), rwhv_bounds.height());
// Check to make sure we can't get to 0x0 // Check to make sure we can't get to 0x0. First expand beyond the minimum
// size that was set above so that TestWebDialogView has a change to pick up.
set_bounds.set_height(250);
view->MoveContents(web_contents, set_bounds);
content::RunMessageLoop(); // TestWebDialogView will quit.
actual_bounds = view->GetWidget()->GetClientAreaBoundsInScreen();
EXPECT_EQ(set_bounds, actual_bounds);
// Now verify that attempts to re-size to 0x0 enforces the minimum size.
set_bounds.set_width(0); set_bounds.set_width(0);
set_bounds.set_height(0); set_bounds.set_height(0);
view->MoveContents(web_contents, set_bounds); view->MoveContents(web_contents, set_bounds);
content::RunMessageLoop(); // TestWebDialogView will quit. content::RunMessageLoop(); // TestWebDialogView will quit.
actual_bounds = view->GetWidget()->GetClientAreaBoundsInScreen(); actual_bounds = view->GetWidget()->GetClientAreaBoundsInScreen();
EXPECT_LT(0, actual_bounds.width()); EXPECT_EQ(min_size, actual_bounds.size());
EXPECT_LT(0, actual_bounds.height());
// And that the render view is also non-zero.
rwhv_bounds =
view->web_contents()->GetRenderWidgetHostView()->GetViewBounds();
EXPECT_LT(0, rwhv_bounds.width());
EXPECT_LT(0, rwhv_bounds.height());
view->GetWidget()->CloseNow();
} }
...@@ -1943,6 +1943,7 @@ ...@@ -1943,6 +1943,7 @@
'../third_party/ocmock/ocmock.gyp:ocmock', '../third_party/ocmock/ocmock.gyp:ocmock',
], ],
'sources': [ 'sources': [
'browser/media_galleries/fileapi/iphoto_data_provider_browsertest.cc',
'browser/renderer_host/chrome_render_widget_host_view_mac_delegate_browsertest.cc', 'browser/renderer_host/chrome_render_widget_host_view_mac_delegate_browsertest.cc',
'browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_browsertest.mm', 'browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_browsertest.mm',
'browser/spellchecker/spellcheck_message_filter_mac_browsertest.cc', 'browser/spellchecker/spellcheck_message_filter_mac_browsertest.cc',
...@@ -1951,6 +1952,20 @@ ...@@ -1951,6 +1952,20 @@
# TODO(groby): This test depends on hunspell and we cannot run it on # TODO(groby): This test depends on hunspell and we cannot run it on
# Mac, which does not use hunspell by default. # Mac, which does not use hunspell by default.
'browser/spellchecker/spellcheck_service_browsertest.cc', 'browser/spellchecker/spellcheck_service_browsertest.cc',
# TODO(tapted): Enable toolkit-views browser_tests on Mac when their
# respective implementations are linked in. http://crbug.com/404979.
'browser/ui/views/autofill/autofill_dialog_view_tester_views.cc',
'browser/ui/views/autofill/autofill_popup_base_view_browsertest.cc',
'browser/ui/views/extensions/extension_install_dialog_view_browsertest.cc',
'browser/ui/views/frame/browser_view_browsertest.cc',
'browser/ui/views/location_bar/zoom_bubble_view_browsertest.cc',
'browser/ui/views/profiles/avatar_menu_button_browsertest.cc',
'browser/ui/views/profiles/new_avatar_menu_button_browsertest.cc',
'browser/ui/views/profiles/profile_chooser_view_browsertest.cc',
'browser/ui/views/toolbar/browser_actions_container_browsertest.cc',
'browser/ui/views/translate/translate_bubble_view_browsertest.cc',
# TODO(rouslan): This test depends on the custom dictionary UI, # TODO(rouslan): This test depends on the custom dictionary UI,
# which is disabled on Mac. # which is disabled on Mac.
'browser/ui/webui/options/edit_dictionary_browsertest.js', 'browser/ui/webui/options/edit_dictionary_browsertest.js',
...@@ -1968,18 +1983,13 @@ ...@@ -1968,18 +1983,13 @@
'renderer/safe_browsing/phishing_classifier_delegate_browsertest.cc', 'renderer/safe_browsing/phishing_classifier_delegate_browsertest.cc',
'renderer/safe_browsing/phishing_dom_feature_extractor_browsertest.cc', 'renderer/safe_browsing/phishing_dom_feature_extractor_browsertest.cc',
], ],
}], }], # OS=="mac"
['OS=="mac" or OS=="win"', { ['OS=="mac" or OS=="win"', {
'sources': [ 'sources': [
'browser/media_galleries/fileapi/itunes_data_provider_browsertest.cc', 'browser/media_galleries/fileapi/itunes_data_provider_browsertest.cc',
'browser/media_galleries/fileapi/picasa_data_provider_browsertest.cc', 'browser/media_galleries/fileapi/picasa_data_provider_browsertest.cc',
], ],
}], }],
['OS=="mac"', {
'sources': [
'browser/media_galleries/fileapi/iphoto_data_provider_browsertest.cc',
],
}],
['os_posix == 0 or chromeos == 1', { ['os_posix == 0 or chromeos == 1', {
'sources!': [ 'sources!': [
'common/time_format_browsertest.cc', 'common/time_format_browsertest.cc',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment