OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
6 | 6 |
7 #include "base/scoped_nsobject.h" | 7 #include "base/scoped_nsobject.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "base/sys_string_conversions.h" | 9 #include "base/sys_string_conversions.h" |
10 #include "chrome/browser/tab_contents/infobar_delegate.h" | 10 #include "chrome/browser/tab_contents/infobar_delegate.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 DCHECK(controller_ == controller); | 58 DCHECK(controller_ == controller); |
59 controller_ = nil; | 59 controller_ = nil; |
60 } | 60 } |
61 @end | 61 @end |
62 | 62 |
63 namespace { | 63 namespace { |
64 | 64 |
65 /////////////////////////////////////////////////////////////////////////// | 65 /////////////////////////////////////////////////////////////////////////// |
66 // Test fixtures | 66 // Test fixtures |
67 | 67 |
68 class AlertInfoBarControllerTest : public CocoaTest { | |
69 public: | |
70 virtual void SetUp() { | |
71 CocoaTest::SetUp(); | |
72 | |
73 controller_.reset( | |
74 [[AlertInfoBarController alloc] initWithDelegate:&delegate_]); | |
75 container_.reset( | |
76 [[InfoBarContainerTest alloc] initWithController:controller_]); | |
77 [controller_ setContainerController:container_]; | |
78 [[test_window() contentView] addSubview:[controller_ view]]; | |
79 } | |
80 | |
81 protected: | |
82 MockAlertInfoBarDelegate delegate_; | |
83 scoped_nsobject<id> container_; | |
84 scoped_nsobject<AlertInfoBarController> controller_; | |
85 }; | |
86 | |
87 class LinkInfoBarControllerTest : public CocoaTest { | 68 class LinkInfoBarControllerTest : public CocoaTest { |
88 public: | 69 public: |
89 virtual void SetUp() { | 70 virtual void SetUp() { |
90 CocoaTest::SetUp(); | 71 CocoaTest::SetUp(); |
91 | 72 |
92 controller_.reset( | 73 controller_.reset( |
93 [[LinkInfoBarController alloc] initWithDelegate:&delegate_]); | 74 [[LinkInfoBarController alloc] initWithDelegate:&delegate_]); |
94 container_.reset( | 75 container_.reset( |
95 [[InfoBarContainerTest alloc] initWithController:controller_]); | 76 [[InfoBarContainerTest alloc] initWithController:controller_]); |
96 [controller_ setContainerController:container_]; | 77 [controller_ setContainerController:container_]; |
(...skipping 22 matching lines...) Expand all Loading... |
119 protected: | 100 protected: |
120 MockConfirmInfoBarDelegate delegate_; | 101 MockConfirmInfoBarDelegate delegate_; |
121 scoped_nsobject<id> container_; | 102 scoped_nsobject<id> container_; |
122 scoped_nsobject<ConfirmInfoBarController> controller_; | 103 scoped_nsobject<ConfirmInfoBarController> controller_; |
123 }; | 104 }; |
124 | 105 |
125 | 106 |
126 //////////////////////////////////////////////////////////////////////////// | 107 //////////////////////////////////////////////////////////////////////////// |
127 // Tests | 108 // Tests |
128 | 109 |
129 TEST_VIEW(AlertInfoBarControllerTest, [controller_ view]); | |
130 | |
131 TEST_F(AlertInfoBarControllerTest, ShowAndDismiss) { | |
132 // Make sure someone looked at the message and icon. | |
133 EXPECT_TRUE(delegate_.message_text_accessed()); | |
134 EXPECT_TRUE(delegate_.icon_accessed()); | |
135 | |
136 // Check to make sure the infobar message was set properly. | |
137 EXPECT_EQ(MockAlertInfoBarDelegate::kMessage, | |
138 base::SysNSStringToUTF8([controller_.get() labelString])); | |
139 | |
140 // Check that dismissing the infobar calls InfoBarClosed() on the delegate. | |
141 [controller_ dismiss:nil]; | |
142 EXPECT_TRUE(delegate_.closed()); | |
143 } | |
144 | |
145 TEST_F(AlertInfoBarControllerTest, DeallocController) { | |
146 // Test that dealloc'ing the controller does not send an | |
147 // InfoBarClosed() message to the delegate. | |
148 controller_.reset(nil); | |
149 EXPECT_FALSE(delegate_.closed()); | |
150 } | |
151 | |
152 TEST_F(AlertInfoBarControllerTest, ResizeView) { | |
153 NSRect originalLabelFrame = [controller_ labelFrame]; | |
154 | |
155 // Expand the view by 20 pixels and make sure the label frame changes | |
156 // accordingly. | |
157 const CGFloat width = 20; | |
158 NSRect newViewFrame = [[controller_ view] frame]; | |
159 newViewFrame.size.width += width; | |
160 [[controller_ view] setFrame:newViewFrame]; | |
161 | |
162 NSRect newLabelFrame = [controller_ labelFrame]; | |
163 EXPECT_EQ(NSWidth(newLabelFrame), NSWidth(originalLabelFrame) + width); | |
164 } | |
165 | |
166 TEST_VIEW(LinkInfoBarControllerTest, [controller_ view]); | 110 TEST_VIEW(LinkInfoBarControllerTest, [controller_ view]); |
167 | 111 |
168 TEST_F(LinkInfoBarControllerTest, ShowAndDismiss) { | 112 TEST_F(LinkInfoBarControllerTest, ShowAndDismiss) { |
169 // Make sure someone looked at the message, link, and icon. | 113 // Make sure someone looked at the message, link, and icon. |
170 EXPECT_TRUE(delegate_.message_text_accessed()); | 114 EXPECT_TRUE(delegate_.message_text_accessed()); |
171 EXPECT_TRUE(delegate_.link_text_accessed()); | 115 EXPECT_TRUE(delegate_.link_text_accessed()); |
172 EXPECT_TRUE(delegate_.icon_accessed()); | 116 EXPECT_TRUE(delegate_.icon_accessed()); |
173 | 117 |
174 // Check that dismissing the infobar calls InfoBarClosed() on the delegate. | 118 // Check that dismissing the infobar calls InfoBarClosed() on the delegate. |
175 [controller_ dismiss:nil]; | 119 [controller_ dismiss:nil]; |
(...skipping 12 matching lines...) Expand all Loading... |
188 TEST_F(LinkInfoBarControllerTest, ShowAndClickLinkWithoutClosing) { | 132 TEST_F(LinkInfoBarControllerTest, ShowAndClickLinkWithoutClosing) { |
189 delegate_.set_dont_close_on_action(); | 133 delegate_.set_dont_close_on_action(); |
190 | 134 |
191 // Check that clicking on the link calls LinkClicked() on the | 135 // Check that clicking on the link calls LinkClicked() on the |
192 // delegate. It should not close the infobar. | 136 // delegate. It should not close the infobar. |
193 [controller_ linkClicked]; | 137 [controller_ linkClicked]; |
194 EXPECT_TRUE(delegate_.link_clicked()); | 138 EXPECT_TRUE(delegate_.link_clicked()); |
195 EXPECT_FALSE(delegate_.closed()); | 139 EXPECT_FALSE(delegate_.closed()); |
196 } | 140 } |
197 | 141 |
| 142 TEST_F(LinkInfoBarControllerTest, DeallocController) { |
| 143 // Test that dealloc'ing the controller does not send an |
| 144 // InfoBarClosed() message to the delegate. |
| 145 controller_.reset(nil); |
| 146 EXPECT_FALSE(delegate_.closed()); |
| 147 } |
| 148 |
198 TEST_VIEW(ConfirmInfoBarControllerTest, [controller_ view]); | 149 TEST_VIEW(ConfirmInfoBarControllerTest, [controller_ view]); |
199 | 150 |
200 TEST_F(ConfirmInfoBarControllerTest, ShowAndDismiss) { | 151 TEST_F(ConfirmInfoBarControllerTest, ShowAndDismiss) { |
201 // Make sure someone looked at the message, link, and icon. | 152 // Make sure someone looked at the message, link, and icon. |
202 EXPECT_TRUE(delegate_.message_text_accessed()); | 153 EXPECT_TRUE(delegate_.message_text_accessed()); |
203 EXPECT_TRUE(delegate_.link_text_accessed()); | 154 EXPECT_TRUE(delegate_.link_text_accessed()); |
204 EXPECT_TRUE(delegate_.icon_accessed()); | 155 EXPECT_TRUE(delegate_.icon_accessed()); |
205 | 156 |
206 // Check to make sure the infobar message was set properly. | 157 // Check to make sure the infobar message was set properly. |
207 EXPECT_EQ(MockConfirmInfoBarDelegate::kMessage, | 158 EXPECT_EQ(MockConfirmInfoBarDelegate::kMessage, |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 | 225 |
275 // Check that clicking on the link calls LinkClicked() on the | 226 // Check that clicking on the link calls LinkClicked() on the |
276 // delegate. It should not close the infobar. | 227 // delegate. It should not close the infobar. |
277 [controller_ linkClicked]; | 228 [controller_ linkClicked]; |
278 EXPECT_FALSE(delegate_.ok_clicked()); | 229 EXPECT_FALSE(delegate_.ok_clicked()); |
279 EXPECT_FALSE(delegate_.cancel_clicked()); | 230 EXPECT_FALSE(delegate_.cancel_clicked()); |
280 EXPECT_TRUE(delegate_.link_clicked()); | 231 EXPECT_TRUE(delegate_.link_clicked()); |
281 EXPECT_FALSE(delegate_.closed()); | 232 EXPECT_FALSE(delegate_.closed()); |
282 } | 233 } |
283 | 234 |
| 235 TEST_F(ConfirmInfoBarControllerTest, ResizeView) { |
| 236 NSRect originalLabelFrame = [controller_ labelFrame]; |
| 237 |
| 238 // Expand the view by 20 pixels and make sure the label frame changes |
| 239 // accordingly. |
| 240 const CGFloat width = 20; |
| 241 NSRect newViewFrame = [[controller_ view] frame]; |
| 242 newViewFrame.size.width += width; |
| 243 [[controller_ view] setFrame:newViewFrame]; |
| 244 |
| 245 NSRect newLabelFrame = [controller_ labelFrame]; |
| 246 EXPECT_EQ(NSWidth(newLabelFrame), NSWidth(originalLabelFrame) + width); |
| 247 } |
| 248 |
284 } // namespace | 249 } // namespace |
OLD | NEW |