| 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/memory/scoped_nsobject.h" | 7 #include "base/memory/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/confirm_infobar_delegate.h" | 10 #include "chrome/browser/tab_contents/confirm_infobar_delegate.h" |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 [self close]; | 83 [self close]; |
| 84 } | 84 } |
| 85 @end | 85 @end |
| 86 | 86 |
| 87 namespace { | 87 namespace { |
| 88 | 88 |
| 89 /////////////////////////////////////////////////////////////////////////// | 89 /////////////////////////////////////////////////////////////////////////// |
| 90 // Test fixtures | 90 // Test fixtures |
| 91 | 91 |
| 92 class LinkInfoBarControllerTest : public CocoaTest, | 92 class LinkInfoBarControllerTest : public CocoaTest, |
| 93 public TabContentsWrapperTestHarness, |
| 93 public MockLinkInfoBarDelegate::Owner { | 94 public MockLinkInfoBarDelegate::Owner { |
| 94 public: | 95 public: |
| 96 LinkInfoBarControllerTest() { |
| 97 contents_wrapper()->infobar_tab_helper()->set_infobars_enabled(false); |
| 98 } |
| 95 virtual void SetUp() { | 99 virtual void SetUp() { |
| 96 CocoaTest::SetUp(); | 100 CocoaTest::SetUp(); |
| 97 | 101 |
| 98 delegate_ = new MockLinkInfoBarDelegate(this); | 102 delegate_ = new MockLinkInfoBarDelegate(this); |
| 99 controller_.reset( | 103 controller_.reset([[TestLinkInfoBarController alloc] |
| 100 [[TestLinkInfoBarController alloc] initWithDelegate:delegate_ | 104 initWithDelegate:delegate_ |
| 101 owner:NULL]); | 105 owner:contents_wrapper()]); |
| 102 container_.reset( | 106 container_.reset( |
| 103 [[InfoBarContainerTest alloc] initWithController:controller_]); | 107 [[InfoBarContainerTest alloc] initWithController:controller_]); |
| 104 [controller_ setContainerController:container_]; | 108 [controller_ setContainerController:container_]; |
| 105 [[test_window() contentView] addSubview:[controller_ view]]; | 109 [[test_window() contentView] addSubview:[controller_ view]]; |
| 106 closed_delegate_link_clicked_ = false; | 110 closed_delegate_link_clicked_ = false; |
| 107 } | 111 } |
| 108 | 112 |
| 109 virtual void TearDown() { | 113 virtual void TearDown() { |
| 110 if (delegate_) | 114 if (delegate_) |
| 111 delete delegate_; | 115 delete delegate_; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 122 bool closed_delegate_link_clicked_; | 126 bool closed_delegate_link_clicked_; |
| 123 | 127 |
| 124 private: | 128 private: |
| 125 virtual void OnInfoBarDelegateClosed() { | 129 virtual void OnInfoBarDelegateClosed() { |
| 126 closed_delegate_link_clicked_ = delegate_->link_clicked(); | 130 closed_delegate_link_clicked_ = delegate_->link_clicked(); |
| 127 delegate_ = NULL; | 131 delegate_ = NULL; |
| 128 } | 132 } |
| 129 }; | 133 }; |
| 130 | 134 |
| 131 class ConfirmInfoBarControllerTest : public CocoaTest, | 135 class ConfirmInfoBarControllerTest : public CocoaTest, |
| 136 public TabContentsWrapperTestHarness, |
| 132 public MockConfirmInfoBarDelegate::Owner { | 137 public MockConfirmInfoBarDelegate::Owner { |
| 133 public: | 138 public: |
| 139 ConfirmInfoBarControllerTest() { |
| 140 contents_wrapper()->infobar_tab_helper()->set_infobars_enabled(false); |
| 141 } |
| 134 virtual void SetUp() { | 142 virtual void SetUp() { |
| 135 CocoaTest::SetUp(); | 143 CocoaTest::SetUp(); |
| 136 | 144 |
| 137 delegate_ = new MockConfirmInfoBarDelegate(this); | 145 delegate_ = new MockConfirmInfoBarDelegate(this); |
| 138 controller_.reset( | 146 controller_.reset([[TestConfirmInfoBarController alloc] |
| 139 [[TestConfirmInfoBarController alloc] initWithDelegate:delegate_ | 147 initWithDelegate:delegate_ |
| 140 owner:NULL]); | 148 owner:contents_wrapper()]); |
| 141 container_.reset( | 149 container_.reset( |
| 142 [[InfoBarContainerTest alloc] initWithController:controller_]); | 150 [[InfoBarContainerTest alloc] initWithController:controller_]); |
| 143 [controller_ setContainerController:container_]; | 151 [controller_ setContainerController:container_]; |
| 144 [[test_window() contentView] addSubview:[controller_ view]]; | 152 [[test_window() contentView] addSubview:[controller_ view]]; |
| 145 closed_delegate_ok_clicked_ = false; | 153 closed_delegate_ok_clicked_ = false; |
| 146 closed_delegate_cancel_clicked_ = false; | 154 closed_delegate_cancel_clicked_ = false; |
| 147 closed_delegate_link_clicked_ = false; | 155 closed_delegate_link_clicked_ = false; |
| 148 } | 156 } |
| 149 | 157 |
| 150 virtual void TearDown() { | 158 virtual void TearDown() { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 179 | 187 |
| 180 TEST_VIEW(LinkInfoBarControllerTest, [controller_ view]); | 188 TEST_VIEW(LinkInfoBarControllerTest, [controller_ view]); |
| 181 | 189 |
| 182 TEST_F(LinkInfoBarControllerTest, ShowAndDismiss) { | 190 TEST_F(LinkInfoBarControllerTest, ShowAndDismiss) { |
| 183 // Make sure someone looked at the message, link, and icon. | 191 // Make sure someone looked at the message, link, and icon. |
| 184 EXPECT_TRUE(delegate_->message_text_accessed()); | 192 EXPECT_TRUE(delegate_->message_text_accessed()); |
| 185 EXPECT_TRUE(delegate_->link_text_accessed()); | 193 EXPECT_TRUE(delegate_->link_text_accessed()); |
| 186 EXPECT_TRUE(delegate_->icon_accessed()); | 194 EXPECT_TRUE(delegate_->icon_accessed()); |
| 187 | 195 |
| 188 // Check that dismissing the infobar deletes the delegate. | 196 // Check that dismissing the infobar deletes the delegate. |
| 189 [controller_ dismiss:nil]; | 197 [controller_ removeSelf]; |
| 190 ASSERT_TRUE(delegate_closed()); | 198 ASSERT_TRUE(delegate_closed()); |
| 191 EXPECT_FALSE(closed_delegate_link_clicked_); | 199 EXPECT_FALSE(closed_delegate_link_clicked_); |
| 192 } | 200 } |
| 193 | 201 |
| 194 TEST_F(LinkInfoBarControllerTest, ShowAndClickLink) { | 202 TEST_F(LinkInfoBarControllerTest, ShowAndClickLink) { |
| 195 // Check that clicking on the link calls LinkClicked() on the | 203 // Check that clicking on the link calls LinkClicked() on the |
| 196 // delegate. It should also close the infobar. | 204 // delegate. It should also close the infobar. |
| 197 [controller_ linkClicked]; | 205 [controller_ linkClicked]; |
| 198 | 206 |
| 199 // Spin the runloop because the invocation for closing the infobar is done on | 207 // Spin the runloop because the invocation for closing the infobar is done on |
| (...skipping 26 matching lines...) Expand all Loading... |
| 226 // Make sure someone looked at the message, link, and icon. | 234 // Make sure someone looked at the message, link, and icon. |
| 227 EXPECT_TRUE(delegate_->message_text_accessed()); | 235 EXPECT_TRUE(delegate_->message_text_accessed()); |
| 228 EXPECT_TRUE(delegate_->link_text_accessed()); | 236 EXPECT_TRUE(delegate_->link_text_accessed()); |
| 229 EXPECT_TRUE(delegate_->icon_accessed()); | 237 EXPECT_TRUE(delegate_->icon_accessed()); |
| 230 | 238 |
| 231 // Check to make sure the infobar message was set properly. | 239 // Check to make sure the infobar message was set properly. |
| 232 EXPECT_EQ(MockConfirmInfoBarDelegate::kMessage, | 240 EXPECT_EQ(MockConfirmInfoBarDelegate::kMessage, |
| 233 base::SysNSStringToUTF8([controller_.get() labelString])); | 241 base::SysNSStringToUTF8([controller_.get() labelString])); |
| 234 | 242 |
| 235 // Check that dismissing the infobar deletes the delegate. | 243 // Check that dismissing the infobar deletes the delegate. |
| 236 [controller_ dismiss:nil]; | 244 [controller_ removeSelf]; |
| 237 ASSERT_TRUE(delegate_closed()); | 245 ASSERT_TRUE(delegate_closed()); |
| 238 EXPECT_FALSE(closed_delegate_ok_clicked_); | 246 EXPECT_FALSE(closed_delegate_ok_clicked_); |
| 239 EXPECT_FALSE(closed_delegate_cancel_clicked_); | 247 EXPECT_FALSE(closed_delegate_cancel_clicked_); |
| 240 EXPECT_FALSE(closed_delegate_link_clicked_); | 248 EXPECT_FALSE(closed_delegate_link_clicked_); |
| 241 } | 249 } |
| 242 | 250 |
| 243 TEST_F(ConfirmInfoBarControllerTest, ShowAndClickOK) { | 251 TEST_F(ConfirmInfoBarControllerTest, ShowAndClickOK) { |
| 244 // Check that clicking the OK button calls Accept() and then closes | 252 // Check that clicking the OK button calls Accept() and then closes |
| 245 // the infobar. | 253 // the infobar. |
| 246 [controller_ ok:nil]; | 254 [controller_ ok:nil]; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 const CGFloat width = 20; | 322 const CGFloat width = 20; |
| 315 NSRect newViewFrame = [[controller_ view] frame]; | 323 NSRect newViewFrame = [[controller_ view] frame]; |
| 316 newViewFrame.size.width += width; | 324 newViewFrame.size.width += width; |
| 317 [[controller_ view] setFrame:newViewFrame]; | 325 [[controller_ view] setFrame:newViewFrame]; |
| 318 | 326 |
| 319 NSRect newLabelFrame = [controller_ labelFrame]; | 327 NSRect newLabelFrame = [controller_ labelFrame]; |
| 320 EXPECT_EQ(NSWidth(newLabelFrame), NSWidth(originalLabelFrame) + width); | 328 EXPECT_EQ(NSWidth(newLabelFrame), NSWidth(originalLabelFrame) + width); |
| 321 } | 329 } |
| 322 | 330 |
| 323 } // namespace | 331 } // namespace |
| OLD | NEW |