Index: chrome/browser/cocoa/bubble_view_unittest.mm |
=================================================================== |
--- chrome/browser/cocoa/bubble_view_unittest.mm (revision 0) |
+++ chrome/browser/cocoa/bubble_view_unittest.mm (revision 0) |
@@ -0,0 +1,71 @@ |
+// 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. |
+ |
+#import <Cocoa/Cocoa.h> |
+ |
+#include "base/scoped_nsobject.h" |
+#import "chrome/browser/cocoa/bubble_view.h" |
+#include "chrome/browser/cocoa/cocoa_test_helper.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+#include "testing/platform_test.h" |
+ |
+class BubbleViewTest : public PlatformTest { |
+ public: |
+ BubbleViewTest() { |
+ NSRect frame = NSMakeRect(0, 0, 50, 50); |
+ view_.reset([[BubbleView alloc] initWithFrame:frame |
+ themeProvider:cocoa_helper_.window()]); |
+ [cocoa_helper_.contentView() addSubview:view_.get()]; |
+ [view_ setContent:@"Hi there, I'm a bubble view"]; |
+ } |
+ |
+ CocoaTestHelper cocoa_helper_; |
+ scoped_nsobject<BubbleView> view_; |
+}; |
+ |
+// Test adding/removing from the view hierarchy, mostly to ensure nothing |
+// leaks or crashes. |
+TEST_F(BubbleViewTest, AddRemove) { |
+ EXPECT_EQ(cocoa_helper_.contentView(), [view_ superview]); |
+ [view_.get() removeFromSuperview]; |
+ EXPECT_FALSE([view_ superview]); |
+} |
+ |
+// Test drawing, mostly to ensure nothing leaks or crashes. |
+TEST_F(BubbleViewTest, Display) { |
+ [view_ display]; |
+} |
+ |
+// Test a nil themeProvider in init. |
+TEST_F(BubbleViewTest, NilThemeProvider) { |
+ NSRect frame = NSMakeRect(0, 0, 50, 50); |
+ view_.reset([[BubbleView alloc] initWithFrame:frame |
+ themeProvider:nil]); |
+ [cocoa_helper_.contentView() addSubview:view_.get()]; |
+ [view_ display]; |
+} |
+ |
+// Make sure things don't go haywire when given invalid or extra-long strings |
rohitrao (ping after 24h)
2009/09/08 19:25:21
Is there any value in testing displaying extra-lon
pink (ping after 24hrs)
2009/09/08 19:50:17
No, not really. I can remove.
|
+TEST_F(BubbleViewTest, SetContent) { |
+ [view_ setContent:nil]; |
+ EXPECT_TRUE([view_ content] == nil); |
+ [view_ setContent:@""]; |
+ EXPECT_TRUE([[view_ content] isEqualToString:@""]); |
+ NSString* str = @"This is just a really long string that's just too long"; |
+ [view_ setContent:str]; |
+ EXPECT_TRUE([str isEqualToString:[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); |
+} |
Property changes on: chrome/browser/cocoa/bubble_view_unittest.mm |
___________________________________________________________________ |
Name: svn:eol-style |
+ LF |