blob: fab22d9e35466225238aecce3db257cb673d4b9a [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]2ba5f33b2010-11-02 20:36:2321// Crashes on linux views. http://crbug.com/61592
[email protected]b84129962010-11-02 16:25:4122#if defined(OS_LINUX) && defined(TOOLKIT_VIEWS)
[email protected]2ba5f33b2010-11-02 20:36:2323#define MAYBE_Tabs DISABLED_Tabs
[email protected]b84129962010-11-02 16:25:4124#else
25#define MAYBE_Tabs Tabs
26#endif
27
[email protected]d479b8e22011-02-09 05:19:4928// Window resizes are not completed by the time the callback happens,
29// so these tests fail on linux. http://crbug.com/72369
30#if defined(OS_LINUX)
31#define MAYBE_FocusWindowDoesNotExitFullscreen \
32 DISABLED_FocusWindowDoesNotExitFullscreen
33#define MAYBE_UpdateWindowSizeExitsFullscreen \
34 DISABLED_UpdateWindowSizeExitsFullscreen
35#else
36#define MAYBE_FocusWindowDoesNotExitFullscreen FocusWindowDoesNotExitFullscreen
37#define MAYBE_UpdateWindowSizeExitsFullscreen UpdateWindowSizeExitsFullscreen
38#endif
39
[email protected]b84129962010-11-02 16:25:4140IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_Tabs) {
[email protected]c80580c72011-02-01 16:23:4141 ASSERT_TRUE(StartTestServer());
[email protected]dfd6ee452010-02-24 19:47:3142
43 // The test creates a tab and checks that the URL of the new tab
44 // is that of the new tab page. Make sure the pref that controls
45 // this is set.
46 browser()->profile()->GetPrefs()->SetBoolean(
47 prefs::kHomePageIsNewTabPage, true);
48
[email protected]9cc688d2010-11-01 06:18:3249 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crud.html")) << message_;
50}
51
[email protected]4ce39882010-11-08 16:06:0552IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabPinned) {
[email protected]c80580c72011-02-01 16:23:4153 ASSERT_TRUE(StartTestServer());
[email protected]4ce39882010-11-08 16:06:0554 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "pinned.html")) << message_;
55}
56
[email protected]9cc688d2010-11-01 06:18:3257IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabMove) {
[email protected]c80580c72011-02-01 16:23:4158 ASSERT_TRUE(StartTestServer());
[email protected]9cc688d2010-11-01 06:18:3259 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "move.html")) << message_;
60}
61
62IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabEvents) {
[email protected]c80580c72011-02-01 16:23:4163 ASSERT_TRUE(StartTestServer());
[email protected]9cc688d2010-11-01 06:18:3264 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "events.html")) << message_;
65}
66
67IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabRelativeURLs) {
[email protected]c80580c72011-02-01 16:23:4168 ASSERT_TRUE(StartTestServer());
[email protected]9cc688d2010-11-01 06:18:3269 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "relative_urls.html"))
70 << message_;
[email protected]9b6d31d2009-09-01 01:44:0371}
[email protected]da9754b2010-04-01 14:56:1972
[email protected]d33a22392011-02-24 21:39:3573IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabCrashBrowser) {
74 ASSERT_TRUE(StartTestServer());
75 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crash.html")) << message_;
76}
77
[email protected]893934382010-05-21 14:09:4178IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabGetCurrent) {
[email protected]761e7162010-10-18 19:26:3979 ASSERT_TRUE(StartTestServer());
[email protected]893934382010-05-21 14:09:4180 ASSERT_TRUE(RunExtensionTest("tabs/get_current")) << message_;
81}
[email protected]e3eafb292010-04-14 21:30:4182
[email protected]893934382010-05-21 14:09:4183IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabConnect) {
[email protected]761e7162010-10-18 19:26:3984 ASSERT_TRUE(StartTestServer());
[email protected]893934382010-05-21 14:09:4185 ASSERT_TRUE(RunExtensionTest("tabs/connect")) << message_;
86}
[email protected]e3eafb292010-04-14 21:30:4187
[email protected]3b20d0192010-10-14 17:29:5788IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_TabOnRemoved) {
[email protected]761e7162010-10-18 19:26:3989 ASSERT_TRUE(StartTestServer());
[email protected]893934382010-05-21 14:09:4190 ASSERT_TRUE(RunExtensionTest("tabs/on_removed")) << message_;
[email protected]e3eafb292010-04-14 21:30:4191}
92
[email protected]ff651392010-07-23 20:21:0893IN_PROC_BROWSER_TEST_F(ExtensionApiTest, CaptureVisibleTabJpeg) {
[email protected]aace40c2011-02-15 17:10:2194 host_resolver()->AddRule("a.com", "127.0.0.1");
95 host_resolver()->AddRule("b.com", "127.0.0.1");
[email protected]761e7162010-10-18 19:26:3996 ASSERT_TRUE(StartTestServer());
[email protected]ff651392010-07-23 20:21:0897 ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
98 "test_jpeg.html")) << message_;
99}
100
[email protected]44aa9be2010-09-16 02:56:17101IN_PROC_BROWSER_TEST_F(ExtensionApiTest, CaptureVisibleTabPng) {
[email protected]aace40c2011-02-15 17:10:21102 host_resolver()->AddRule("a.com", "127.0.0.1");
103 host_resolver()->AddRule("b.com", "127.0.0.1");
[email protected]761e7162010-10-18 19:26:39104 ASSERT_TRUE(StartTestServer());
[email protected]ff651392010-07-23 20:21:08105 ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
106 "test_png.html")) << message_;
[email protected]da9754b2010-04-01 14:56:19107}
[email protected]5f362e012010-05-19 20:26:25108
109IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabsOnUpdated) {
[email protected]761e7162010-10-18 19:26:39110 ASSERT_TRUE(StartTestServer());
[email protected]5f362e012010-05-19 20:26:25111 ASSERT_TRUE(RunExtensionTest("tabs/on_updated")) << message_;
112}
[email protected]1ee2f792011-02-07 13:22:35113
[email protected]d479b8e22011-02-09 05:19:49114IN_PROC_BROWSER_TEST_F(ExtensionApiTest,
115 MAYBE_FocusWindowDoesNotExitFullscreen) {
116 browser()->window()->SetFullscreen(true);
117 bool is_fullscreen = browser()->window()->IsFullscreen();
118 ASSERT_TRUE(RunExtensionTest("window_update/focus")) << message_;
119 ASSERT_EQ(is_fullscreen, browser()->window()->IsFullscreen());
120}
121
122IN_PROC_BROWSER_TEST_F(ExtensionApiTest,
123 MAYBE_UpdateWindowSizeExitsFullscreen) {
124 browser()->window()->SetFullscreen(true);
125 ASSERT_TRUE(RunExtensionTest("window_update/sizing")) << message_;
126 ASSERT_FALSE(browser()->window()->IsFullscreen());
127}
128
129#if defined(OS_WIN)
130IN_PROC_BROWSER_TEST_F(ExtensionApiTest, FocusWindowDoesNotUnmaximize) {
131 gfx::NativeWindow window = browser()->window()->GetNativeHandle();
132 ::SendMessage(window, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
133 ASSERT_TRUE(RunExtensionTest("window_update/focus")) << message_;
134 ASSERT_TRUE(::IsZoomed(window));
135}
136#endif // OS_WIN
137
[email protected]1ee2f792011-02-07 13:22:35138IN_PROC_BROWSER_TEST_F(ExtensionApiTest, IncognitoDisabledByPref) {
139 ASSERT_TRUE(StartTestServer());
140
141 browser()->profile()->GetPrefs()->SetBoolean(prefs::kIncognitoEnabled, false);
142
143 // This makes sure that creating an incognito window fails due to pref
144 // (policy) being set.
145 ASSERT_TRUE(RunExtensionTest("tabs/incognito_disabled")) << message_;
146}
[email protected]e524ff92011-03-30 13:26:58147
148IN_PROC_BROWSER_TEST_F(ExtensionApiTest, GetViewsOfCreatedPopup) {
149 ASSERT_TRUE(StartTestServer());
150 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "get_views_popup.html"))
151 << message_;
152}
153IN_PROC_BROWSER_TEST_F(ExtensionApiTest, GetViewsOfCreatedWindow) {
154 ASSERT_TRUE(StartTestServer());
155 ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "get_views_window.html"))
156 << message_;
157}