diff options
author | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-08 21:09:29 +0000 |
---|---|---|
committer | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-08 21:09:29 +0000 |
commit | 1a3e0967c5a0cbfb6bee4a63b49955acbb6b387e (patch) | |
tree | 1c90b017ca427ecc4a66e1a41cd2d44682f9f223 /chrome/browser/cocoa/bubble_view_unittest.mm | |
parent | 63d23bb1410837f9fdc300b4b5c0a3470724c8d6 (diff) | |
download | chromium_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.mm | 71 |
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); +} |