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/memory/scoped_nsobject.h" 8#import "chrome/browser/ui/cocoa/cocoa_test_helper.h" 9#import "chrome/browser/ui/cocoa/tabs/tab_view.h" 10#include "testing/gtest/include/gtest/gtest.h" 11#include "testing/platform_test.h" 12 13namespace { 14 15class TabViewTest : public CocoaTest { 16 public: 17 TabViewTest() { 18 NSRect frame = NSMakeRect(0, 0, 50, 30); 19 scoped_nsobject<TabView> view([[TabView alloc] initWithFrame:frame]); 20 view_ = view.get(); 21 [[test_window() contentView] addSubview:view_]; 22 } 23 24 TabView* view_; 25}; 26 27TEST_VIEW(TabViewTest, view_) 28 29// Test drawing, mostly to ensure nothing leaks or crashes. 30TEST_F(TabViewTest, Display) { 31 for (int i = 0; i < 5; i++) { 32 for (int j = 0; j < 5; j++) { 33 [view_ setHoverAlpha:i*0.2]; 34 [view_ setAlertAlpha:j*0.2]; 35 [view_ display]; 36 } 37 } 38} 39 40// Test it doesn't crash when asked for its menu with no TabController set. 41TEST_F(TabViewTest, Menu) { 42 EXPECT_FALSE([view_ menu]); 43} 44 45TEST_F(TabViewTest, Glow) { 46 // TODO(viettrungluu): Figure out how to test this, which is timing-sensitive 47 // and which moreover uses |-performSelector:withObject:afterDelay:|. 48 49 // Call |-startAlert|/|-cancelAlert| and make sure it doesn't crash. 50 for (int i = 0; i < 5; i++) { 51 [view_ startAlert]; 52 [view_ cancelAlert]; 53 } 54 [view_ startAlert]; 55 [view_ startAlert]; 56 [view_ cancelAlert]; 57 [view_ cancelAlert]; 58} 59 60} // namespace 61