blob: acb2a4836adf9a272acb97ba66e7514705f836da [file] [log] [blame]
[email protected]1ee2f792011-02-07 13:22:351// Copyright (c) 2011 The Chromium Authors. All rights reserved.
[email protected]9b6d31d2009-09-01 01:44:032// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/extensions/extension_apitest.h"
6
[email protected]d479b8e22011-02-09 05:19:497#include "chrome/browser/browser_window.h"
[email protected]37858e52010-08-26 00:22:028#include "chrome/browser/prefs/pref_service.h"
[email protected]8ecad5e2010-12-02 21:18:339#include "chrome/browser/profiles/profile.h"
[email protected]2ad4a902010-11-17 06:05:1310#include "chrome/browser/ui/browser.h"
[email protected]dfd6ee452010-02-24 19:47:3111#include "chrome/common/pref_names.h"
12
[email protected]3b20d0192010-10-14 17:29:5713// Possible race in ChromeURLDataManager. http://crbug.com/59198
14#if defined(OS_MACOSX) || defined(OS_LINUX)
[email protected]a5eb2d672010-10-22 07:24:4815#define MAYBE_TabOnRemoved DISABLED_TabOnRemoved
[email protected]3b20d0192010-10-14 17:29:5716#else
17#define MAYBE_TabOnRemoved TabOnRemoved
18#endif
19
[email protected]2ba5f33b2010-11-02 20:36:2320// Crashes on linux views. http://crbug.com/61592
[email protected]b84129962010-11-02 16:25:4121#if defined(OS_LINUX) && defined(TOOLKIT_VIEWS)
[email protected]2ba5f33b2010-11-02 20:36:2322#define MAYBE_Tabs DISABLED_Tabs
[email protected]b84129962010-11-02 16:25:4123#else
24#define MAYBE_Tabs Tabs
25#endif
26
[email protected]d479b8e22011-02-09 05:19:4927// Window resizes are not completed by the time the callback happens,
28// so these tests fail on linux. http://crbug.com/72369
29#if defined(OS_LINUX)
30#define MAYBE_FocusWindowDoesNotExitFullscreen \
31 DISABLED_FocusWindowDoesNotExitFullscreen
32#define MAYBE_UpdateWindowSizeExitsFullscreen \
33 DISABLED_UpdateWindowSizeExitsFullscreen
34#else
35#define MAYBE_FocusWindowDoesNotExitFullscreen FocusWindowDoesNotExitFullscreen
36#define MAYBE_UpdateWindowSizeExitsFullscreen UpdateWindowSizeExitsFullscreen
37#endif
38
[email protected]b84129962010-11-02 16:25:4139IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_Tabs) {
[email protected]c80580c72011-02-01 16:23:4140 ASSERT_TRUE(StartTestServer());
[email protected]dfd6ee452010-02-24 19:47:3141
42 // The test creates a tab and checks that the URL of the new tab
43 // is that of the new tab page. Make sure the pref that controls
44 // this is set.
45 browser()->profile()->GetPrefs()->SetBoolean(
46 prefs::kHomePageIsNewTabPage, true);
47
[email protected]9cc688d2010-11-01 06:18:3248 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crud.html")) << message_;
49}
50
[email protected]4ce39882010-11-08 16:06:0551IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabPinned) {
[email protected]c80580c72011-02-01 16:23:4152 ASSERT_TRUE(StartTestServer());
[email protected]4ce39882010-11-08 16:06:0553 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "pinned.html")) << message_;
54}
55
[email protected]9cc688d2010-11-01 06:18:3256IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabMove) {
[email protected]c80580c72011-02-01 16:23:4157 ASSERT_TRUE(StartTestServer());
[email protected]9cc688d2010-11-01 06:18:3258 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "move.html")) << message_;
59}
60
61IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabEvents) {
[email protected]c80580c72011-02-01 16:23:4162 ASSERT_TRUE(StartTestServer());
[email protected]9cc688d2010-11-01 06:18:3263 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "events.html")) << message_;
64}
65
66IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabRelativeURLs) {
[email protected]c80580c72011-02-01 16:23:4167 ASSERT_TRUE(StartTestServer());
[email protected]9cc688d2010-11-01 06:18:3268 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "relative_urls.html"))
69 << message_;
[email protected]9b6d31d2009-09-01 01:44:0370}
[email protected]da9754b2010-04-01 14:56:1971
[email protected]893934382010-05-21 14:09:4172IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabGetCurrent) {
[email protected]761e7162010-10-18 19:26:3973 ASSERT_TRUE(StartTestServer());
[email protected]893934382010-05-21 14:09:4174 ASSERT_TRUE(RunExtensionTest("tabs/get_current")) << message_;
75}
[email protected]e3eafb292010-04-14 21:30:4176
[email protected]893934382010-05-21 14:09:4177IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabConnect) {
[email protected]761e7162010-10-18 19:26:3978 ASSERT_TRUE(StartTestServer());
[email protected]893934382010-05-21 14:09:4179 ASSERT_TRUE(RunExtensionTest("tabs/connect")) << message_;
80}
[email protected]e3eafb292010-04-14 21:30:4181
[email protected]3b20d0192010-10-14 17:29:5782IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_TabOnRemoved) {
[email protected]761e7162010-10-18 19:26:3983 ASSERT_TRUE(StartTestServer());
[email protected]893934382010-05-21 14:09:4184 ASSERT_TRUE(RunExtensionTest("tabs/on_removed")) << message_;
[email protected]e3eafb292010-04-14 21:30:4185}
86
[email protected]ff651392010-07-23 20:21:0887IN_PROC_BROWSER_TEST_F(ExtensionApiTest, CaptureVisibleTabJpeg) {
[email protected]761e7162010-10-18 19:26:3988 ASSERT_TRUE(StartTestServer());
[email protected]ff651392010-07-23 20:21:0889 ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
90 "test_jpeg.html")) << message_;
91}
92
[email protected]44aa9be2010-09-16 02:56:1793IN_PROC_BROWSER_TEST_F(ExtensionApiTest, CaptureVisibleTabPng) {
[email protected]761e7162010-10-18 19:26:3994 ASSERT_TRUE(StartTestServer());
[email protected]ff651392010-07-23 20:21:0895 ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
96 "test_png.html")) << message_;
[email protected]da9754b2010-04-01 14:56:1997}
[email protected]5f362e012010-05-19 20:26:2598
99IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabsOnUpdated) {
[email protected]761e7162010-10-18 19:26:39100 ASSERT_TRUE(StartTestServer());
[email protected]5f362e012010-05-19 20:26:25101 ASSERT_TRUE(RunExtensionTest("tabs/on_updated")) << message_;
102}
[email protected]1ee2f792011-02-07 13:22:35103
[email protected]d479b8e22011-02-09 05:19:49104IN_PROC_BROWSER_TEST_F(ExtensionApiTest,
105 MAYBE_FocusWindowDoesNotExitFullscreen) {
106 browser()->window()->SetFullscreen(true);
107 bool is_fullscreen = browser()->window()->IsFullscreen();
108 ASSERT_TRUE(RunExtensionTest("window_update/focus")) << message_;
109 ASSERT_EQ(is_fullscreen, browser()->window()->IsFullscreen());
110}
111
112IN_PROC_BROWSER_TEST_F(ExtensionApiTest,
113 MAYBE_UpdateWindowSizeExitsFullscreen) {
114 browser()->window()->SetFullscreen(true);
115 ASSERT_TRUE(RunExtensionTest("window_update/sizing")) << message_;
116 ASSERT_FALSE(browser()->window()->IsFullscreen());
117}
118
119#if defined(OS_WIN)
120IN_PROC_BROWSER_TEST_F(ExtensionApiTest, FocusWindowDoesNotUnmaximize) {
121 gfx::NativeWindow window = browser()->window()->GetNativeHandle();
122 ::SendMessage(window, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
123 ASSERT_TRUE(RunExtensionTest("window_update/focus")) << message_;
124 ASSERT_TRUE(::IsZoomed(window));
125}
126#endif // OS_WIN
127
[email protected]1ee2f792011-02-07 13:22:35128IN_PROC_BROWSER_TEST_F(ExtensionApiTest, IncognitoDisabledByPref) {
129 ASSERT_TRUE(StartTestServer());
130
131 browser()->profile()->GetPrefs()->SetBoolean(prefs::kIncognitoEnabled, false);
132
133 // This makes sure that creating an incognito window fails due to pref
134 // (policy) being set.
135 ASSERT_TRUE(RunExtensionTest("tabs/incognito_disabled")) << message_;
136}