diff options
Diffstat (limited to 'chrome/browser/ui/cocoa/bubble_view_unittest.mm')
-rw-r--r-- | chrome/browser/ui/cocoa/bubble_view_unittest.mm | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/chrome/browser/ui/cocoa/bubble_view_unittest.mm b/chrome/browser/ui/cocoa/bubble_view_unittest.mm new file mode 100644 index 0000000..5d788ea --- /dev/null +++ b/chrome/browser/ui/cocoa/bubble_view_unittest.mm @@ -0,0 +1,58 @@ +// Copyright (c) 2009 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/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); + 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); + 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); +} |