| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import <Cocoa/Cocoa.h> | |
| 6 | 5 |
| 7 #include "base/scoped_nsobject.h" | 6 #include "base/scoped_nsobject.h" |
| 8 #import "chrome/browser/cocoa/bubble_view.h" | 7 #import "chrome/browser/cocoa/bubble_view.h" |
| 9 #include "chrome/browser/cocoa/cocoa_test_helper.h" | 8 #include "chrome/browser/cocoa/cocoa_test_helper.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | |
| 11 #include "testing/platform_test.h" | |
| 12 | 9 |
| 13 class BubbleViewTest : public PlatformTest { | 10 class BubbleViewTest : public CocoaTest { |
| 14 public: | 11 public: |
| 15 BubbleViewTest() { | 12 BubbleViewTest() { |
| 16 NSRect frame = NSMakeRect(0, 0, 50, 50); | 13 NSRect frame = NSMakeRect(0, 0, 50, 50); |
| 17 view_.reset([[BubbleView alloc] initWithFrame:frame | 14 scoped_nsobject<BubbleView> view( |
| 18 themeProvider:cocoa_helper_.window()]); | 15 [[BubbleView alloc] initWithFrame:frame themeProvider:test_window()]); |
| 19 [cocoa_helper_.contentView() addSubview:view_.get()]; | 16 view_ = view.get(); |
| 17 [[test_window() contentView] addSubview:view_]; |
| 20 [view_ setContent:@"Hi there, I'm a bubble view"]; | 18 [view_ setContent:@"Hi there, I'm a bubble view"]; |
| 21 } | 19 } |
| 22 | 20 |
| 23 CocoaTestHelper cocoa_helper_; | 21 BubbleView* view_; |
| 24 scoped_nsobject<BubbleView> view_; | |
| 25 }; | 22 }; |
| 26 | 23 |
| 27 // Test adding/removing from the view hierarchy, mostly to ensure nothing | 24 TEST_VIEW(BubbleViewTest, view_); |
| 28 // leaks or crashes. | |
| 29 TEST_F(BubbleViewTest, AddRemove) { | |
| 30 EXPECT_EQ(cocoa_helper_.contentView(), [view_ superview]); | |
| 31 [view_.get() removeFromSuperview]; | |
| 32 EXPECT_FALSE([view_ superview]); | |
| 33 } | |
| 34 | |
| 35 // Test drawing, mostly to ensure nothing leaks or crashes. | |
| 36 TEST_F(BubbleViewTest, Display) { | |
| 37 [view_ display]; | |
| 38 } | |
| 39 | 25 |
| 40 // Test a nil themeProvider in init. | 26 // Test a nil themeProvider in init. |
| 41 TEST_F(BubbleViewTest, NilThemeProvider) { | 27 TEST_F(BubbleViewTest, NilThemeProvider) { |
| 42 NSRect frame = NSMakeRect(0, 0, 50, 50); | 28 NSRect frame = NSMakeRect(0, 0, 50, 50); |
| 43 view_.reset([[BubbleView alloc] initWithFrame:frame | 29 scoped_nsobject<BubbleView> view( |
| 44 themeProvider:nil]); | 30 [[BubbleView alloc] initWithFrame:frame themeProvider:nil]); |
| 45 [cocoa_helper_.contentView() addSubview:view_.get()]; | 31 [[test_window() contentView] addSubview:view.get()]; |
| 46 [view_ display]; | 32 [view display]; |
| 47 } | 33 } |
| 48 | 34 |
| 49 // Make sure things don't go haywire when given invalid or long strings. | 35 // Make sure things don't go haywire when given invalid or long strings. |
| 50 TEST_F(BubbleViewTest, SetContent) { | 36 TEST_F(BubbleViewTest, SetContent) { |
| 51 [view_ setContent:nil]; | 37 [view_ setContent:nil]; |
| 52 EXPECT_TRUE([view_ content] == nil); | 38 EXPECT_TRUE([view_ content] == nil); |
| 53 [view_ setContent:@""]; | 39 [view_ setContent:@""]; |
| 54 EXPECT_TRUE([[view_ content] isEqualToString:@""]); | 40 EXPECT_TRUE([[view_ content] isEqualToString:@""]); |
| 55 NSString* str = @"This is a really really long string that's just too long"; | 41 NSString* str = @"This is a really really long string that's just too long"; |
| 56 [view_ setContent:str]; | 42 [view_ setContent:str]; |
| 57 EXPECT_TRUE([[view_ content] isEqualToString:str]); | 43 EXPECT_TRUE([[view_ content] isEqualToString:str]); |
| 58 } | 44 } |
| 59 | 45 |
| 60 TEST_F(BubbleViewTest, CornerFlags) { | 46 TEST_F(BubbleViewTest, CornerFlags) { |
| 61 // Set some random flags just to check. | 47 // Set some random flags just to check. |
| 62 [view_ setCornerFlags:kRoundedTopRightCorner | kRoundedTopLeftCorner]; | 48 [view_ setCornerFlags:kRoundedTopRightCorner | kRoundedTopLeftCorner]; |
| 63 EXPECT_EQ([view_ cornerFlags], | 49 EXPECT_EQ([view_ cornerFlags], |
| 64 (unsigned long)kRoundedTopRightCorner | kRoundedTopLeftCorner); | 50 (unsigned long)kRoundedTopRightCorner | kRoundedTopLeftCorner); |
| 65 // Set no flags (all 4 draw corners are square). | 51 // Set no flags (all 4 draw corners are square). |
| 66 [view_ setCornerFlags:0]; | 52 [view_ setCornerFlags:0]; |
| 67 EXPECT_EQ([view_ cornerFlags], 0UL); | 53 EXPECT_EQ([view_ cornerFlags], 0UL); |
| 68 // Set all bits. Meaningless past the first 4, but harmless to set too many. | 54 // Set all bits. Meaningless past the first 4, but harmless to set too many. |
| 69 [view_ setCornerFlags:0xFFFFFFFF]; | 55 [view_ setCornerFlags:0xFFFFFFFF]; |
| 70 EXPECT_EQ([view_ cornerFlags], 0xFFFFFFFF); | 56 EXPECT_EQ([view_ cornerFlags], 0xFFFFFFFF); |
| 71 } | 57 } |
| OLD | NEW |