Popular sites on the NTP: check that experiment group StartsWith (rather than IS...
[chromium-blink-merge.git] / chrome / browser / ui / cocoa / bubble_view_unittest.mm
blobc1b5d9b49c46ab369e76d214acdc41afb130efe9
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 {
12  public:
13   BubbleViewTest() {
14     NSRect frame = NSMakeRect(0, 0, 50, 50);
15     base::scoped_nsobject<BubbleView> view(
16         [[BubbleView alloc] initWithFrame:frame themeProvider:test_window()]);
17     view_ = view.get();
18     [[test_window() contentView] addSubview:view_];
19     [view_ setContent:@"Hi there, I'm a bubble view"];
20   }
22   BubbleView* 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()];
33   [view display];
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);