1 // Copyright (c) 2011 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.
6 #include "base/mac/scoped_nsobject.h"
7 #import "chrome/browser/ui/cocoa/bubble_view.h"
8 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h"
9 #import "testing/gtest_mac.h"
11 class BubbleViewTest : public CocoaTest {
14 NSRect frame = NSMakeRect(0, 0, 50, 50);
15 base::scoped_nsobject<BubbleView> view(
16 [[BubbleView alloc] initWithFrame:frame themeProvider:test_window()]);
18 [[test_window() contentView] addSubview:view_];
19 [view_ setContent:@"Hi there, I'm a bubble view"];
25 TEST_VIEW(BubbleViewTest, view_);
27 // Test a nil themeProvider in init.
28 TEST_F(BubbleViewTest, NilThemeProvider) {
29 NSRect frame = NSMakeRect(0, 0, 50, 50);
30 base::scoped_nsobject<BubbleView> view(
31 [[BubbleView alloc] initWithFrame:frame themeProvider:nil]);
32 [[test_window() contentView] addSubview:view.get()];
36 // Make sure things don't go haywire when given invalid or long strings.
37 TEST_F(BubbleViewTest, SetContent) {
38 [view_ setContent:nil];
39 EXPECT_TRUE([view_ content] == nil);
40 [view_ setContent:@""];
41 EXPECT_NSEQ(@"", [view_ content]);
42 NSString* str = @"This is a really really long string that's just too long";
43 [view_ setContent:str];
44 EXPECT_NSEQ(str, [view_ content]);
47 TEST_F(BubbleViewTest, CornerFlags) {
48 // Set some random flags just to check.
49 [view_ setCornerFlags:kRoundedTopRightCorner | kRoundedTopLeftCorner];
50 EXPECT_EQ([view_ cornerFlags],
51 (unsigned long)kRoundedTopRightCorner | kRoundedTopLeftCorner);
52 // Set no flags (all 4 draw corners are square).
53 [view_ setCornerFlags:0];
54 EXPECT_EQ([view_ cornerFlags], 0UL);
55 // Set all bits. Meaningless past the first 4, but harmless to set too many.
56 [view_ setCornerFlags:0xFFFFFFFF];
57 EXPECT_EQ([view_ cornerFlags], 0xFFFFFFFF);