summaryrefslogtreecommitdiffstats
path: root/extensions/browser/app_window/app_window_browsertest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/browser/app_window/app_window_browsertest.cc')
-rw-r--r--extensions/browser/app_window/app_window_browsertest.cc79
1 files changed, 79 insertions, 0 deletions
diff --git a/extensions/browser/app_window/app_window_browsertest.cc b/extensions/browser/app_window/app_window_browsertest.cc
new file mode 100644
index 0000000..1800111
--- /dev/null
+++ b/extensions/browser/app_window/app_window_browsertest.cc
@@ -0,0 +1,79 @@
+// Copyright 2014 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 "chrome/browser/apps/app_browsertest_util.h"
+#include "extensions/browser/app_window/native_app_window.h"
+
+namespace extensions {
+
+namespace {
+
+typedef PlatformAppBrowserTest AppWindowBrowserTest;
+
+// This test is disabled on Linux because of the unpredictable nature of native
+// windows. We cannot assume that the window manager will insert any title bar
+// at all, so the test may fail on certain window managers.
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#define MAYBE_FrameInsetsForDefaultFrame DISABLED_FrameInsetsForDefaultFrame
+#else
+#define MAYBE_FrameInsetsForDefaultFrame FrameInsetsForDefaultFrame
+#endif
+
+// Verifies that the NativeAppWindows implement GetFrameInsets() correctly.
+// See http://crbug.com/346115
+IN_PROC_BROWSER_TEST_F(AppWindowBrowserTest, MAYBE_FrameInsetsForDefaultFrame) {
+ AppWindow* app_window = CreateTestAppWindow("{}");
+ NativeAppWindow* native_window = app_window->GetBaseWindow();
+ gfx::Insets insets = native_window->GetFrameInsets();
+
+ // It is a reasonable assumption that the top padding must be greater than
+ // the bottom padding due to the title bar.
+ EXPECT_GT(insets.top(), insets.bottom());
+
+ CloseAppWindow(app_window);
+}
+
+// This test is also disabled on Linux because frame: color is ignored on stable
+// and beta channels (so it can fail the same as the previous test).
+// TODO(benwells): Re-enable on Linux after frame: color is on stable.
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#define MAYBE_FrameInsetsForColoredFrame DISABLED_FrameInsetsForColoredFrame
+#else
+#define MAYBE_FrameInsetsForColoredFrame FrameInsetsForColoredFrame
+#endif
+
+// Verifies that the NativeAppWindows implement GetFrameInsets() correctly.
+// See http://crbug.com/346115
+IN_PROC_BROWSER_TEST_F(AppWindowBrowserTest, MAYBE_FrameInsetsForColoredFrame) {
+ AppWindow* app_window =
+ CreateTestAppWindow("{ \"frame\": { \"color\": \"#ffffff\" } }");
+ NativeAppWindow* native_window = app_window->GetBaseWindow();
+ gfx::Insets insets = native_window->GetFrameInsets();
+
+ // It is a reasonable assumption that the top padding must be greater than
+ // the bottom padding due to the title bar.
+ EXPECT_GT(insets.top(), insets.bottom());
+
+ CloseAppWindow(app_window);
+}
+
+// Verifies that the NativeAppWindows implement GetFrameInsets() correctly for
+// frameless windows.
+IN_PROC_BROWSER_TEST_F(AppWindowBrowserTest, FrameInsetsForNoFrame) {
+ AppWindow* app_window = CreateTestAppWindow("{ \"frame\": \"none\" }");
+ NativeAppWindow* native_window = app_window->GetBaseWindow();
+ gfx::Insets insets = native_window->GetFrameInsets();
+
+ // All insets must be zero.
+ EXPECT_EQ(0, insets.top());
+ EXPECT_EQ(0, insets.bottom());
+ EXPECT_EQ(0, insets.left());
+ EXPECT_EQ(0, insets.right());
+
+ CloseAppWindow(app_window);
+}
+
+} // namespace
+
+} // namespace extensions