summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/bubble_view_unittest.mm
diff options
context:
space:
mode:
authorpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-08 21:09:29 +0000
committerpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-08 21:09:29 +0000
commit1a3e0967c5a0cbfb6bee4a63b49955acbb6b387e (patch)
tree1c90b017ca427ecc4a66e1a41cd2d44682f9f223 /chrome/browser/cocoa/bubble_view_unittest.mm
parent63d23bb1410837f9fdc300b4b5c0a3470724c8d6 (diff)
downloadchromium_src-1a3e0967c5a0cbfb6bee4a63b49955acbb6b387e.zip
chromium_src-1a3e0967c5a0cbfb6bee4a63b49955acbb6b387e.tar.gz
chromium_src-1a3e0967c5a0cbfb6bee4a63b49955acbb6b387e.tar.bz2
Pretty-up the blocked popup view by sharing code from the status bubble. Blocked Popup view is now themed as well.
BUG=20815 TEST=popup blocking and status bubble still work. Review URL: http://codereview.chromium.org/196043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25662 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/bubble_view_unittest.mm')
-rw-r--r--chrome/browser/cocoa/bubble_view_unittest.mm71
1 files changed, 71 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/bubble_view_unittest.mm b/chrome/browser/cocoa/bubble_view_unittest.mm
new file mode 100644
index 0000000..2c949b5
--- /dev/null
+++ b/chrome/browser/cocoa/bubble_view_unittest.mm
@@ -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 long strings.
+TEST_F(BubbleViewTest, SetContent) {
+ [view_ setContent:nil];
+ EXPECT_TRUE([view_ content] == nil);
+ [view_ setContent:@""];
+ EXPECT_TRUE([[view_ content] isEqualToString:@""]);
+ NSString* str = @"This is a really really long string that's just too long";
+ [view_ setContent:str];
+ EXPECT_TRUE([[view_ content] isEqualToString:str]);
+}
+
+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);
+}