Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1770)

Unified Diff: chrome/browser/extensions/platform_app_browsertest.cc

Issue 8985008: Don't use browser windows for platform app shell windows (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Disable platform app tests on non-GTK platforms. Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/platform_app_browsertest.cc
diff --git a/chrome/browser/extensions/platform_app_browsertest.cc b/chrome/browser/extensions/platform_app_browsertest.cc
index 49f3721445da9f8f2269f0a0990dd8e705df6896..fe5be7f31fc0a7fe3977121e7799a799a64718fb 100644
--- a/chrome/browser/extensions/platform_app_browsertest.cc
+++ b/chrome/browser/extensions/platform_app_browsertest.cc
@@ -1,9 +1,10 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/command_line.h"
#include "chrome/browser/extensions/extension_browsertest.h"
+#include "chrome/browser/extensions/extension_host.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_test_message_listener.h"
#include "chrome/browser/profiles/profile.h"
@@ -47,6 +48,7 @@ class PlatformAppBrowserTest : public ExtensionBrowserTest {
command_line->AppendSwitch(switches::kEnablePlatformApps);
}
+ protected:
void LoadAndLaunchPlatformApp(const char* name) {
web_app::SetDisableShortcutCreationForTests(true);
EXPECT_TRUE(LoadExtension(test_data_dir_.AppendASCII("platform_apps").
@@ -57,7 +59,7 @@ class PlatformAppBrowserTest : public ExtensionBrowserTest {
last_loaded_extension_id_, false);
EXPECT_TRUE(extension);
- size_t browser_count = BrowserList::size();
+ size_t platform_app_count = GetPlatformAppCount();
Browser::OpenApplication(
browser()->profile(),
@@ -66,51 +68,69 @@ class PlatformAppBrowserTest : public ExtensionBrowserTest {
GURL(),
NEW_WINDOW);
- // Now we have a new browser instance.
- EXPECT_EQ(browser_count + 1, BrowserList::size());
+ // Now we have a new platform app running.
+ EXPECT_EQ(platform_app_count + 1, GetPlatformAppCount());
}
-};
-
-IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, OpenAppInShellContainer) {
- // Start with one browser, new platform app will create another.
- ASSERT_EQ(1u, BrowserList::size());
-
- LoadAndLaunchPlatformApp("empty");
- // The launch should have created a new browser, so there should be 2 now.
- ASSERT_EQ(2u, BrowserList::size());
-
- // The new browser is the last one.
- BrowserList::const_reverse_iterator reverse_iterator(BrowserList::end());
- Browser* new_browser = *(reverse_iterator++);
+ // Gets the number of platform apps that are running.
+ size_t GetPlatformAppCount() {
+ int count = 0;
+ ExtensionProcessManager* process_manager =
+ browser()->profile()->GetExtensionProcessManager();
+ ExtensionProcessManager::const_iterator iter;
+ for (iter = process_manager->begin(); iter != process_manager->end();
+ ++iter) {
+ ExtensionHost* host = *iter;
+ if (host->extension() && host->extension()->is_platform_app())
+ count++;
+ }
+
+ return count;
+ }
- ASSERT_TRUE(new_browser);
- ASSERT_TRUE(new_browser != browser());
+ // Gets the WebContents associated with the ExtensionHost of the first
+ // platform app that is found (most tests only deal with one platform
+ // app, so this is good enough).
+ WebContents* GetFirstPlatformAppWebContents() {
+ ExtensionProcessManager* process_manager =
+ browser()->profile()->GetExtensionProcessManager();
+ ExtensionProcessManager::const_iterator iter;
+ for (iter = process_manager->begin(); iter != process_manager->end();
+ ++iter) {
+ ExtensionHost* host = *iter;
+ if (host->extension() && host->extension()->is_platform_app())
+ return host->host_contents();
+ }
+
+ return NULL;
+ }
+};
- // Expect an app in a shell window.
- EXPECT_TRUE(new_browser->is_app());
- EXPECT_TRUE(new_browser->is_type_shell());
+// Disabled until shell windows are implemented for non-GTK toolkits.
+#if defined(TOOLKIT_GTK)
+#define MAYBE_OpenAppInShellContainer OpenAppInShellContainer
+#else
+#define MAYBE_OpenAppInShellContainer DISABLED_OpenAppInShellContainer
+#endif
+IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, MAYBE_OpenAppInShellContainer) {
+ ASSERT_EQ(0u, GetPlatformAppCount());
+ LoadAndLaunchPlatformApp("empty");
+ ASSERT_EQ(1u, GetPlatformAppCount());
}
-IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, EmptyContextMenu) {
- // Start with one browser, new platform app will create another.
- ASSERT_EQ(1u, BrowserList::size());
-
+// Disabled until shell windows are implemented for non-GTK toolkits.
+#if defined(TOOLKIT_GTK)
+#define MAYBE_EmptyContextMenu EmptyContextMenu
+#else
+#define MAYBE_EmptyContextMenu DISABLED_EmptyContextMenu
+#endif
+IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, MAYBE_EmptyContextMenu) {
LoadAndLaunchPlatformApp("empty");
- // The launch should have created a new browser, so there should be 2 now.
- ASSERT_EQ(2u, BrowserList::size());
-
- // The new browser is the last one.
- BrowserList::const_reverse_iterator reverse_iterator(BrowserList::end());
- Browser* new_browser = *(reverse_iterator++);
-
- ASSERT_TRUE(new_browser);
- ASSERT_TRUE(new_browser != browser());
-
// The empty app doesn't add any context menu items, so its menu should
// be empty.
- WebContents* web_contents = new_browser->GetSelectedWebContents();
+ WebContents* web_contents = GetFirstPlatformAppWebContents();
+ ASSERT_TRUE(web_contents);
WebKit::WebContextMenuData data;
ContextMenuParams params(data);
PlatformAppContextMenu* menu = new PlatformAppContextMenu(web_contents,
@@ -119,29 +139,23 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, EmptyContextMenu) {
ASSERT_FALSE(menu->menu_model().GetItemCount());
}
-IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, AppWithContextMenu) {
- // Start with one browser, new platform app will create another.
- ASSERT_EQ(1u, BrowserList::size());
-
+// Disabled until shell windows are implemented for non-GTK toolkits.
+#if defined(TOOLKIT_GTK)
+#define MAYBE_AppWithContextMenu AppWithContextMenu
+#else
+#define MAYBE_AppWithContextMenu DISABLED_AppWithContextMenu
+#endif
+IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, MAYBE_AppWithContextMenu) {
ExtensionTestMessageListener listener1("created item", false);
LoadAndLaunchPlatformApp("context_menu");
// Wait for the extension to tell us it's created an item.
ASSERT_TRUE(listener1.WaitUntilSatisfied());
- // The launch should have created a new browser, so there should be 2 now.
- ASSERT_EQ(2u, BrowserList::size());
-
- // The new browser is the last one.
- BrowserList::const_reverse_iterator reverse_iterator(BrowserList::end());
- Browser* new_browser = *(reverse_iterator++);
-
- ASSERT_TRUE(new_browser);
- ASSERT_TRUE(new_browser != browser());
-
// The context_menu app has one context menu item. This is all that should
// be in the menu, there should be no seperator.
- WebContents* web_contents = new_browser->GetSelectedWebContents();
+ WebContents* web_contents = GetFirstPlatformAppWebContents();
+ ASSERT_TRUE(web_contents);
WebKit::WebContextMenuData data;
ContextMenuParams params(data);
PlatformAppContextMenu* menu = new PlatformAppContextMenu(web_contents,
« no previous file with comments | « chrome/browser/extensions/extension_process_manager.cc ('k') | chrome/browser/tab_contents/render_view_context_menu.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698