hover_image_button_unittest.mm revision 21d179b334e59e9a3bfcaed4c4430bef1bc5759d
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 3// found in the LICENSE file. 4 5#import <Cocoa/Cocoa.h> 6 7#include "app/resource_bundle.h" 8#include "base/scoped_nsobject.h" 9#import "chrome/browser/ui/cocoa/cocoa_test_helper.h" 10#import "chrome/browser/ui/cocoa/hover_image_button.h" 11#include "testing/gtest/include/gtest/gtest.h" 12#include "testing/platform_test.h" 13#include "grit/theme_resources.h" 14 15namespace { 16 17class HoverImageButtonTest : public CocoaTest { 18 public: 19 HoverImageButtonTest() { 20 NSRect content_frame = [[test_window() contentView] frame]; 21 scoped_nsobject<HoverImageButton> button( 22 [[HoverImageButton alloc] initWithFrame:content_frame]); 23 button_ = button.get(); 24 [[test_window() contentView] addSubview:button_]; 25 } 26 27 virtual void SetUp() { 28 CocoaTest::BootstrapCocoa(); 29 } 30 31 HoverImageButton* button_; 32}; 33 34// Test mouse events. 35TEST_F(HoverImageButtonTest, ImageSwap) { 36 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 37 NSImage* image = rb.GetNativeImageNamed(IDR_HOME); 38 NSImage* hover = rb.GetNativeImageNamed(IDR_BACK); 39 [button_ setDefaultImage:image]; 40 [button_ setHoverImage:hover]; 41 42 [button_ mouseEntered:nil]; 43 [button_ drawRect:[button_ frame]]; 44 EXPECT_EQ([button_ image], hover); 45 [button_ mouseExited:nil]; 46 [button_ drawRect:[button_ frame]]; 47 EXPECT_EQ([button_ image], image); 48} 49 50// Test mouse events. 51TEST_F(HoverImageButtonTest, Opacity) { 52 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 53 NSImage* image = rb.GetNativeImageNamed(IDR_HOME); 54 [button_ setDefaultImage:image]; 55 [button_ setDefaultOpacity:0.5]; 56 [button_ setHoverImage:image]; 57 [button_ setHoverOpacity:1.0]; 58 59 [button_ mouseEntered:nil]; 60 [button_ drawRect:[button_ frame]]; 61 EXPECT_EQ([button_ alphaValue], 1.0); 62 [button_ mouseExited:nil]; 63 [button_ drawRect:[button_ frame]]; 64 EXPECT_EQ([button_ alphaValue], 0.5); 65} 66 67} // namespace 68