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/clickhold_button_cell.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 13namespace { 14 15class ClickHoldButtonCellTest : public CocoaTest { 16 public: 17 ClickHoldButtonCellTest() { 18 NSRect frame = NSMakeRect(0, 0, 50, 30); 19 scoped_nsobject<NSButton> view([[NSButton alloc] initWithFrame:frame]); 20 view_ = view.get(); 21 scoped_nsobject<ClickHoldButtonCell> cell( 22 [[ClickHoldButtonCell alloc] initTextCell:@"Testing"]); 23 [view_ setCell:cell.get()]; 24 [[test_window() contentView] addSubview:view_]; 25 } 26 27 NSButton* view_; 28}; 29 30TEST_VIEW(ClickHoldButtonCellTest, view_) 31 32// Test default values; make sure they are what they should be. 33TEST_F(ClickHoldButtonCellTest, Defaults) { 34 ClickHoldButtonCell* cell = static_cast<ClickHoldButtonCell*>([view_ cell]); 35 ASSERT_TRUE([cell isKindOfClass:[ClickHoldButtonCell class]]); 36 37 EXPECT_FALSE([cell enableClickHold]); 38 39 NSTimeInterval clickHoldTimeout = [cell clickHoldTimeout]; 40 EXPECT_GE(clickHoldTimeout, 0.15); // Check for a "Cocoa-ish" value. 41 EXPECT_LE(clickHoldTimeout, 0.35); 42 43 EXPECT_FALSE([cell trackOnlyInRect]); 44 EXPECT_TRUE([cell activateOnDrag]); 45} 46 47// TODO(viettrungluu): (1) Enable click-hold and figure out how to test the 48// tracking loop (i.e., |-trackMouse:...|), which is the nontrivial part. 49// (2) Test various initialization code paths (in particular, loading from nib). 50 51} // namespace 52