| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 #include "chrome/app/chrome_command_ids.h" | 10 #include "chrome/app/chrome_command_ids.h" |
| 11 #include "chrome/browser/chrome_notification_types.h" | 11 #include "chrome/browser/chrome_notification_types.h" |
| 12 #include "chrome/browser/devtools/devtools_window.h" | 12 #include "chrome/browser/devtools/devtools_window.h" |
| 13 #include "chrome/browser/extensions/extension_apitest.h" | 13 #include "chrome/browser/extensions/extension_apitest.h" |
| 14 #include "chrome/browser/net/url_request_mock_util.h" | 14 #include "chrome/browser/net/url_request_mock_util.h" |
| 15 #include "chrome/browser/prefs/browser_prefs.h" | 15 #include "chrome/browser/prefs/browser_prefs.h" |
| 16 #include "chrome/browser/profiles/profile.h" | 16 #include "chrome/browser/profiles/profile.h" |
| 17 #include "chrome/browser/task_management/task_management_browsertest_util.h" | |
| 18 #include "chrome/browser/ui/browser.h" | 17 #include "chrome/browser/ui/browser.h" |
| 19 #include "chrome/browser/ui/browser_commands.h" | 18 #include "chrome/browser/ui/browser_commands.h" |
| 20 #include "chrome/browser/ui/browser_finder.h" | 19 #include "chrome/browser/ui/browser_finder.h" |
| 21 #include "chrome/browser/ui/browser_list.h" | 20 #include "chrome/browser/ui/browser_list.h" |
| 22 #include "chrome/browser/ui/browser_window.h" | 21 #include "chrome/browser/ui/browser_window.h" |
| 23 #include "chrome/browser/ui/panels/base_panel_browser_test.h" | 22 #include "chrome/browser/ui/panels/base_panel_browser_test.h" |
| 24 #include "chrome/browser/ui/panels/docked_panel_collection.h" | 23 #include "chrome/browser/ui/panels/docked_panel_collection.h" |
| 25 #include "chrome/browser/ui/panels/native_panel.h" | 24 #include "chrome/browser/ui/panels/native_panel.h" |
| 26 #include "chrome/browser/ui/panels/panel.h" | 25 #include "chrome/browser/ui/panels/panel.h" |
| 27 #include "chrome/browser/ui/panels/panel_manager.h" | 26 #include "chrome/browser/ui/panels/panel_manager.h" |
| (...skipping 1732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1760 #else | 1759 #else |
| 1761 #define MAYBE_FocusChangeEventOnMinimize FocusChangeEventOnMinimize | 1760 #define MAYBE_FocusChangeEventOnMinimize FocusChangeEventOnMinimize |
| 1762 #endif | 1761 #endif |
| 1763 IN_PROC_BROWSER_TEST_F(PanelExtensionApiTest, | 1762 IN_PROC_BROWSER_TEST_F(PanelExtensionApiTest, |
| 1764 MAYBE_FocusChangeEventOnMinimize) { | 1763 MAYBE_FocusChangeEventOnMinimize) { |
| 1765 // This is needed so the subsequently created panels can be activated. | 1764 // This is needed so the subsequently created panels can be activated. |
| 1766 // On a Mac, it transforms background-only test process into foreground one. | 1765 // On a Mac, it transforms background-only test process into foreground one. |
| 1767 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); | 1766 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); |
| 1768 ASSERT_TRUE(RunExtensionTest("panels/focus_change_on_minimize")) << message_; | 1767 ASSERT_TRUE(RunExtensionTest("panels/focus_change_on_minimize")) << message_; |
| 1769 } | 1768 } |
| 1770 | |
| 1771 #if defined(ENABLE_TASK_MANAGER) | |
| 1772 | |
| 1773 namespace { | |
| 1774 | |
| 1775 base::string16 GetExpectedPrefix() { | |
| 1776 return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_EXTENSION_PREFIX, | |
| 1777 base::string16()); | |
| 1778 } | |
| 1779 | |
| 1780 const std::vector<task_management::WebContentsTag*>& GetTrackedTags() { | |
| 1781 return task_management::WebContentsTagsManager::GetInstance()-> | |
| 1782 tracked_tags(); | |
| 1783 } | |
| 1784 | |
| 1785 // Tests that the task manager tags are recorded correctly as a result of | |
| 1786 // creating panels. | |
| 1787 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, TaskManagementTagsBasic) { | |
| 1788 // Browser tests start with a single tab. | |
| 1789 EXPECT_EQ(1U, GetTrackedTags().size()); | |
| 1790 | |
| 1791 // Create a bunch of panels. | |
| 1792 gfx::Rect bounds(300, 200, 250, 200); | |
| 1793 CreatePanelParams params("PanelTest1", bounds, SHOW_AS_ACTIVE); | |
| 1794 params.url = GURL("about:blank"); | |
| 1795 CreatePanelWithParams(params); | |
| 1796 EXPECT_EQ(2U, GetTrackedTags().size()); | |
| 1797 | |
| 1798 params.name = std::string("PanelTest2_Detached"); | |
| 1799 params.wait_for_fully_created = false; | |
| 1800 params.create_mode = PanelManager::CREATE_AS_DETACHED; | |
| 1801 CreatePanelWithParams(params); | |
| 1802 EXPECT_EQ(3U, GetTrackedTags().size()); | |
| 1803 | |
| 1804 params.name = std::string("PanelTest3_Docked"); | |
| 1805 params.create_mode = PanelManager::CREATE_AS_DOCKED; | |
| 1806 CreatePanelWithParams(params); | |
| 1807 EXPECT_EQ(4U, GetTrackedTags().size()); | |
| 1808 | |
| 1809 params.name = std::string("PanelTest3_Inactive"); | |
| 1810 params.show_flag = SHOW_AS_INACTIVE; | |
| 1811 CreatePanelWithParams(params); | |
| 1812 EXPECT_EQ(5U, GetTrackedTags().size()); | |
| 1813 | |
| 1814 // Close all panels and make sure the tags are removed. | |
| 1815 PanelManager::GetInstance()->CloseAll(); | |
| 1816 EXPECT_EQ(1U, GetTrackedTags().size()); | |
| 1817 } | |
| 1818 | |
| 1819 // Tests that the task manager sees the PanelTasks as a result of creating | |
| 1820 // panels, and removes the PanelTasks as a result of closing panels. | |
| 1821 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, TaskManagementTasksProvided) { | |
| 1822 task_management::MockWebContentsTaskManager task_manager; | |
| 1823 // Browser tests start with a single tab. | |
| 1824 EXPECT_EQ(1U, GetTrackedTags().size()); | |
| 1825 | |
| 1826 // Create a single panel. | |
| 1827 gfx::Rect bounds(300, 200, 250, 200); | |
| 1828 CreatePanelParams params("PanelTest1", bounds, SHOW_AS_ACTIVE); | |
| 1829 params.url = GURL("about:blank"); | |
| 1830 CreatePanelWithParams(params); | |
| 1831 EXPECT_EQ(2U, GetTrackedTags().size()); | |
| 1832 | |
| 1833 task_manager.StartObserving(); | |
| 1834 | |
| 1835 // The pre-existing tab and panel are provided. | |
| 1836 EXPECT_EQ(2U, task_manager.tasks().size()); | |
| 1837 | |
| 1838 // Create one more panel. | |
| 1839 params.name = std::string("PanelTest2"); | |
| 1840 CreatePanelWithParams(params); | |
| 1841 EXPECT_EQ(3U, GetTrackedTags().size()); | |
| 1842 ASSERT_EQ(3U, task_manager.tasks().size()); | |
| 1843 | |
| 1844 const task_management::Task* task = task_manager.tasks().back(); | |
| 1845 EXPECT_EQ(task_management::Task::EXTENSION, task->GetType()); | |
| 1846 const base::string16 title = task->title(); | |
| 1847 const base::string16 expected_prefix = GetExpectedPrefix(); | |
| 1848 EXPECT_TRUE(base::StartsWith(title, | |
| 1849 expected_prefix, | |
| 1850 base::CompareCase::INSENSITIVE_ASCII)); | |
| 1851 | |
| 1852 PanelManager::GetInstance()->CloseAll(); | |
| 1853 EXPECT_EQ(1U, task_manager.tasks().size()); | |
| 1854 } | |
| 1855 | |
| 1856 } // namespace | |
| 1857 | |
| 1858 #endif // defined(ENABLE_TASK_MANAGER) | |
| OLD | NEW |