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

Side by Side Diff: chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc

Issue 26277010: Create content::WebContentsDestroyedWatcher, use it in many tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 7 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" 5 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h"
6 6
7 #include "apps/native_app_window.h" 7 #include "apps/native_app_window.h"
8 #include "apps/shell_window.h" 8 #include "apps/shell_window.h"
9 #include "apps/shell_window_registry.h" 9 #include "apps/shell_window_registry.h"
10 #include "ash/ash_switches.h" 10 #include "ash/ash_switches.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "chrome/browser/ui/browser_window.h" 42 #include "chrome/browser/ui/browser_window.h"
43 #include "chrome/browser/ui/extensions/application_launch.h" 43 #include "chrome/browser/ui/extensions/application_launch.h"
44 #include "chrome/browser/ui/host_desktop.h" 44 #include "chrome/browser/ui/host_desktop.h"
45 #include "chrome/browser/ui/tabs/tab_strip_model.h" 45 #include "chrome/browser/ui/tabs/tab_strip_model.h"
46 #include "chrome/common/chrome_switches.h" 46 #include "chrome/common/chrome_switches.h"
47 #include "chrome/common/extensions/extension_constants.h" 47 #include "chrome/common/extensions/extension_constants.h"
48 #include "chrome/test/base/ui_test_utils.h" 48 #include "chrome/test/base/ui_test_utils.h"
49 #include "content/public/browser/notification_service.h" 49 #include "content/public/browser/notification_service.h"
50 #include "content/public/browser/notification_source.h" 50 #include "content/public/browser/notification_source.h"
51 #include "content/public/browser/web_contents.h" 51 #include "content/public/browser/web_contents.h"
52 #include "content/public/test/browser_test_utils.h"
52 #include "extensions/common/switches.h" 53 #include "extensions/common/switches.h"
53 #include "testing/gtest/include/gtest/gtest.h" 54 #include "testing/gtest/include/gtest/gtest.h"
54 #include "ui/app_list/views/apps_grid_view.h" 55 #include "ui/app_list/views/apps_grid_view.h"
55 #include "ui/aura/client/aura_constants.h" 56 #include "ui/aura/client/aura_constants.h"
56 #include "ui/aura/test/event_generator.h" 57 #include "ui/aura/test/event_generator.h"
57 #include "ui/aura/window.h" 58 #include "ui/aura/window.h"
58 #include "ui/events/event.h" 59 #include "ui/events/event.h"
59 60
60 using apps::ShellWindow; 61 using apps::ShellWindow;
61 using extensions::Extension; 62 using extensions::Extension;
(...skipping 777 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 // Test that we can launch an app with a shortcut. 840 // Test that we can launch an app with a shortcut.
840 IN_PROC_BROWSER_TEST_F(LauncherAppBrowserTest, LaunchPinned) { 841 IN_PROC_BROWSER_TEST_F(LauncherAppBrowserTest, LaunchPinned) {
841 TabStripModel* tab_strip = browser()->tab_strip_model(); 842 TabStripModel* tab_strip = browser()->tab_strip_model();
842 int tab_count = tab_strip->count(); 843 int tab_count = tab_strip->count();
843 ash::LauncherID shortcut_id = CreateShortcut("app1"); 844 ash::LauncherID shortcut_id = CreateShortcut("app1");
844 EXPECT_EQ(ash::STATUS_CLOSED, (*model_->ItemByID(shortcut_id)).status); 845 EXPECT_EQ(ash::STATUS_CLOSED, (*model_->ItemByID(shortcut_id)).status);
845 ActivateLauncherItem(model_->ItemIndexByID(shortcut_id)); 846 ActivateLauncherItem(model_->ItemIndexByID(shortcut_id));
846 EXPECT_EQ(++tab_count, tab_strip->count()); 847 EXPECT_EQ(++tab_count, tab_strip->count());
847 EXPECT_EQ(ash::STATUS_ACTIVE, (*model_->ItemByID(shortcut_id)).status); 848 EXPECT_EQ(ash::STATUS_ACTIVE, (*model_->ItemByID(shortcut_id)).status);
848 WebContents* tab = tab_strip->GetActiveWebContents(); 849 WebContents* tab = tab_strip->GetActiveWebContents();
849 content::WindowedNotificationObserver close_observer( 850 content::WebContentsDestroyedWatcher destroyed_watcher(tab);
850 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
851 content::Source<WebContents>(tab));
852 browser()->tab_strip_model()->CloseSelectedTabs(); 851 browser()->tab_strip_model()->CloseSelectedTabs();
853 close_observer.Wait(); 852 destroyed_watcher.Wait();
854 EXPECT_EQ(--tab_count, tab_strip->count()); 853 EXPECT_EQ(--tab_count, tab_strip->count());
855 EXPECT_EQ(ash::STATUS_CLOSED, (*model_->ItemByID(shortcut_id)).status); 854 EXPECT_EQ(ash::STATUS_CLOSED, (*model_->ItemByID(shortcut_id)).status);
856 } 855 }
857 856
858 // Launch the app first and then create the shortcut. 857 // Launch the app first and then create the shortcut.
859 IN_PROC_BROWSER_TEST_F(LauncherAppBrowserTest, LaunchUnpinned) { 858 IN_PROC_BROWSER_TEST_F(LauncherAppBrowserTest, LaunchUnpinned) {
860 TabStripModel* tab_strip = browser()->tab_strip_model(); 859 TabStripModel* tab_strip = browser()->tab_strip_model();
861 int tab_count = tab_strip->count(); 860 int tab_count = tab_strip->count();
862 LoadAndLaunchExtension("app1", extension_misc::LAUNCH_TAB, 861 LoadAndLaunchExtension("app1", extension_misc::LAUNCH_TAB,
863 NEW_FOREGROUND_TAB); 862 NEW_FOREGROUND_TAB);
864 EXPECT_EQ(++tab_count, tab_strip->count()); 863 EXPECT_EQ(++tab_count, tab_strip->count());
865 ash::LauncherID shortcut_id = CreateShortcut("app1"); 864 ash::LauncherID shortcut_id = CreateShortcut("app1");
866 EXPECT_EQ(ash::STATUS_ACTIVE, (*model_->ItemByID(shortcut_id)).status); 865 EXPECT_EQ(ash::STATUS_ACTIVE, (*model_->ItemByID(shortcut_id)).status);
867 WebContents* tab = tab_strip->GetActiveWebContents(); 866 WebContents* tab = tab_strip->GetActiveWebContents();
868 content::WindowedNotificationObserver close_observer( 867 content::WebContentsDestroyedWatcher destroyed_watcher(tab);
869 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
870 content::Source<WebContents>(tab));
871 browser()->tab_strip_model()->CloseSelectedTabs(); 868 browser()->tab_strip_model()->CloseSelectedTabs();
872 close_observer.Wait(); 869 destroyed_watcher.Wait();
873 EXPECT_EQ(--tab_count, tab_strip->count()); 870 EXPECT_EQ(--tab_count, tab_strip->count());
874 EXPECT_EQ(ash::STATUS_CLOSED, (*model_->ItemByID(shortcut_id)).status); 871 EXPECT_EQ(ash::STATUS_CLOSED, (*model_->ItemByID(shortcut_id)).status);
875 } 872 }
876 873
877 // Launches an app in the background and then tries to open it. This is test for 874 // Launches an app in the background and then tries to open it. This is test for
878 // a crash we had. 875 // a crash we had.
879 IN_PROC_BROWSER_TEST_F(LauncherAppBrowserTest, LaunchInBackground) { 876 IN_PROC_BROWSER_TEST_F(LauncherAppBrowserTest, LaunchInBackground) {
880 TabStripModel* tab_strip = browser()->tab_strip_model(); 877 TabStripModel* tab_strip = browser()->tab_strip_model();
881 int tab_count = tab_strip->count(); 878 int tab_count = tab_strip->count();
882 LoadAndLaunchExtension("app1", extension_misc::LAUNCH_TAB, 879 LoadAndLaunchExtension("app1", extension_misc::LAUNCH_TAB,
(...skipping 995 matching lines...) Expand 10 before | Expand all | Expand 10 after
1878 // Now show overflow bubble. 1875 // Now show overflow bubble.
1879 test.ShowOverflowBubble(); 1876 test.ShowOverflowBubble();
1880 EXPECT_TRUE(launcher_->IsShowingOverflowBubble()); 1877 EXPECT_TRUE(launcher_->IsShowingOverflowBubble());
1881 1878
1882 // Unpin first pinned app and there should be no crash. 1879 // Unpin first pinned app and there should be no crash.
1883 controller_->UnpinAppWithID(std::string("fake_app_0")); 1880 controller_->UnpinAppWithID(std::string("fake_app_0"));
1884 1881
1885 test.RunMessageLoopUntilAnimationsDone(); 1882 test.RunMessageLoopUntilAnimationsDone();
1886 EXPECT_FALSE(launcher_->IsShowingOverflowBubble()); 1883 EXPECT_FALSE(launcher_->IsShowingOverflowBubble());
1887 } 1884 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698