[email protected] | 518f4d9 | 2012-01-11 20:07:50 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | 9b6d31d | 2009-09-01 01:44:03 | [diff] [blame] | 2 | // 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 | |
Ramin Halavati | 1e2a1af | 2018-08-13 07:05:58 | [diff] [blame] | 7 | #include "base/strings/stringprintf.h" |
avi | a2f4804a | 2015-12-24 23:11:13 | [diff] [blame] | 8 | #include "build/build_config.h" |
Ramin Halavati | 1e2a1af | 2018-08-13 07:05:58 | [diff] [blame] | 9 | #include "chrome/browser/extensions/extension_tab_util.h" |
[email protected] | 4e94ab3 | 2011-08-05 05:28:27 | [diff] [blame] | 10 | #include "chrome/browser/prefs/incognito_mode_prefs.h" |
[email protected] | 8ecad5e | 2010-12-02 21:18:33 | [diff] [blame] | 11 | #include "chrome/browser/profiles/profile.h" |
[email protected] | 2ad4a90 | 2010-11-17 06:05:13 | [diff] [blame] | 12 | #include "chrome/browser/ui/browser.h" |
[email protected] | 00070c73 | 2011-04-09 15:31:33 | [diff] [blame] | 13 | #include "chrome/browser/ui/browser_window.h" |
[email protected] | 886f114 | 2012-05-03 20:00:16 | [diff] [blame] | 14 | #include "chrome/common/chrome_switches.h" |
[email protected] | dfd6ee45 | 2010-02-24 19:47:31 | [diff] [blame] | 15 | #include "chrome/common/pref_names.h" |
[email protected] | 886f114 | 2012-05-03 20:00:16 | [diff] [blame] | 16 | #include "chrome/common/url_constants.h" |
brettw | b1fc1b8 | 2016-02-02 00:19:08 | [diff] [blame] | 17 | #include "components/prefs/pref_service.h" |
[email protected] | f2cb3cf | 2013-03-21 01:40:53 | [diff] [blame] | 18 | #include "net/dns/mock_host_resolver.h" |
[email protected] | dfd6ee45 | 2010-02-24 19:47:31 | [diff] [blame] | 19 | |
[email protected] | 517fce72 | 2014-01-15 05:16:14 | [diff] [blame] | 20 | #if defined(OS_WIN) |
[email protected] | 517fce72 | 2014-01-15 05:16:14 | [diff] [blame] | 21 | #include "ui/aura/window.h" |
[email protected] | 7a60cd3a | 2014-03-20 20:54:57 | [diff] [blame] | 22 | #include "ui/aura/window_tree_host.h" |
[email protected] | 517fce72 | 2014-01-15 05:16:14 | [diff] [blame] | 23 | #endif |
[email protected] | 3b20d019 | 2010-10-14 17:29:57 | [diff] [blame] | 24 | |
Devlin Cronin | ef3e37e | 2018-05-14 23:47:24 | [diff] [blame] | 25 | class ExtensionApiTabTest : public extensions::ExtensionApiTest { |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 26 | public: |
| 27 | void SetUpOnMainThread() override { |
Devlin Cronin | ef3e37e | 2018-05-14 23:47:24 | [diff] [blame] | 28 | extensions::ExtensionApiTest::SetUpOnMainThread(); |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 29 | host_resolver()->AddRule("*", "127.0.0.1"); |
| 30 | ASSERT_TRUE(StartEmbeddedTestServer()); |
| 31 | } |
| 32 | }; |
| 33 | |
[email protected] | bc7c22d | 2013-07-01 21:00:30 | [diff] [blame] | 34 | #if defined(USE_AURA) || defined(OS_MACOSX) |
[email protected] | ad0c872 | 2012-03-02 20:17:45 | [diff] [blame] | 35 | // Maximizing/fullscreen popup window doesn't work on aura's managed mode. |
| 36 | // See bug crbug.com/116305. |
[email protected] | 4639187 | 2012-08-19 20:12:25 | [diff] [blame] | 37 | // Mac: http://crbug.com/103912 |
[email protected] | ad0c872 | 2012-03-02 20:17:45 | [diff] [blame] | 38 | #define MAYBE_UpdateWindowShowState DISABLED_UpdateWindowShowState |
| 39 | #else |
| 40 | #define MAYBE_UpdateWindowShowState UpdateWindowShowState |
[email protected] | bc7c22d | 2013-07-01 21:00:30 | [diff] [blame] | 41 | #endif // defined(USE_AURA) || defined(OS_MACOSX) |
[email protected] | ad0c872 | 2012-03-02 20:17:45 | [diff] [blame] | 42 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 43 | class ExtensionApiNewTabTest : public ExtensionApiTabTest { |
[email protected] | 886f114 | 2012-05-03 20:00:16 | [diff] [blame] | 44 | public: |
| 45 | ExtensionApiNewTabTest() {} |
avi | 3ef9ec9e | 2014-12-22 22:50:17 | [diff] [blame] | 46 | void SetUpCommandLine(base::CommandLine* command_line) override { |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 47 | ExtensionApiTabTest::SetUpCommandLine(command_line); |
[email protected] | 886f114 | 2012-05-03 20:00:16 | [diff] [blame] | 48 | // Override the default which InProcessBrowserTest adds if it doesn't see a |
| 49 | // homepage. |
| 50 | command_line->AppendSwitchASCII( |
| 51 | switches::kHomePage, chrome::kChromeUINewTabURL); |
| 52 | } |
| 53 | }; |
| 54 | |
Alexis Hetu | 5da0d0d | 2018-08-02 21:19:11 | [diff] [blame] | 55 | // Flaky on chromeos: http://crbug.com/870322 |
| 56 | #if defined(OS_CHROMEOS) |
| 57 | #define MAYBE_Tabs DISABLED_Tabs |
| 58 | #else |
| 59 | #define MAYBE_Tabs Tabs |
| 60 | #endif |
| 61 | IN_PROC_BROWSER_TEST_F(ExtensionApiNewTabTest, MAYBE_Tabs) { |
[email protected] | dfd6ee45 | 2010-02-24 19:47:31 | [diff] [blame] | 62 | // The test creates a tab and checks that the URL of the new tab |
| 63 | // is that of the new tab page. Make sure the pref that controls |
| 64 | // this is set. |
| 65 | browser()->profile()->GetPrefs()->SetBoolean( |
| 66 | prefs::kHomePageIsNewTabPage, true); |
| 67 | |
[email protected] | 9cc688d | 2010-11-01 06:18:32 | [diff] [blame] | 68 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crud.html")) << message_; |
| 69 | } |
| 70 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 71 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabAudible) { |
jared.sohn | 09a3ccc | 2015-07-09 03:47:30 | [diff] [blame] | 72 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "audible.html")) << message_; |
| 73 | } |
| 74 | |
jam | 1d5d4e3 | 2015-08-16 22:10:52 | [diff] [blame] | 75 | // http://crbug.com/521410 |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 76 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, DISABLED_TabMuted) { |
jared.sohn | 09a3ccc | 2015-07-09 03:47:30 | [diff] [blame] | 77 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "muted.html")) << message_; |
| 78 | } |
| 79 | |
[email protected] | 634c59f | 2013-05-07 16:30:21 | [diff] [blame] | 80 | // Flaky on windows: http://crbug.com/238667 |
| 81 | #if defined(OS_WIN) |
| 82 | #define MAYBE_Tabs2 DISABLED_Tabs2 |
| 83 | #else |
| 84 | #define MAYBE_Tabs2 Tabs2 |
| 85 | #endif |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 86 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, MAYBE_Tabs2) { |
[email protected] | d059169 | 2011-06-07 23:52:48 | [diff] [blame] | 87 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crud2.html")) << message_; |
| 88 | } |
| 89 | |
[email protected] | d45241c | 2012-09-17 14:27:37 | [diff] [blame] | 90 | // crbug.com/149924 |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 91 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, DISABLED_TabDuplicate) { |
[email protected] | 37bb582 | 2012-09-10 15:09:57 | [diff] [blame] | 92 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "duplicate.html")) << message_; |
| 93 | } |
| 94 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 95 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabSize) { |
[email protected] | a16a5a5 | 2013-08-16 17:23:35 | [diff] [blame] | 96 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "tab_size.html")) << message_; |
| 97 | } |
| 98 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 99 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabUpdate) { |
[email protected] | a994358f | 2011-09-22 03:59:00 | [diff] [blame] | 100 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "update.html")) << message_; |
| 101 | } |
| 102 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 103 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabPinned) { |
[email protected] | 4ce3988 | 2010-11-08 16:06:05 | [diff] [blame] | 104 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "pinned.html")) << message_; |
| 105 | } |
| 106 | |
[email protected] | fa9b5f8 | 2013-05-07 19:26:17 | [diff] [blame] | 107 | // Flaky on windows: http://crbug.com/238667 |
| 108 | #if defined(OS_WIN) |
| 109 | #define MAYBE_TabMove DISABLED_TabMove |
| 110 | #else |
| 111 | #define MAYBE_TabMove TabMove |
| 112 | #endif |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 113 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, MAYBE_TabMove) { |
[email protected] | 9cc688d | 2010-11-01 06:18:32 | [diff] [blame] | 114 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "move.html")) << message_; |
| 115 | } |
| 116 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 117 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabEvents) { |
[email protected] | 9cc688d | 2010-11-01 06:18:32 | [diff] [blame] | 118 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "events.html")) << message_; |
| 119 | } |
| 120 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 121 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, DISABLED_TabRelativeURLs) { |
[email protected] | 9cc688d | 2010-11-01 06:18:32 | [diff] [blame] | 122 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "relative_urls.html")) |
| 123 | << message_; |
[email protected] | 9b6d31d | 2009-09-01 01:44:03 | [diff] [blame] | 124 | } |
[email protected] | da9754b | 2010-04-01 14:56:19 | [diff] [blame] | 125 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 126 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabQuery) { |
[email protected] | 8c3495c | 2011-09-28 03:32:30 | [diff] [blame] | 127 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "query.html")) << message_; |
| 128 | } |
| 129 | |
[email protected] | 7c4f1ad | 2013-05-08 13:16:44 | [diff] [blame] | 130 | // Flaky on windows: http://crbug.com/239022 |
| 131 | #if defined(OS_WIN) |
| 132 | #define MAYBE_TabHighlight DISABLED_TabHighlight |
| 133 | #else |
| 134 | #define MAYBE_TabHighlight TabHighlight |
| 135 | #endif |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 136 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, MAYBE_TabHighlight) { |
[email protected] | 8c3495c | 2011-09-28 03:32:30 | [diff] [blame] | 137 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "highlight.html")) << message_; |
| 138 | } |
| 139 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 140 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabCrashBrowser) { |
[email protected] | d33a2239 | 2011-02-24 21:39:35 | [diff] [blame] | 141 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crash.html")) << message_; |
| 142 | } |
| 143 | |
[email protected] | b78885c | 2013-05-07 16:53:16 | [diff] [blame] | 144 | // Flaky on windows: http://crbug.com/238667 |
| 145 | #if defined(OS_WIN) |
| 146 | #define MAYBE_TabOpener DISABLED_TabOpener |
| 147 | #else |
| 148 | #define MAYBE_TabOpener TabOpener |
| 149 | #endif |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 150 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, MAYBE_TabOpener) { |
[email protected] | 5fe4c12 | 2012-01-28 08:50:33 | [diff] [blame] | 151 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "opener.html")) << message_; |
| 152 | } |
| 153 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 154 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, DISABLED_TabGetCurrent) { |
[email protected] | 89393438 | 2010-05-21 14:09:41 | [diff] [blame] | 155 | ASSERT_TRUE(RunExtensionTest("tabs/get_current")) << message_; |
| 156 | } |
[email protected] | e3eafb29 | 2010-04-14 21:30:41 | [diff] [blame] | 157 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 158 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabConnect) { |
[email protected] | 89393438 | 2010-05-21 14:09:41 | [diff] [blame] | 159 | ASSERT_TRUE(RunExtensionTest("tabs/connect")) << message_; |
| 160 | } |
[email protected] | e3eafb29 | 2010-04-14 21:30:41 | [diff] [blame] | 161 | |
[email protected] | eacc2f4 | 2013-06-17 18:27:56 | [diff] [blame] | 162 | // Possible race in ChromeURLDataManager. http://crbug.com/59198 |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 163 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, DISABLED_TabOnRemoved) { |
[email protected] | 89393438 | 2010-05-21 14:09:41 | [diff] [blame] | 164 | ASSERT_TRUE(RunExtensionTest("tabs/on_removed")) << message_; |
[email protected] | e3eafb29 | 2010-04-14 21:30:41 | [diff] [blame] | 165 | } |
| 166 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 167 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, DISABLED_TabReload) { |
[email protected] | 5d93511 | 2011-09-07 09:24:54 | [diff] [blame] | 168 | ASSERT_TRUE(RunExtensionTest("tabs/reload")) << message_; |
| 169 | } |
| 170 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 171 | class ExtensionApiCaptureTest : public ExtensionApiTabTest { |
[email protected] | 4baecad | 2013-09-12 23:00:36 | [diff] [blame] | 172 | public: |
| 173 | ExtensionApiCaptureTest() {} |
[email protected] | 577e241 | 2014-01-22 01:42:52 | [diff] [blame] | 174 | |
dcheng | 7219181 | 2014-10-28 20:49:56 | [diff] [blame] | 175 | void SetUp() override { |
[email protected] | 577e241 | 2014-01-22 01:42:52 | [diff] [blame] | 176 | EnablePixelOutput(); |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 177 | ExtensionApiTabTest::SetUp(); |
[email protected] | 4baecad | 2013-09-12 23:00:36 | [diff] [blame] | 178 | } |
| 179 | }; |
| 180 | |
| 181 | IN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest, |
| 182 | DISABLED_CaptureVisibleTabJpeg) { |
[email protected] | ff65139 | 2010-07-23 20:21:08 | [diff] [blame] | 183 | ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab", |
| 184 | "test_jpeg.html")) << message_; |
| 185 | } |
| 186 | |
[email protected] | 4baecad | 2013-09-12 23:00:36 | [diff] [blame] | 187 | IN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest, DISABLED_CaptureVisibleTabPng) { |
[email protected] | ff65139 | 2010-07-23 20:21:08 | [diff] [blame] | 188 | ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab", |
| 189 | "test_png.html")) << message_; |
[email protected] | da9754b | 2010-04-01 14:56:19 | [diff] [blame] | 190 | } |
[email protected] | 5f362e01 | 2010-05-19 20:26:25 | [diff] [blame] | 191 | |
[email protected] | d389e15 | 2012-02-23 19:40:42 | [diff] [blame] | 192 | // Times out on non-Windows. |
| 193 | // See http://crbug.com/80212 |
[email protected] | 4baecad | 2013-09-12 23:00:36 | [diff] [blame] | 194 | IN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest, |
| 195 | DISABLED_CaptureVisibleTabRace) { |
[email protected] | 7181ce5 | 2011-04-21 18:47:36 | [diff] [blame] | 196 | ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab", |
| 197 | "test_race.html")) << message_; |
| 198 | } |
| 199 | |
[email protected] | 6ee9e90 | 2014-04-28 12:00:40 | [diff] [blame] | 200 | |
| 201 | // Disabled for being flaky, see http://crbug/367695. |
| 202 | IN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest, |
| 203 | DISABLED_CaptureVisibleFile) { |
[email protected] | d10f460 | 2011-06-16 15:44:50 | [diff] [blame] | 204 | ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab", |
| 205 | "test_file.html")) << message_; |
| 206 | } |
| 207 | |
[email protected] | 4baecad | 2013-09-12 23:00:36 | [diff] [blame] | 208 | IN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest, CaptureVisibleDisabled) { |
[email protected] | 7ea4870 | 2012-09-03 20:41:06 | [diff] [blame] | 209 | browser()->profile()->GetPrefs()->SetBoolean(prefs::kDisableScreenshots, |
| 210 | true); |
| 211 | ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab", |
| 212 | "test_disabled.html")) << message_; |
| 213 | } |
| 214 | |
Konstantin Ganenko | 123a3a5 | 2018-03-01 02:26:54 | [diff] [blame] | 215 | IN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest, CaptureNullWindow) { |
| 216 | ASSERT_TRUE(RunExtensionTest("tabs/capture_visible_tab_null_window")) |
| 217 | << message_; |
| 218 | } |
| 219 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 220 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabsOnCreated) { |
limasdf | 82dee7db | 2016-01-05 00:05:22 | [diff] [blame] | 221 | ASSERT_TRUE(RunExtensionTest("tabs/on_created")) << message_; |
| 222 | } |
| 223 | |
Istiaque Ahmed | 1e59aec | 2019-06-05 22:40:24 | [diff] [blame] | 224 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, LazyBackgroundTabsOnCreated) { |
| 225 | ASSERT_TRUE(RunExtensionTest("tabs/lazy_background_on_created")) << message_; |
| 226 | } |
| 227 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 228 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabsOnUpdated) { |
[email protected] | 5f362e01 | 2010-05-19 20:26:25 | [diff] [blame] | 229 | ASSERT_TRUE(RunExtensionTest("tabs/on_updated")) << message_; |
| 230 | } |
[email protected] | 1ee2f79 | 2011-02-07 13:22:35 | [diff] [blame] | 231 | |
Guido Urdaneta | 634456e6 | 2016-10-19 13:05:32 | [diff] [blame] | 232 | // Flaky on Linux. http://crbug.com/657376. |
| 233 | #if defined(OS_LINUX) |
| 234 | #define MAYBE_TabsNoPermissions DISABLED_TabsNoPermissions |
| 235 | #else |
| 236 | #define MAYBE_TabsNoPermissions TabsNoPermissions |
| 237 | #endif |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 238 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, MAYBE_TabsNoPermissions) { |
[email protected] | 304fd15 | 2013-01-12 16:54:44 | [diff] [blame] | 239 | ASSERT_TRUE(RunExtensionTest("tabs/no_permissions")) << message_; |
| 240 | } |
| 241 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 242 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, HostPermission) { |
limasdf | 6dcdc44 | 2016-02-26 04:58:26 | [diff] [blame] | 243 | ASSERT_TRUE(RunExtensionTest("tabs/host_permission")) << message_; |
| 244 | } |
| 245 | |
Tsuyoshi Horo | 3cc2da9 | 2018-12-18 03:06:16 | [diff] [blame] | 246 | // Flaky on Windows, Mac and Linux. http://crbug.com/820110. |
| 247 | #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) |
Hongchan Choi | 9c40fa5 | 2018-03-08 22:11:19 | [diff] [blame] | 248 | #define MAYBE_UpdateWindowResize DISABLED_UpdateWindowResize |
| 249 | #else |
| 250 | #define MAYBE_UpdateWindowResize UpdateWindowResize |
| 251 | #endif |
| 252 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, MAYBE_UpdateWindowResize) { |
[email protected] | 518f4d9 | 2012-01-11 20:07:50 | [diff] [blame] | 253 | ASSERT_TRUE(RunExtensionTest("window_update/resize")) << message_; |
| 254 | } |
| 255 | |
[email protected] | 517fce72 | 2014-01-15 05:16:14 | [diff] [blame] | 256 | #if defined(OS_WIN) |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 257 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, FocusWindowDoesNotUnmaximize) { |
[email protected] | 2374d181 | 2014-03-04 03:42:27 | [diff] [blame] | 258 | HWND window = |
| 259 | browser()->window()->GetNativeWindow()->GetHost()->GetAcceleratedWidget(); |
[email protected] | d479b8e2 | 2011-02-09 05:19:49 | [diff] [blame] | 260 | ::SendMessage(window, WM_SYSCOMMAND, SC_MAXIMIZE, 0); |
| 261 | ASSERT_TRUE(RunExtensionTest("window_update/focus")) << message_; |
| 262 | ASSERT_TRUE(::IsZoomed(window)); |
| 263 | } |
| 264 | #endif // OS_WIN |
| 265 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 266 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, MAYBE_UpdateWindowShowState) { |
[email protected] | 541e3ee | 2011-11-22 01:31:10 | [diff] [blame] | 267 | ASSERT_TRUE(RunExtensionTest("window_update/show_state")) << message_; |
| 268 | } |
| 269 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 270 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, IncognitoDisabledByPref) { |
[email protected] | 4e94ab3 | 2011-08-05 05:28:27 | [diff] [blame] | 271 | IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(), |
| 272 | IncognitoModePrefs::DISABLED); |
[email protected] | 1ee2f79 | 2011-02-07 13:22:35 | [diff] [blame] | 273 | |
| 274 | // This makes sure that creating an incognito window fails due to pref |
| 275 | // (policy) being set. |
| 276 | ASSERT_TRUE(RunExtensionTest("tabs/incognito_disabled")) << message_; |
| 277 | } |
[email protected] | e524ff9 | 2011-03-30 13:26:58 | [diff] [blame] | 278 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 279 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, DISABLED_GetViewsOfCreatedPopup) { |
[email protected] | e524ff9 | 2011-03-30 13:26:58 | [diff] [blame] | 280 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "get_views_popup.html")) |
| 281 | << message_; |
| 282 | } |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 283 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, DISABLED_GetViewsOfCreatedWindow) { |
[email protected] | e524ff9 | 2011-03-30 13:26:58 | [diff] [blame] | 284 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "get_views_window.html")) |
| 285 | << message_; |
| 286 | } |
[email protected] | f215c3c | 2011-11-01 02:01:12 | [diff] [blame] | 287 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 288 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, OnUpdatedDiscardedState) { |
andersoncss | 94afe44 | 2016-07-30 00:48:07 | [diff] [blame] | 289 | ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "discarded.html")) << message_; |
| 290 | } |
| 291 | |
jam | bb11ed74 | 2017-05-01 17:27:59 | [diff] [blame] | 292 | IN_PROC_BROWSER_TEST_F(ExtensionApiTabTest, TabOpenerCraziness) { |
rdevlin.cronin | 5b3827b6 | 2017-03-08 02:38:09 | [diff] [blame] | 293 | ASSERT_TRUE(RunExtensionTest("tabs/tab_opener_id")); |
| 294 | } |
| 295 | |
Ramin Halavati | 1e2a1af | 2018-08-13 07:05:58 | [diff] [blame] | 296 | class IncognitoExtensionApiTabTest : public ExtensionApiTabTest, |
| 297 | public testing::WithParamInterface<bool> { |
| 298 | }; |
| 299 | |
| 300 | IN_PROC_BROWSER_TEST_P(IncognitoExtensionApiTabTest, Tabs) { |
| 301 | bool is_incognito_enabled = GetParam(); |
| 302 | Browser* incognito_browser = |
| 303 | OpenURLOffTheRecord(browser()->profile(), GURL("about:blank")); |
| 304 | std::string args = base::StringPrintf( |
| 305 | R"({"isIncognito": %s, "windowId": %d})", |
| 306 | is_incognito_enabled ? "true" : "false", |
| 307 | extensions::ExtensionTabUtil::GetWindowId(incognito_browser)); |
| 308 | |
| 309 | EXPECT_TRUE(RunExtensionSubtestWithArgAndFlags( |
| 310 | "tabs/basics", "incognito.html", args.data(), |
| 311 | is_incognito_enabled ? extensions::ExtensionApiTest::kFlagEnableIncognito |
| 312 | : extensions::ExtensionApiTest::kFlagNone)) |
| 313 | << message_; |
| 314 | } |
| 315 | |
Victor Costan | 4a060e8 | 2019-01-28 18:25:34 | [diff] [blame] | 316 | INSTANTIATE_TEST_SUITE_P(, IncognitoExtensionApiTabTest, testing::Bool()); |
Ramin Halavati | 1e2a1af | 2018-08-13 07:05:58 | [diff] [blame] | 317 | |
limasdf | aa246b7 | 2015-04-24 01:13:35 | [diff] [blame] | 318 | // Adding a new test? Awesome. But API tests are the old hotness. The new |
| 319 | // hotness is extension_function_test_utils. See tabs_test.cc for an example. |
[email protected] | f34706b | 2012-09-04 07:32:09 | [diff] [blame] | 320 | // We are trying to phase out many uses of API tests as they tend to be flaky. |