- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / location_bar / ev_bubble_decoration_unittest.mm
1 // Copyright (c) 2010 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 #import "chrome/browser/ui/cocoa/location_bar/ev_bubble_decoration.h"
8
9 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace {
13
14 class EVBubbleDecorationTest : public CocoaTest {
15  public:
16   EVBubbleDecorationTest() : decoration_(NULL) {
17   }
18
19   EVBubbleDecoration decoration_;
20 };
21
22 // Test that the decoration gets smaller when there's not enough space
23 // to fit, within bounds.
24 TEST_F(EVBubbleDecorationTest, MiddleElide) {
25   NSString* kLongString = @"A very long string with spaces";
26   const CGFloat kWide = 1000.0;  // Wide enough to fit everything.
27   const CGFloat kNarrow = 10.0;  // Too narrow for anything.
28   const CGFloat kMinimumWidth = 100.0;  // Never should get this small.
29
30   const NSSize kImageSize = NSMakeSize(20.0, 20.0);
31   base::scoped_nsobject<NSImage> image(
32       [[NSImage alloc] initWithSize:kImageSize]);
33
34   decoration_.SetImage(image);
35   decoration_.SetFullLabel(kLongString);
36
37   // Lots of space, decoration not omitted.
38   EXPECT_NE(decoration_.GetWidthForSpace(kWide),
39             LocationBarDecoration::kOmittedWidth);
40
41   // If the available space is of the same magnitude as the required
42   // space, the decoration doesn't eat it all up.
43   const CGFloat long_width = decoration_.GetWidthForSpace(kWide);
44   EXPECT_NE(decoration_.GetWidthForSpace(long_width + 20.0),
45             LocationBarDecoration::kOmittedWidth);
46   EXPECT_LT(decoration_.GetWidthForSpace(long_width + 20.0), long_width);
47
48   // If there is very little space, the decoration is still relatively
49   // big.
50   EXPECT_NE(decoration_.GetWidthForSpace(kNarrow),
51             LocationBarDecoration::kOmittedWidth);
52   EXPECT_GT(decoration_.GetWidthForSpace(kNarrow), kMinimumWidth);
53 }
54
55 }  // namespace