| // Copyright (c) 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 "chrome/browser/ui/cocoa/autofill/down_arrow_popup_menu_cell.h" |
| |
| #import <Cocoa/Cocoa.h> |
| |
| #include "base/mac/scoped_nsobject.h" |
| #include "chrome/browser/ui/cocoa/autofill/autofill_dialog_constants.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "testing/platform_test.h" |
| #import "ui/base/test/ui_cocoa_test_helper.h" |
| |
| namespace { |
| |
| class DownArrowPopupMenuCellTest : public ui::CocoaTest { |
| public: |
| DownArrowPopupMenuCellTest() { |
| NSRect frame = NSMakeRect(0, 0, 50, 30); |
| view_.reset([[NSButton alloc] initWithFrame:frame]); |
| base::scoped_nsobject<DownArrowPopupMenuCell> cell( |
| [[DownArrowPopupMenuCell alloc] initTextCell:@"Testing"]); |
| [view_ setCell:cell.get()]; |
| [[test_window() contentView] addSubview:view_]; } |
| |
| protected: |
| base::scoped_nsobject<NSButton> view_; |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(DownArrowPopupMenuCellTest); |
| }; |
| |
| TEST_VIEW(DownArrowPopupMenuCellTest, view_) |
| |
| } // namespace |
| |
| // Make internal messages visible for testing |
| @interface DownArrowPopupMenuCell (Testing) |
| |
| - (NSSize)cellSize; |
| - (NSSize)imageSize; |
| |
| @end |
| |
| // Test size computations, make sure they deliver correct results. |
| TEST_F(DownArrowPopupMenuCellTest, Defaults) { |
| DownArrowPopupMenuCell* cell = |
| static_cast<DownArrowPopupMenuCell*>([view_ cell]); |
| ASSERT_TRUE([cell isKindOfClass:[DownArrowPopupMenuCell class]]); |
| |
| NSRect rect = NSMakeRect(0, 0, 11, 17); |
| base::scoped_nsobject<NSImage> image( |
| [[NSImage alloc] initWithSize:rect.size]); |
| [cell setImage:image forButtonState:image_button_cell::kDefaultState]; |
| [view_ setTitle:@"Testing"]; |
| |
| EXPECT_EQ(NSWidth(rect), [cell imageSize].width); |
| EXPECT_EQ(NSHeight(rect), [cell imageSize].height); |
| |
| NSAttributedString* title = [cell attributedTitle]; |
| NSSize titleSize = [title size]; |
| EXPECT_EQ(titleSize.width + [image size].width + autofill::kButtonGap, |
| [cell cellSize].width); |
| EXPECT_EQ(std::max(titleSize.height, [image size].height), |
| [cell cellSize].height); |
| } |