| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/memory/scoped_vector.h" | 6 #include "base/memory/scoped_vector.h" |
| 7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "chrome/browser/extensions/extension_apitest.h" | 9 #include "chrome/browser/extensions/extension_apitest.h" |
| 10 #include "chrome/browser/extensions/extension_test_message_listener.h" | 10 #include "chrome/browser/extensions/extension_test_message_listener.h" |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 #include "extensions/common/extension.h" | 28 #include "extensions/common/extension.h" |
| 29 #include "extensions/common/switches.h" | 29 #include "extensions/common/switches.h" |
| 30 #include "net/dns/mock_host_resolver.h" | 30 #include "net/dns/mock_host_resolver.h" |
| 31 #include "net/test/embedded_test_server/embedded_test_server.h" | 31 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 32 #include "testing/gtest/include/gtest/gtest.h" | 32 #include "testing/gtest/include/gtest/gtest.h" |
| 33 | 33 |
| 34 #if defined(USE_ASH) | 34 #if defined(USE_ASH) |
| 35 #include "apps/app_window_registry.h" | 35 #include "apps/app_window_registry.h" |
| 36 #endif | 36 #endif |
| 37 | 37 |
| 38 #if defined(USE_ASH) && !defined(OS_WIN) | 38 #if defined(USE_ASH) && defined(OS_CHROMEOS) |
| 39 // TODO(stevenjb): Figure out the correct behavior for Ash + Win | 39 // TODO(stevenjb): Figure out the correct behavior for Ash + Win |
| 40 #define USE_ASH_PANELS | 40 #define USE_ASH_PANELS |
| 41 #endif | 41 #endif |
| 42 | 42 |
| 43 using content::OpenURLParams; | 43 using content::OpenURLParams; |
| 44 using content::Referrer; | 44 using content::Referrer; |
| 45 using content::WebContents; | 45 using content::WebContents; |
| 46 | 46 |
| 47 // Disabled, http://crbug.com/64899. | 47 // Disabled, http://crbug.com/64899. |
| 48 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_WindowOpen) { | 48 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_WindowOpen) { |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 // We're also failing on Linux-aura due to the panel is not opened in the | 266 // We're also failing on Linux-aura due to the panel is not opened in the |
| 267 // right origin. | 267 // right origin. |
| 268 #define MAYBE_WindowOpenPanelDetached DISABLED_WindowOpenPanelDetached | 268 #define MAYBE_WindowOpenPanelDetached DISABLED_WindowOpenPanelDetached |
| 269 #else | 269 #else |
| 270 #define MAYBE_WindowOpenPanelDetached WindowOpenPanelDetached | 270 #define MAYBE_WindowOpenPanelDetached WindowOpenPanelDetached |
| 271 #endif | 271 #endif |
| 272 IN_PROC_BROWSER_TEST_F(WindowOpenPanelTest, MAYBE_WindowOpenPanelDetached) { | 272 IN_PROC_BROWSER_TEST_F(WindowOpenPanelTest, MAYBE_WindowOpenPanelDetached) { |
| 273 ASSERT_TRUE(RunExtensionTest("window_open/panel_detached")) << message_; | 273 ASSERT_TRUE(RunExtensionTest("window_open/panel_detached")) << message_; |
| 274 } | 274 } |
| 275 | 275 |
| 276 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| 277 // TODO(erg): Bring up ash http://crbug.com/300084 |
| 278 #define MAYBE_CloseNonExtensionPanelsOnUninstall \ |
| 279 DISABLED_CloseNonExtensionPanelsOnUninstall |
| 280 #else |
| 281 #define MAYBE_CloseNonExtensionPanelsOnUninstall \ |
| 282 CloseNonExtensionPanelsOnUninstall |
| 283 #endif |
| 276 IN_PROC_BROWSER_TEST_F(WindowOpenPanelTest, | 284 IN_PROC_BROWSER_TEST_F(WindowOpenPanelTest, |
| 277 CloseNonExtensionPanelsOnUninstall) { | 285 MAYBE_CloseNonExtensionPanelsOnUninstall) { |
| 278 #if defined(OS_WIN) && defined(USE_ASH) | 286 #if defined(OS_WIN) && defined(USE_ASH) |
| 279 // Disable this test in Metro+Ash for now (http://crbug.com/262796). | 287 // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| 280 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) | 288 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) |
| 281 return; | 289 return; |
| 282 #endif | 290 #endif |
| 283 | 291 |
| 284 #if defined(USE_ASH_PANELS) | 292 #if defined(USE_ASH_PANELS) |
| 285 // On Ash, new panel windows open as popup windows instead. | 293 // On Ash, new panel windows open as popup windows instead. |
| 286 int num_popups, num_panels; | 294 int num_popups, num_panels; |
| 287 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnablePanels)) { | 295 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnablePanels)) { |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 #endif | 346 #endif |
| 339 #if defined(USE_ASH) | 347 #if defined(USE_ASH) |
| 340 #if !defined(OS_WIN) | 348 #if !defined(OS_WIN) |
| 341 // On linux ash we close all popup applications when closing its extension. | 349 // On linux ash we close all popup applications when closing its extension. |
| 342 num_popups = 0; | 350 num_popups = 0; |
| 343 #endif | 351 #endif |
| 344 #endif | 352 #endif |
| 345 EXPECT_TRUE(WaitForTabsAndPopups(browser(), 1, num_popups, 0)); | 353 EXPECT_TRUE(WaitForTabsAndPopups(browser(), 1, num_popups, 0)); |
| 346 } | 354 } |
| 347 | 355 |
| 348 // This test isn't applicable on Chrome OS, which automatically reloads | 356 // This test isn't applicable on Chrome OS, which automatically reloads crashed |
| 349 // crashed pages. | 357 // pages. |
| 350 #if !defined(OS_CHROMEOS) | 358 #if !defined(OS_CHROMEOS) |
| 351 IN_PROC_BROWSER_TEST_F(WindowOpenPanelTest, ClosePanelsOnExtensionCrash) { | 359 IN_PROC_BROWSER_TEST_F(WindowOpenPanelTest, ClosePanelsOnExtensionCrash) { |
| 352 #if defined(USE_ASH_PANELS) | 360 #if defined(USE_ASH_PANELS) |
| 353 // On Ash, new panel windows open as popup windows instead. | 361 // On Ash, new panel windows open as popup windows instead. |
| 354 int num_popups = 4; | 362 int num_popups = 4; |
| 355 int num_panels = 0; | 363 int num_panels = 0; |
| 356 #else | 364 #else |
| 357 int num_popups = 2; | 365 int num_popups = 2; |
| 358 int num_panels = 2; | 366 int num_panels = 2; |
| 359 #endif | 367 #endif |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 OpenWindow(browser()->tab_strip_model()->GetActiveWebContents(), | 496 OpenWindow(browser()->tab_strip_model()->GetActiveWebContents(), |
| 489 GURL(std::string("chrome-extension://") + last_loaded_extension_id() + | 497 GURL(std::string("chrome-extension://") + last_loaded_extension_id() + |
| 490 "/newtab.html"), false, &newtab)); | 498 "/newtab.html"), false, &newtab)); |
| 491 | 499 |
| 492 // Extension API should succeed. | 500 // Extension API should succeed. |
| 493 bool result = false; | 501 bool result = false; |
| 494 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(newtab, "testExtensionApi()", | 502 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(newtab, "testExtensionApi()", |
| 495 &result)); | 503 &result)); |
| 496 EXPECT_TRUE(result); | 504 EXPECT_TRUE(result); |
| 497 } | 505 } |
| OLD | NEW |