blob: ebff63f1f23050882de1c2c85dbc0998b1b725da [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]37858e52010-08-26 00:22:027#include "chrome/browser/prefs/pref_service.h"
[email protected]8ecad5e2010-12-02 21:18:338#include "chrome/browser/profiles/profile.h"
[email protected]2ad4a902010-11-17 06:05:139#include "chrome/browser/ui/browser.h"
[email protected]00070c732011-04-09 15:31:3310#include "chrome/browser/ui/browser_window.h"
[email protected]dfd6ee452010-02-24 19:47:3111#include "chrome/common/pref_names.h"
[email protected]aace40c2011-02-15 17:10:2112#include "net/base/mock_host_resolver.h"
[email protected]dfd6ee452010-02-24 19:47:3113
[email protected]3b20d0192010-10-14 17:29:5714// Possible race in ChromeURLDataManager. http://crbug.com/59198
15#if defined(OS_MACOSX) || defined(OS_LINUX)
[email protected]a5eb2d672010-10-22 07:24:4816#define MAYBE_TabOnRemoved DISABLED_TabOnRemoved
[email protected]3b20d0192010-10-14 17:29:5717#else
18#define MAYBE_TabOnRemoved TabOnRemoved
19#endif
20
[email protected]d479b8e22011-02-09 05:19:4921// Window resizes are not completed by the time the callback happens,
22// so these tests fail on linux. http://crbug.com/72369
23#if defined(OS_LINUX)
24#define MAYBE_FocusWindowDoesNotExitFullscreen \
25 DISABLED_FocusWindowDoesNotExitFullscreen
26#define MAYBE_UpdateWindowSizeExitsFullscreen \
27 DISABLED_UpdateWindowSizeExitsFullscreen
28#else
29#define MAYBE_FocusWindowDoesNotExitFullscreen FocusWindowDoesNotExitFullscreen
30#define MAYBE_UpdateWindowSizeExitsFullscreen UpdateWindowSizeExitsFullscreen
31#endif
32
[email protected]fab201a2011-06-07 00:52:4933IN_PROC_BROWSER_TEST_F(ExtensionApiTest, Tabs) {
[email protected]c80580c72011-02-01 16:23:4134 ASSERT_TRUE(StartTestServer());
[email protected]dfd6ee452010-02-24 19:47:3135
36 // The test creates a tab and checks that the URL of the new tab
37 // is that of the new tab page. Make sure the pref that controls
38 // this is set.
39 browser()->profile()->GetPrefs()->SetBoolean(
40 prefs::kHomePageIsNewTabPage, true);
41
[email protected]9cc688d2010-11-01 06:18:3242 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crud.html")) << message_;
43}
44
[email protected]d0591692011-06-07 23:52:4845IN_PROC_BROWSER_TEST_F(ExtensionApiTest, Tabs2) {
46 ASSERT_TRUE(StartTestServer());
47 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crud2.html")) << message_;
48}
49
[email protected]4ce39882010-11-08 16:06:0550IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabPinned) {
[email protected]c80580c72011-02-01 16:23:4151 ASSERT_TRUE(StartTestServer());
[email protected]4ce39882010-11-08 16:06:0552 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "pinned.html")) << message_;
53}
54
[email protected]9cc688d2010-11-01 06:18:3255IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabMove) {
[email protected]c80580c72011-02-01 16:23:4156 ASSERT_TRUE(StartTestServer());
[email protected]9cc688d2010-11-01 06:18:3257 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "move.html")) << message_;
58}
59
60IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabEvents) {
[email protected]c80580c72011-02-01 16:23:4161 ASSERT_TRUE(StartTestServer());
[email protected]9cc688d2010-11-01 06:18:3262 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "events.html")) << message_;
63}
64
65IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabRelativeURLs) {
[email protected]c80580c72011-02-01 16:23:4166 ASSERT_TRUE(StartTestServer());
[email protected]9cc688d2010-11-01 06:18:3267 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "relative_urls.html"))
68 << message_;
[email protected]9b6d31d2009-09-01 01:44:0369}
[email protected]da9754b2010-04-01 14:56:1970
[email protected]d33a22392011-02-24 21:39:3571IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabCrashBrowser) {
72 ASSERT_TRUE(StartTestServer());
73 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crash.html")) << message_;
74}
75
[email protected]893934382010-05-21 14:09:4176IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabGetCurrent) {
[email protected]761e7162010-10-18 19:26:3977 ASSERT_TRUE(StartTestServer());
[email protected]893934382010-05-21 14:09:4178 ASSERT_TRUE(RunExtensionTest("tabs/get_current")) << message_;
79}
[email protected]e3eafb292010-04-14 21:30:4180
[email protected]893934382010-05-21 14:09:4181IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabConnect) {
[email protected]761e7162010-10-18 19:26:3982 ASSERT_TRUE(StartTestServer());
[email protected]893934382010-05-21 14:09:4183 ASSERT_TRUE(RunExtensionTest("tabs/connect")) << message_;
84}
[email protected]e3eafb292010-04-14 21:30:4185
[email protected]3b20d0192010-10-14 17:29:5786IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_TabOnRemoved) {
[email protected]761e7162010-10-18 19:26:3987 ASSERT_TRUE(StartTestServer());
[email protected]893934382010-05-21 14:09:4188 ASSERT_TRUE(RunExtensionTest("tabs/on_removed")) << message_;
[email protected]e3eafb292010-04-14 21:30:4189}
90
[email protected]3ebc22ea2011-05-26 06:38:0591// Test is timing out on linux and cros and flaky on others.
92// See http://crbug.com/83876
93#if defined(OS_LINUX)
[email protected]e19bd2aa2011-05-26 02:13:4394#define MAYBE_CaptureVisibleTabJpeg DISABLED_CaptureVisibleTabJpeg
95#else
96#define MAYBE_CaptureVisibleTabJpeg FLAKY_CaptureVisibleTabJpeg
97#endif
98IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_CaptureVisibleTabJpeg) {
[email protected]aace40c2011-02-15 17:10:2199 host_resolver()->AddRule("a.com", "127.0.0.1");
100 host_resolver()->AddRule("b.com", "127.0.0.1");
[email protected]761e7162010-10-18 19:26:39101 ASSERT_TRUE(StartTestServer());
[email protected]ff651392010-07-23 20:21:08102 ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
103 "test_jpeg.html")) << message_;
104}
105
[email protected]7d2f35ed2011-05-30 02:59:51106// Test is timing out on linux and cros and flaky on others.
107// See http://crbug.com/83876
108#if defined(OS_LINUX)
[email protected]3ebc22ea2011-05-26 06:38:05109#define MAYBE_CaptureVisibleTabPng DISABLED_CaptureVisibleTabPng
110#else
111#define MAYBE_CaptureVisibleTabPng FLAKY_CaptureVisibleTabPng
112#endif
113IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_CaptureVisibleTabPng) {
[email protected]aace40c2011-02-15 17:10:21114 host_resolver()->AddRule("a.com", "127.0.0.1");
115 host_resolver()->AddRule("b.com", "127.0.0.1");
[email protected]761e7162010-10-18 19:26:39116 ASSERT_TRUE(StartTestServer());
[email protected]ff651392010-07-23 20:21:08117 ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
118 "test_png.html")) << message_;
[email protected]da9754b2010-04-01 14:56:19119}
[email protected]5f362e012010-05-19 20:26:25120
[email protected]64a2b8ab2011-05-26 15:45:36121IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_CaptureVisibleTabRace) {
[email protected]7181ce52011-04-21 18:47:36122 ASSERT_TRUE(StartTestServer());
123 ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
124 "test_race.html")) << message_;
125}
126
127
[email protected]5f362e012010-05-19 20:26:25128IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabsOnUpdated) {
[email protected]761e7162010-10-18 19:26:39129 ASSERT_TRUE(StartTestServer());
[email protected]5f362e012010-05-19 20:26:25130 ASSERT_TRUE(RunExtensionTest("tabs/on_updated")) << message_;
131}
[email protected]1ee2f792011-02-07 13:22:35132
[email protected]d479b8e22011-02-09 05:19:49133IN_PROC_BROWSER_TEST_F(ExtensionApiTest,
134 MAYBE_FocusWindowDoesNotExitFullscreen) {
135 browser()->window()->SetFullscreen(true);
136 bool is_fullscreen = browser()->window()->IsFullscreen();
137 ASSERT_TRUE(RunExtensionTest("window_update/focus")) << message_;
138 ASSERT_EQ(is_fullscreen, browser()->window()->IsFullscreen());
139}
140
141IN_PROC_BROWSER_TEST_F(ExtensionApiTest,
142 MAYBE_UpdateWindowSizeExitsFullscreen) {
143 browser()->window()->SetFullscreen(true);
144 ASSERT_TRUE(RunExtensionTest("window_update/sizing")) << message_;
145 ASSERT_FALSE(browser()->window()->IsFullscreen());
146}
147
148#if defined(OS_WIN)
149IN_PROC_BROWSER_TEST_F(ExtensionApiTest, FocusWindowDoesNotUnmaximize) {
150 gfx::NativeWindow window = browser()->window()->GetNativeHandle();
151 ::SendMessage(window, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
152 ASSERT_TRUE(RunExtensionTest("window_update/focus")) << message_;
153 ASSERT_TRUE(::IsZoomed(window));
154}
155#endif // OS_WIN
156
[email protected]1ee2f792011-02-07 13:22:35157IN_PROC_BROWSER_TEST_F(ExtensionApiTest, IncognitoDisabledByPref) {
158 ASSERT_TRUE(StartTestServer());
159
160 browser()->profile()->GetPrefs()->SetBoolean(prefs::kIncognitoEnabled, false);
161
162 // This makes sure that creating an incognito window fails due to pref
163 // (policy) being set.
164 ASSERT_TRUE(RunExtensionTest("tabs/incognito_disabled")) << message_;
165}
[email protected]e524ff92011-03-30 13:26:58166
167IN_PROC_BROWSER_TEST_F(ExtensionApiTest, GetViewsOfCreatedPopup) {
168 ASSERT_TRUE(StartTestServer());
169 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "get_views_popup.html"))
170 << message_;
171}
172IN_PROC_BROWSER_TEST_F(ExtensionApiTest, GetViewsOfCreatedWindow) {
173 ASSERT_TRUE(StartTestServer());
174 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "get_views_window.html"))
175 << message_;
176}