15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/extensions/extension_apitest.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/prefs/pref_service.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/prefs/incognito_mode_prefs.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser_window.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/chrome_switches.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/pref_names.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/url_constants.h"
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/dns/mock_host_resolver.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(OS_WIN)
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "ui/aura/window.h"
1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "ui/aura/window_tree_host.h"
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#if defined(USE_AURA) || defined(OS_MACOSX)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Maximizing/fullscreen popup window doesn't work on aura's managed mode.
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// See bug crbug.com/116305.
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Mac: http://crbug.com/103912
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MAYBE_UpdateWindowShowState DISABLED_UpdateWindowShowState
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MAYBE_UpdateWindowShowState UpdateWindowShowState
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif  // defined(USE_AURA) || defined(OS_MACOSX)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// http://crbug.com/145639
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#if defined(OS_LINUX) || defined(OS_WIN)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MAYBE_TabEvents DISABLED_TabEvents
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MAYBE_TabEvents TabEvents
36b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#endif
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ExtensionApiNewTabTest : public ExtensionApiTest {
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ExtensionApiNewTabTest() {}
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ExtensionApiTest::SetUpCommandLine(command_line);
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    // Override the default which InProcessBrowserTest adds if it doesn't see a
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    // homepage.
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    command_line->AppendSwitchASCII(
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        switches::kHomePage, chrome::kChromeUINewTabURL);
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiNewTabTest, Tabs) {
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The test creates a tab and checks that the URL of the new tab
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // is that of the new tab page.  Make sure the pref that controls
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // this is set.
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  browser()->profile()->GetPrefs()->SetBoolean(
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      prefs::kHomePageIsNewTabPage, true);
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crud.html")) << message_;
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// Flaky on windows: http://crbug.com/238667
61b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#if defined(OS_WIN)
62b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#define MAYBE_Tabs2 DISABLED_Tabs2
63b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#else
64b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#define MAYBE_Tabs2 Tabs2
65b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#endif
66b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_Tabs2) {
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crud2.html")) << message_;
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// crbug.com/149924
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_TabDuplicate) {
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "duplicate.html")) << message_;
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
753551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabSize) {
763551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "tab_size.html")) << message_;
773551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
783551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
795f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Flaky on linux: http://crbug.com/396364
805f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#if defined(OS_LINUX)
815f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define MAYBE_TabUpdate DISABLED_TabUpdate
825f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#else
835f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define MAYBE_TabUpdate TabUpdate
845f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif
855f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_TabUpdate) {
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "update.html")) << message_;
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabPinned) {
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "pinned.html")) << message_;
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
93b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// Flaky on windows: http://crbug.com/238667
94b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#if defined(OS_WIN)
95b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#define MAYBE_TabMove DISABLED_TabMove
96b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#else
97b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#define MAYBE_TabMove TabMove
98b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#endif
99b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_TabMove) {
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "move.html")) << message_;
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_TabEvents) {
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "events.html")) << message_;
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_TabRelativeURLs) {
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "relative_urls.html"))
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      << message_;
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabQuery) {
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "query.html")) << message_;
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
116b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// Flaky on windows: http://crbug.com/239022
117b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#if defined(OS_WIN)
118b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#define MAYBE_TabHighlight DISABLED_TabHighlight
119b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#else
120b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#define MAYBE_TabHighlight TabHighlight
121b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#endif
122b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_TabHighlight) {
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "highlight.html")) << message_;
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabCrashBrowser) {
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "crash.html")) << message_;
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
130b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// Flaky on windows: http://crbug.com/238667
131b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#if defined(OS_WIN)
132b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#define MAYBE_TabOpener DISABLED_TabOpener
133b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#else
134b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#define MAYBE_TabOpener TabOpener
135b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#endif
136b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_TabOpener) {
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "opener.html")) << message_;
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_TabGetCurrent) {
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionTest("tabs/get_current")) << message_;
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Flaky on the trybots. See http://crbug.com/96725.
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_TabConnect) {
146eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  ASSERT_TRUE(StartEmbeddedTestServer());
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionTest("tabs/connect")) << message_;
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Possible race in ChromeURLDataManager. http://crbug.com/59198
1517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_TabOnRemoved) {
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionTest("tabs/on_removed")) << message_;
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_TabReload) {
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionTest("tabs/reload")) << message_;
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
159d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)class ExtensionApiCaptureTest : public ExtensionApiTest {
160d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) public:
161d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  ExtensionApiCaptureTest() {}
1625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void SetUp() OVERRIDE {
1645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EnablePixelOutput();
1655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    ExtensionApiTest::SetUp();
1665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  }
1675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
168d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
169d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)    ExtensionApiTest::SetUpCommandLine(command_line);
170d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  }
171d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)};
172d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
173d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest,
174d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)                       DISABLED_CaptureVisibleTabJpeg) {
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  host_resolver()->AddRule("a.com", "127.0.0.1");
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  host_resolver()->AddRule("b.com", "127.0.0.1");
177eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  ASSERT_TRUE(StartEmbeddedTestServer());
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  "test_jpeg.html")) << message_;
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
182d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest, DISABLED_CaptureVisibleTabPng) {
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  host_resolver()->AddRule("a.com", "127.0.0.1");
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  host_resolver()->AddRule("b.com", "127.0.0.1");
185eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  ASSERT_TRUE(StartEmbeddedTestServer());
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  "test_png.html")) << message_;
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Times out on non-Windows.
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// See http://crbug.com/80212
192d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest,
193d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)                       DISABLED_CaptureVisibleTabRace) {
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  "test_race.html")) << message_;
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1985c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
1995c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Disabled for being flaky, see http://crbug/367695.
2005c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuIN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest,
2015c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                       DISABLED_CaptureVisibleFile) {
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  "test_file.html")) << message_;
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
206d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiCaptureTest, CaptureVisibleDisabled) {
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  browser()->profile()->GetPrefs()->SetBoolean(prefs::kDisableScreenshots,
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                               true);
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/capture_visible_tab",
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  "test_disabled.html")) << message_;
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabsOnUpdated) {
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionTest("tabs/on_updated")) << message_;
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabsNoPermissions) {
2182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(RunExtensionTest("tabs/no_permissions")) << message_;
2192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
22146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, UpdateWindowResize) {
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionTest("window_update/resize")) << message_;
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(OS_WIN)
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, FocusWindowDoesNotUnmaximize) {
227a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  HWND window =
228a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      browser()->window()->GetNativeWindow()->GetHost()->GetAcceleratedWidget();
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ::SendMessage(window, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionTest("window_update/focus")) << message_;
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(::IsZoomed(window));
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // OS_WIN
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_UpdateWindowShowState) {
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionTest("window_update/show_state")) << message_;
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, IncognitoDisabledByPref) {
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(),
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                      IncognitoModePrefs::DISABLED);
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // This makes sure that creating an incognito window fails due to pref
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // (policy) being set.
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionTest("tabs/incognito_disabled")) << message_;
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_GetViewsOfCreatedPopup) {
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "get_views_popup.html"))
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      << message_;
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_GetViewsOfCreatedWindow) {
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunExtensionSubtest("tabs/basics", "get_views_window.html"))
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      << message_;
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adding a new test? Awesome. But API tests are the old hotness. The
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// new hotness is extension_test_utils. See tabs_test.cc for an example.
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// We are trying to phase out many uses of API tests as they tend to be flaky.
260