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

Unified Diff: chrome/browser/cocoa/tabpose_window_unittest.mm

Issue 3163003: Mac tabpose: Add thumbnails (Closed)
Patch Set: '' Created 10 years, 4 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
« no previous file with comments | « chrome/browser/cocoa/tabpose_window.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cocoa/tabpose_window_unittest.mm
diff --git a/chrome/browser/cocoa/tabpose_window_unittest.mm b/chrome/browser/cocoa/tabpose_window_unittest.mm
index ad102502d83d863b351c8069494f051ab6f81e0c..e9ed4410bdfedd96b16a597a1c34989a6572e71f 100644
--- a/chrome/browser/cocoa/tabpose_window_unittest.mm
+++ b/chrome/browser/cocoa/tabpose_window_unittest.mm
@@ -13,12 +13,24 @@
class TabposeWindowTest : public CocoaTest {
public:
+ TabposeWindowTest() {
+ site_instance_ =
+ SiteInstance::CreateSiteInstance(browser_helper_.profile());
+ }
+
+ void AppendTabToStrip() {
+ TabContents* tab_contents = new TabContents(
+ browser_helper_.profile(), site_instance_, MSG_ROUTING_NONE, NULL);
+ browser_helper_.browser()->tabstrip_model()->AppendTabContents(
+ tab_contents, /*foreground=*/true);
+ }
+
BrowserTestHelper browser_helper_;
+ scoped_refptr<SiteInstance> site_instance_;
};
// Check that this doesn't leak.
TEST_F(TabposeWindowTest, TestShow) {
- Browser* browser = browser_helper_.browser();
BrowserWindow* browser_window = browser_helper_.CreateBrowserWindow();
NSWindow* parent = browser_window->GetNativeHandle();
@@ -26,22 +38,76 @@ TEST_F(TabposeWindowTest, TestShow) {
EXPECT_TRUE([parent isVisible]);
// Add a few tabs to the tab strip model.
- TabStripModel* model = browser->tabstrip_model();
- SiteInstance* instance =
- SiteInstance::CreateSiteInstance(browser_helper_.profile());
- for (int i = 0; i < 3; ++i) {
- TabContents* tab_contents =
- new TabContents(browser_helper_.profile(), instance, MSG_ROUTING_NONE,
- NULL);
- model->AppendTabContents(tab_contents, /*foreground=*/true);
- }
+ for (int i = 0; i < 3; ++i)
+ AppendTabToStrip();
base::ScopedNSAutoreleasePool pool;
TabposeWindow* window =
[TabposeWindow openTabposeFor:parent
rect:NSMakeRect(10, 20, 250, 160)
slomo:NO
- tabStripModel:model];
+ tabStripModel:browser_helper_.browser()->tabstrip_model()];
+
+ // Should release the window.
+ [window mouseDown:nil];
+
+ browser_helper_.CloseBrowserWindow();
+}
+
+TEST_F(TabposeWindowTest, TestModelObserver) {
+ BrowserWindow* browser_window = browser_helper_.CreateBrowserWindow();
+ NSWindow* parent = browser_window->GetNativeHandle();
+ [parent orderFront:nil];
+
+ // Add a few tabs to the tab strip model.
+ for (int i = 0; i < 3; ++i)
+ AppendTabToStrip();
+
+ base::ScopedNSAutoreleasePool pool;
+ TabposeWindow* window =
+ [TabposeWindow openTabposeFor:parent
+ rect:NSMakeRect(10, 20, 250, 160)
+ slomo:NO
+ tabStripModel:browser_helper_.browser()->tabstrip_model()];
+
+ // Exercise all the model change events.
+ TabStripModel* model = browser_helper_.browser()->tabstrip_model();
+ DCHECK_EQ([window thumbnailLayerCount], 3u);
+ DCHECK_EQ([window selectedIndex], 2);
+
+ model->MoveTabContentsAt(0, 2, /*select_after_move=*/false);
+ DCHECK_EQ([window thumbnailLayerCount], 3u);
+ DCHECK_EQ([window selectedIndex], 1);
+
+ model->MoveTabContentsAt(2, 0, /*select_after_move=*/false);
+ DCHECK_EQ([window thumbnailLayerCount], 3u);
+ DCHECK_EQ([window selectedIndex], 2);
+
+ [window selectTileAtIndexWithoutAnimation:0];
+ DCHECK_EQ([window selectedIndex], 0);
+
+ model->MoveTabContentsAt(0, 2, /*select_after_move=*/false);
+ DCHECK_EQ([window selectedIndex], 2);
+
+ model->MoveTabContentsAt(2, 0, /*select_after_move=*/false);
+ DCHECK_EQ([window selectedIndex], 0);
+
+ delete model->DetachTabContentsAt(0);
+ DCHECK_EQ([window thumbnailLayerCount], 2u);
+ DCHECK_EQ([window selectedIndex], 0);
+
+ AppendTabToStrip();
+ DCHECK_EQ([window thumbnailLayerCount], 3u);
+ DCHECK_EQ([window selectedIndex], 0);
+
+ model->CloseTabContentsAt(0, TabStripModel::CLOSE_NONE);
+ DCHECK_EQ([window thumbnailLayerCount], 2u);
+ DCHECK_EQ([window selectedIndex], 0);
+
+ [window selectTileAtIndexWithoutAnimation:1];
+ model->CloseTabContentsAt(0, TabStripModel::CLOSE_NONE);
+ DCHECK_EQ([window thumbnailLayerCount], 1u);
+ DCHECK_EQ([window selectedIndex], 0);
// Should release the window.
[window mouseDown:nil];
« no previous file with comments | « chrome/browser/cocoa/tabpose_window.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698