1// Copyright (c) 2011 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 "base/mac/scoped_nsobject.h" 8#import "chrome/browser/ui/cocoa/background_gradient_view.h" 9#import "chrome/browser/ui/cocoa/cocoa_test_helper.h" 10#include "testing/gtest/include/gtest/gtest.h" 11#include "testing/platform_test.h" 12 13// Since BackgroundGradientView doesn't do any drawing by default, we 14// create a subclass to call its draw method for us. 15@interface BackgroundGradientSubClassTest : BackgroundGradientView { 16 BOOL backgroundIsOpaque; 17} 18 19@property BOOL backgroundIsOpaque; 20 21@end 22 23@implementation BackgroundGradientSubClassTest 24 25@synthesize backgroundIsOpaque; 26 27- (void)drawRect:(NSRect)rect { 28 [self drawBackgroundWithOpaque:backgroundIsOpaque]; 29} 30 31@end 32 33namespace { 34 35class BackgroundGradientViewTest : public CocoaTest { 36 public: 37 BackgroundGradientViewTest() { 38 NSRect frame = NSMakeRect(0, 0, 100, 30); 39 base::scoped_nsobject<BackgroundGradientSubClassTest> view; 40 view.reset([[BackgroundGradientSubClassTest alloc] initWithFrame:frame]); 41 view_ = view.get(); 42 [[test_window() contentView] addSubview:view_]; 43 } 44 45 BackgroundGradientSubClassTest* view_; 46}; 47 48TEST_VIEW(BackgroundGradientViewTest, view_) 49 50// Test drawing, mostly to ensure nothing leaks or crashes. 51TEST_F(BackgroundGradientViewTest, DisplayWithDivider) { 52 [view_ setShowsDivider:YES]; 53 [view_ setBackgroundIsOpaque:YES]; 54 [view_ display]; 55 [view_ setBackgroundIsOpaque:NO]; 56 [view_ display]; 57} 58 59} // namespace 60