Index: chrome/browser/ui/panels/panel_browsertest.cc |
=================================================================== |
--- chrome/browser/ui/panels/panel_browsertest.cc (revision 98834) |
+++ chrome/browser/ui/panels/panel_browsertest.cc (working copy) |
@@ -2,75 +2,30 @@ |
// 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 "base/mac/scoped_nsautorelease_pool.h" |
-#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/prefs/pref_service.h" |
#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_list.h" |
#include "chrome/browser/ui/browser_window.h" |
#include "chrome/browser/ui/find_bar/find_bar.h" |
#include "chrome/browser/ui/find_bar/find_bar_controller.h" |
+#include "chrome/browser/ui/panels/base_panel_browser_test.h" |
#include "chrome/browser/ui/panels/native_panel.h" |
#include "chrome/browser/ui/panels/panel.h" |
#include "chrome/browser/ui/panels/panel_manager.h" |
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
#include "chrome/browser/web_applications/web_app.h" |
#include "chrome/common/chrome_notification_types.h" |
-#include "chrome/common/chrome_switches.h" |
-#include "chrome/common/extensions/extension.h" |
#include "chrome/common/pref_names.h" |
-#include "chrome/test/base/in_process_browser_test.h" |
#include "chrome/test/base/ui_test_utils.h" |
#include "content/browser/download/download_manager.h" |
#include "content/browser/net/url_request_mock_http_job.h" |
-#include "content/browser/tab_contents/test_tab_contents.h" |
#include "testing/gtest/include/gtest/gtest.h" |
-#if defined(OS_MACOSX) |
-#include "chrome/browser/ui/cocoa/find_bar/find_bar_bridge.h" |
-#endif |
- |
-class PanelBrowserTest : public InProcessBrowserTest { |
+class PanelBrowserTest : public BasePanelBrowserTest { |
public: |
- PanelBrowserTest() : InProcessBrowserTest() { |
-#if defined(OS_MACOSX) |
- FindBarBridge::disable_animations_during_testing_ = true; |
-#endif |
+ PanelBrowserTest() : BasePanelBrowserTest() { |
} |
- virtual void SetUpCommandLine(CommandLine* command_line) { |
- command_line->AppendSwitch(switches::kEnablePanels); |
- } |
- |
protected: |
- Panel* CreatePanel(const std::string& name, const gfx::Rect& bounds) { |
- // Opening panels on a Mac causes NSWindowController of the Panel window |
- // to be autoreleased. We need a pool drained after it's done so the test |
- // can close correctly. The NSWindowController of the Panel window controls |
- // lifetime of the Browser object so we want to release it as soon as |
- // possible. In real Chrome, this is done by message pump. |
- // On non-Mac platform, this is an empty class. |
- base::mac::ScopedNSAutoreleasePool autorelease_pool; |
- |
- Browser* panel_browser = Browser::CreateForApp(Browser::TYPE_PANEL, |
- name, |
- bounds, |
- browser()->profile()); |
- EXPECT_TRUE(panel_browser->is_type_panel()); |
- |
- TabContentsWrapper* tab_contents = |
- new TabContentsWrapper(new TestTabContents(browser()->profile(), NULL)); |
- panel_browser->AddTab(tab_contents, PageTransition::LINK); |
- |
- Panel* panel = static_cast<Panel*>(panel_browser->window()); |
- panel->Show(); |
- MessageLoopForUI::current()->RunAllPending(); |
- |
- return panel; |
- } |
- |
void CloseWindowAndWait(Browser* browser) { |
// Closing a browser window may involve several async tasks. Need to use |
// message pump and wait for the notification. |
@@ -84,51 +39,30 @@ |
EXPECT_EQ(browser_count - 1, BrowserList::size()); |
} |
- // Creates a testing extension. |
- scoped_refptr<Extension> CreateExtension(const FilePath::StringType& path) { |
-#if defined(OS_WIN) |
- FilePath full_path(FILE_PATH_LITERAL("c:\\")); |
-#else |
- FilePath full_path(FILE_PATH_LITERAL("/")); |
-#endif |
- full_path = full_path.Append(path); |
- DictionaryValue input_value; |
- input_value.SetString(extension_manifest_keys::kVersion, "1.0.0.0"); |
- input_value.SetString(extension_manifest_keys::kName, "Sample Extension"); |
- std::string error; |
- scoped_refptr<Extension> extension = Extension::Create( |
- full_path, Extension::INVALID, input_value, |
- Extension::STRICT_ERROR_CHECKS, &error); |
- EXPECT_TRUE(extension.get()); |
- EXPECT_STREQ("", error.c_str()); |
- browser()->GetProfile()->GetExtensionService()->OnLoadSingleExtension( |
- extension.get(), false); |
- return extension; |
- } |
- |
void TestCreatePanelOnOverflow() { |
PanelManager* panel_manager = PanelManager::GetInstance(); |
EXPECT_EQ(0, panel_manager->num_panels()); // No panels initially. |
- // Specify the work area for testing purpose. |
- panel_manager->SetWorkArea(gfx::Rect(0, 0, 800, 600)); |
- |
// Create testing extensions. |
+ DictionaryValue empty_value; |
scoped_refptr<Extension> extension1 = |
- CreateExtension(FILE_PATH_LITERAL("extension1")); |
+ CreateExtension(FILE_PATH_LITERAL("extension1"), |
+ Extension::INVALID, empty_value); |
scoped_refptr<Extension> extension2 = |
- CreateExtension(FILE_PATH_LITERAL("extension2")); |
+ CreateExtension(FILE_PATH_LITERAL("extension2"), |
+ Extension::INVALID, empty_value); |
scoped_refptr<Extension> extension3 = |
- CreateExtension(FILE_PATH_LITERAL("extension3")); |
+ CreateExtension(FILE_PATH_LITERAL("extension3"), |
+ Extension::INVALID, empty_value); |
// First, create 3 panels. |
- Panel* panel1 = CreatePanel( |
+ Panel* panel1 = CreatePanelWithBounds( |
web_app::GenerateApplicationNameFromExtensionId(extension1->id()), |
gfx::Rect(0, 0, 250, 200)); |
- Panel* panel2 = CreatePanel( |
+ Panel* panel2 = CreatePanelWithBounds( |
web_app::GenerateApplicationNameFromExtensionId(extension2->id()), |
gfx::Rect(0, 0, 300, 200)); |
- Panel* panel3 = CreatePanel( |
+ Panel* panel3 = CreatePanelWithBounds( |
web_app::GenerateApplicationNameFromExtensionId(extension1->id()), |
gfx::Rect(0, 0, 200, 200)); |
ASSERT_EQ(3, panel_manager->num_panels()); |
@@ -137,7 +71,7 @@ |
ui_test_utils::WindowedNotificationObserver signal( |
chrome::NOTIFICATION_BROWSER_CLOSED, |
Source<Browser>(panel2->browser())); |
- Panel* panel4 = CreatePanel( |
+ Panel* panel4 = CreatePanelWithBounds( |
web_app::GenerateApplicationNameFromExtensionId(extension2->id()), |
gfx::Rect(0, 0, 280, 200)); |
signal.Wait(); |
@@ -149,7 +83,7 @@ |
ui_test_utils::WindowedNotificationObserver signal2( |
chrome::NOTIFICATION_BROWSER_CLOSED, |
Source<Browser>(panel4->browser())); |
- Panel* panel5 = CreatePanel( |
+ Panel* panel5 = CreatePanelWithBounds( |
web_app::GenerateApplicationNameFromExtensionId(extension3->id()), |
gfx::Rect(0, 0, 300, 200)); |
signal2.Wait(); |
@@ -164,7 +98,7 @@ |
ui_test_utils::WindowedNotificationObserver signal4( |
chrome::NOTIFICATION_BROWSER_CLOSED, |
Source<Browser>(panel5->browser())); |
- Panel* panel6 = CreatePanel( |
+ Panel* panel6 = CreatePanelWithBounds( |
web_app::GenerateApplicationNameFromExtensionId(extension3->id()), |
gfx::Rect(0, 0, 500, 200)); |
signal3.Wait(); |
@@ -176,10 +110,6 @@ |
panel6->Close(); |
} |
- void SetWorkArea(const gfx::Rect& work_area) { |
- PanelManager::GetInstance()->SetWorkArea(gfx::Rect(0, 0, 800, 600)); |
- } |
- |
int horizontal_spacing() { |
return PanelManager::horizontal_spacing(); |
} |
@@ -296,7 +226,7 @@ |
PanelManager* panel_manager = PanelManager::GetInstance(); |
EXPECT_EQ(0, panel_manager->num_panels()); // No panels initially. |
- Panel* panel = CreatePanel("PanelTest", gfx::Rect()); |
+ Panel* panel = CreatePanel("PanelTest"); |
EXPECT_EQ(1, panel_manager->num_panels()); |
gfx::Rect bounds = panel->GetBounds(); |
@@ -311,7 +241,7 @@ |
} |
IN_PROC_BROWSER_TEST_F(PanelBrowserTest, FindBar) { |
- Panel* panel = CreatePanel("PanelTest", gfx::Rect(0, 0, 400, 400)); |
+ Panel* panel = CreatePanelWithBounds("PanelTest", gfx::Rect(0, 0, 400, 400)); |
Browser* browser = panel->browser(); |
browser->ShowFindBar(); |
ASSERT_TRUE(browser->GetFindBarController()->find_bar()->IsFindBarVisible()); |
@@ -329,9 +259,6 @@ |
#endif |
IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MAYBE_DragPanels) { |
- // Set work area to make the test consistent on different monitor sizes. |
- SetWorkArea(gfx::Rect(0, 0, 800, 600)); |
- |
static const int max_panels = 3; |
static const int zero_delta = 0; |
static const int small_delta = 10; |
@@ -347,7 +274,7 @@ |
// Tests with a single panel. |
{ |
- CreatePanel("PanelTest1", gfx::Rect(0, 0, 100, 100)); |
+ CreatePanelWithBounds("PanelTest1", gfx::Rect(0, 0, 100, 100)); |
// Drag left. |
expected_delta_x_after_drag[0] = -big_delta; |
@@ -385,7 +312,7 @@ |
// Tests with two panels. |
{ |
- CreatePanel("PanelTest2", gfx::Rect(0, 0, 120, 120)); |
+ CreatePanelWithBounds("PanelTest2", gfx::Rect(0, 0, 120, 120)); |
// Drag left, small delta, expect no shuffle. |
{ |
@@ -458,7 +385,7 @@ |
// Tests with three panels. |
{ |
- CreatePanel("PanelTest3", gfx::Rect(0, 0, 110, 110)); |
+ CreatePanelWithBounds("PanelTest3", gfx::Rect(0, 0, 110, 110)); |
// Drag leftmost panel to become rightmost with two shuffles. |
// We test both shuffles. |