1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#import <Cocoa/Cocoa.h> 6 7#include "base/mac/scoped_nsobject.h" 8#import "chrome/browser/ui/cocoa/browser_window_layout.h" 9#include "testing/gtest/include/gtest/gtest.h" 10 11class BrowserWindowLayoutTest : public testing::Test { 12 public: 13 BrowserWindowLayoutTest() {} 14 virtual void SetUp() OVERRIDE { 15 layout.reset([[BrowserWindowLayout alloc] init]); 16 17 [layout setContentViewSize:NSMakeSize(600, 600)]; 18 [layout setWindowSize:NSMakeSize(600, 622)]; 19 [layout setInAnyFullscreen:NO]; 20 [layout setHasTabStrip:YES]; 21 [layout setHasToolbar:YES]; 22 [layout setToolbarHeight:32]; 23 [layout setPlaceBookmarkBarBelowInfoBar:NO]; 24 [layout setBookmarkBarHidden:NO]; 25 [layout setBookmarkBarHeight:26]; 26 [layout setInfoBarHeight:72]; 27 [layout setPageInfoBubblePointY:13]; 28 [layout setHasDownloadShelf:YES]; 29 [layout setDownloadShelfHeight:44]; 30 } 31 32 base::scoped_nsobject<BrowserWindowLayout> layout; 33 34 private: 35 DISALLOW_COPY_AND_ASSIGN(BrowserWindowLayoutTest); 36}; 37 38TEST_F(BrowserWindowLayoutTest, TestAllViews) { 39 chrome::LayoutOutput output = [layout computeLayout]; 40 41 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 585, 600, 37), output.tabStripFrame)); 42 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 553, 600, 32), output.toolbarFrame)); 43 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 527, 600, 26), output.bookmarkFrame)); 44 EXPECT_TRUE(NSEqualRects(NSZeroRect, output.fullscreenBackingBarFrame)); 45 EXPECT_EQ(527, output.findBarMaxY); 46 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 455, 600, 111), output.infoBarFrame)); 47 EXPECT_TRUE( 48 NSEqualRects(NSMakeRect(0, 0, 600, 44), output.downloadShelfFrame)); 49 EXPECT_TRUE( 50 NSEqualRects(NSMakeRect(0, 44, 600, 411), output.contentAreaFrame)); 51} 52 53TEST_F(BrowserWindowLayoutTest, TestAllViewsFullscreen) { 54 // Content view has same size as window in AppKit Fullscreen. 55 [layout setContentViewSize:NSMakeSize(600, 622)]; 56 [layout setInAnyFullscreen:YES]; 57 [layout setFullscreenSlidingStyle:fullscreen_mac::OMNIBOX_TABS_PRESENT]; 58 [layout setFullscreenMenubarOffset:0]; 59 [layout setFullscreenToolbarFraction:0]; 60 61 chrome::LayoutOutput output = [layout computeLayout]; 62 63 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 585, 600, 37), output.tabStripFrame)); 64 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 553, 600, 32), output.toolbarFrame)); 65 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 527, 600, 26), output.bookmarkFrame)); 66 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 527, 600, 95), 67 output.fullscreenBackingBarFrame)); 68 EXPECT_EQ(527, output.findBarMaxY); 69 EXPECT_EQ(527, output.fullscreenExitButtonMaxY); 70 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 455, 600, 111), output.infoBarFrame)); 71 EXPECT_TRUE( 72 NSEqualRects(NSMakeRect(0, 0, 600, 44), output.downloadShelfFrame)); 73 EXPECT_TRUE( 74 NSEqualRects(NSMakeRect(0, 44, 600, 411), output.contentAreaFrame)); 75} 76 77TEST_F(BrowserWindowLayoutTest, TestAllViewsFullscreenMenuBarShowing) { 78 // Content view has same size as window in AppKit Fullscreen. 79 [layout setContentViewSize:NSMakeSize(600, 622)]; 80 [layout setInAnyFullscreen:YES]; 81 [layout setFullscreenSlidingStyle:fullscreen_mac::OMNIBOX_TABS_PRESENT]; 82 [layout setFullscreenMenubarOffset:-10]; 83 [layout setFullscreenToolbarFraction:0]; 84 85 chrome::LayoutOutput output = [layout computeLayout]; 86 87 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 575, 600, 37), output.tabStripFrame)); 88 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 543, 600, 32), output.toolbarFrame)); 89 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 517, 600, 26), output.bookmarkFrame)); 90 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 517, 600, 95), 91 output.fullscreenBackingBarFrame)); 92 EXPECT_EQ(517, output.findBarMaxY); 93 EXPECT_EQ(517, output.fullscreenExitButtonMaxY); 94 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 445, 600, 111), output.infoBarFrame)); 95 EXPECT_TRUE( 96 NSEqualRects(NSMakeRect(0, 0, 600, 44), output.downloadShelfFrame)); 97 EXPECT_TRUE( 98 NSEqualRects(NSMakeRect(0, 44, 600, 411), output.contentAreaFrame)); 99} 100 101TEST_F(BrowserWindowLayoutTest, TestPopupWindow) { 102 [layout setHasTabStrip:NO]; 103 [layout setHasToolbar:NO]; 104 [layout setHasLocationBar:YES]; 105 [layout setBookmarkBarHidden:YES]; 106 [layout setHasDownloadShelf:NO]; 107 108 chrome::LayoutOutput output = [layout computeLayout]; 109 110 EXPECT_TRUE(NSEqualRects(NSZeroRect, output.tabStripFrame)); 111 EXPECT_TRUE(NSEqualRects(NSMakeRect(1, 568, 598, 32), output.toolbarFrame)); 112 EXPECT_TRUE(NSEqualRects(NSZeroRect, output.bookmarkFrame)); 113 EXPECT_TRUE(NSEqualRects(NSZeroRect, output.fullscreenBackingBarFrame)); 114 EXPECT_EQ(567, output.findBarMaxY); 115 EXPECT_TRUE(NSEqualRects(NSMakeRect(0, 495, 600, 86), output.infoBarFrame)); 116 EXPECT_TRUE(NSEqualRects(NSZeroRect, output.downloadShelfFrame)); 117 EXPECT_TRUE( 118 NSEqualRects(NSMakeRect(0, 0, 600, 495), output.contentAreaFrame)); 119} 120