| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| |
| #include "base/mac/scoped_nsobject.h" |
| #import "chrome/browser/ui/cocoa/bubble_view.h" |
| #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
| #import "testing/gtest_mac.h" |
| |
| class BubbleViewTest : public CocoaTest { |
| public: |
| BubbleViewTest() { |
| NSRect frame = NSMakeRect(0, 0, 50, 50); |
| base::scoped_nsobject<BubbleView> view( |
| [[BubbleView alloc] initWithFrame:frame themeProvider:test_window()]); |
| view_ = view.get(); |
| [[test_window() contentView] addSubview:view_]; |
| [view_ setContent:@"Hi there, I'm a bubble view"]; |
| } |
| |
| BubbleView* view_; |
| }; |
| |
| TEST_VIEW(BubbleViewTest, view_); |
| |
| // Test a nil themeProvider in init. |
| TEST_F(BubbleViewTest, NilThemeProvider) { |
| NSRect frame = NSMakeRect(0, 0, 50, 50); |
| base::scoped_nsobject<BubbleView> view( |
| [[BubbleView alloc] initWithFrame:frame themeProvider:nil]); |
| [[test_window() contentView] addSubview:view.get()]; |
| [view display]; |
| } |
| |
| // Make sure things don't go haywire when given invalid or long strings. |
| TEST_F(BubbleViewTest, SetContent) { |
| [view_ setContent:nil]; |
| EXPECT_TRUE([view_ content] == nil); |
| [view_ setContent:@""]; |
| EXPECT_NSEQ(@"", [view_ content]); |
| NSString* str = @"This is a really really long string that's just too long"; |
| [view_ setContent:str]; |
| EXPECT_NSEQ(str, [view_ content]); |
| } |
| |
| TEST_F(BubbleViewTest, CornerFlags) { |
| // Set some random flags just to check. |
| [view_ setCornerFlags:kRoundedTopRightCorner | kRoundedTopLeftCorner]; |
| EXPECT_EQ([view_ cornerFlags], |
| (unsigned long)kRoundedTopRightCorner | kRoundedTopLeftCorner); |
| // Set no flags (all 4 draw corners are square). |
| [view_ setCornerFlags:0]; |
| EXPECT_EQ([view_ cornerFlags], 0UL); |
| // Set all bits. Meaningless past the first 4, but harmless to set too many. |
| [view_ setCornerFlags:0xFFFFFFFF]; |
| EXPECT_EQ([view_ cornerFlags], 0xFFFFFFFF); |
| } |