| Index: trunk/src/ui/base/cocoa/controls/hover_image_menu_button_unittest.mm
|
| ===================================================================
|
| --- trunk/src/ui/base/cocoa/controls/hover_image_menu_button_unittest.mm (revision 206373)
|
| +++ trunk/src/ui/base/cocoa/controls/hover_image_menu_button_unittest.mm (working copy)
|
| @@ -1,168 +0,0 @@
|
| -// Copyright 2013 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 "ui/base/cocoa/controls/hover_image_menu_button.h"
|
| -
|
| -#include "base/mac/foundation_util.h"
|
| -#import "testing/gtest_mac.h"
|
| -#import "ui/base/cocoa/controls/hover_image_menu_button_cell.h"
|
| -#import "ui/base/test/ui_cocoa_test_helper.h"
|
| -
|
| -namespace ui {
|
| -
|
| -namespace {
|
| -
|
| -// Test initialization and display of the NSPopUpButton that shows the drop-
|
| -// down menu. Don't try to show the menu, since it will block the thread.
|
| -class HoverImageMenuButtonTest : public CocoaTest {
|
| - public:
|
| - HoverImageMenuButtonTest() {}
|
| -
|
| - // CocoaTest override:
|
| - virtual void SetUp() OVERRIDE;
|
| -
|
| - protected:
|
| - scoped_nsobject<HoverImageMenuButton> menu_button_;
|
| - scoped_nsobject<NSImage> normal_;
|
| - scoped_nsobject<NSImage> pressed_;
|
| - scoped_nsobject<NSImage> hovered_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(HoverImageMenuButtonTest);
|
| -};
|
| -
|
| -void HoverImageMenuButtonTest::SetUp() {
|
| - menu_button_.reset(
|
| - [[HoverImageMenuButton alloc] initWithFrame:NSMakeRect(0, 0, 50, 30)
|
| - pullsDown:YES]);
|
| -
|
| - normal_.reset([base::mac::ObjCCastStrict<NSImage>(
|
| - [NSImage imageNamed:NSImageNameStatusAvailable]) retain]);
|
| - pressed_.reset([base::mac::ObjCCastStrict<NSImage>(
|
| - [NSImage imageNamed:NSImageNameStatusUnavailable]) retain]);
|
| - hovered_.reset([base::mac::ObjCCastStrict<NSImage>(
|
| - [NSImage imageNamed:NSImageNameStatusPartiallyAvailable]) retain]);
|
| - [[menu_button_ hoverImageMenuButtonCell] setImage:normal_];
|
| - [[menu_button_ hoverImageMenuButtonCell] setAlternateImage:pressed_];
|
| - [[menu_button_ hoverImageMenuButtonCell] setHoverImage:hovered_];
|
| -
|
| - CocoaTest::SetUp();
|
| - [[test_window() contentView] addSubview:menu_button_];
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -TEST_VIEW(HoverImageMenuButtonTest, menu_button_);
|
| -
|
| -// Tests that the correct image is chosen, depending on the cell's state flags.
|
| -TEST_F(HoverImageMenuButtonTest, CheckImagesForState) {
|
| - EXPECT_FALSE([[menu_button_ cell] isHovered]);
|
| - EXPECT_FALSE([[menu_button_ cell] isHighlighted]);
|
| - EXPECT_NSEQ(normal_, [[menu_button_ cell] imageToDraw]);
|
| - [menu_button_ display];
|
| -
|
| - [[menu_button_ cell] setHovered:YES];
|
| - EXPECT_TRUE([[menu_button_ cell] isHovered]);
|
| - EXPECT_FALSE([[menu_button_ cell] isHighlighted]);
|
| - EXPECT_NSEQ(hovered_, [[menu_button_ cell] imageToDraw]);
|
| - [menu_button_ display];
|
| -
|
| - // Highlighted takes precendece over hover.
|
| - [[menu_button_ cell] setHighlighted:YES];
|
| - EXPECT_TRUE([[menu_button_ cell] isHovered]);
|
| - EXPECT_TRUE([[menu_button_ cell] isHighlighted]);
|
| - EXPECT_NSEQ(pressed_, [[menu_button_ cell] imageToDraw]);
|
| - [menu_button_ display];
|
| -
|
| - [[menu_button_ cell] setHovered:NO];
|
| - EXPECT_FALSE([[menu_button_ cell] isHovered]);
|
| - EXPECT_TRUE([[menu_button_ cell] isHighlighted]);
|
| - EXPECT_NSEQ(pressed_, [[menu_button_ cell] imageToDraw]);
|
| - [menu_button_ display];
|
| -
|
| - [[menu_button_ cell] setHighlighted:NO];
|
| - EXPECT_FALSE([[menu_button_ cell] isHovered]);
|
| - EXPECT_FALSE([[menu_button_ cell] isHighlighted]);
|
| - EXPECT_NSEQ(normal_, [[menu_button_ cell] imageToDraw]);
|
| - [menu_button_ display];
|
| -}
|
| -
|
| -// Tests that calling the various setXImage functions calls setNeedsDisplay.
|
| -TEST_F(HoverImageMenuButtonTest, NewImageCausesDisplay) {
|
| - [menu_button_ display];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -
|
| - // Note that regular setImage is overridden to ensure the image goes into the
|
| - // NSPopUpButtonCell's menuItem.
|
| - [[menu_button_ cell] setImage:pressed_];
|
| -
|
| - // Highlighting the cell requires a redisplay.
|
| - [[menu_button_ cell] setHighlighted:YES];
|
| - EXPECT_TRUE([menu_button_ needsDisplay]);
|
| - [menu_button_ display];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -
|
| - // setAlternateImage comes from NSButtonCell. Ensure the added setHover*
|
| - // behaviour matches.
|
| - [[menu_button_ cell] setAlternateImage:normal_];
|
| - EXPECT_TRUE([menu_button_ needsDisplay]);
|
| - [menu_button_ display];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -
|
| - // Setting the same image should not cause a redisplay.
|
| - [[menu_button_ cell] setAlternateImage:normal_];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -
|
| - // Unhighlighting requires a redisplay.
|
| - [[menu_button_ cell] setHighlighted:NO];
|
| - EXPECT_TRUE([menu_button_ needsDisplay]);
|
| - [menu_button_ display];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -
|
| - // Changing hover state requires a redisplay.
|
| - [[menu_button_ cell] setHovered:YES];
|
| - EXPECT_TRUE([menu_button_ needsDisplay]);
|
| - [menu_button_ display];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -
|
| - // setHoverImage comes directly from storage in HoverImageMenuButtonCell.
|
| - [[menu_button_ cell] setHoverImage:normal_];
|
| - EXPECT_TRUE([menu_button_ needsDisplay]);
|
| - [menu_button_ display];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -
|
| - // Setting the same image should not cause a redisplay.
|
| - [[menu_button_ cell] setHoverImage:normal_];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -
|
| - // Unhover requires a redisplay.
|
| - [[menu_button_ cell] setHovered:NO];
|
| - EXPECT_TRUE([menu_button_ needsDisplay]);
|
| - [menu_button_ display];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -
|
| - // Changing the image while not hovered should not require a redisplay.
|
| - [[menu_button_ cell] setHoverImage:pressed_];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -}
|
| -
|
| -// Test that the mouse enter and exit is properly handled, to set hover state.
|
| -TEST_F(HoverImageMenuButtonTest, SimulateMouseEnterExit) {
|
| - [menu_button_ display];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| - EXPECT_NSEQ(normal_, [[menu_button_ cell] imageToDraw]);
|
| -
|
| - [menu_button_ mouseEntered:nil];
|
| - EXPECT_TRUE([menu_button_ needsDisplay]);
|
| - EXPECT_NSEQ(hovered_, [[menu_button_ cell] imageToDraw]);
|
| - [menu_button_ display];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -
|
| - [menu_button_ mouseExited:nil];
|
| - EXPECT_TRUE([menu_button_ needsDisplay]);
|
| - EXPECT_NSEQ(normal_, [[menu_button_ cell] imageToDraw]);
|
| - [menu_button_ display];
|
| - EXPECT_FALSE([menu_button_ needsDisplay]);
|
| -}
|
| -
|
| -} // namespace ui
|
|
|