Chromium Code Reviews| Index: chrome/browser/ui/cocoa/web_intent_sheet_controller_unittest.mm |
| diff --git a/chrome/browser/ui/cocoa/web_intent_sheet_controller_unittest.mm b/chrome/browser/ui/cocoa/web_intent_sheet_controller_unittest.mm |
| index 2df88c7e6741d4d0d40d4afecf8d3cc929f6bf14..e814c707f1d473c42f17eef25204adbbeb095449 100644 |
| --- a/chrome/browser/ui/cocoa/web_intent_sheet_controller_unittest.mm |
| +++ b/chrome/browser/ui/cocoa/web_intent_sheet_controller_unittest.mm |
| @@ -2,72 +2,47 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "base/basictypes.h" |
| -#include "base/message_loop.h" |
| +#import "chrome/browser/ui/cocoa/web_intent_sheet_controller.h" |
| + |
| +#include "base/memory/scoped_nsobject.h" |
| #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
| #import "chrome/browser/ui/cocoa/hover_close_button.h" |
| #import "chrome/browser/ui/cocoa/hyperlink_button_cell.h" |
| -#import "chrome/browser/ui/cocoa/info_bubble_window.h" |
| -#import "chrome/browser/ui/cocoa/web_intent_sheet_controller.h" |
| -#include "chrome/browser/ui/cocoa/web_intent_picker_cocoa.h" |
| -#include "chrome/browser/ui/cocoa/web_intent_picker_test_base.h" |
| -#include "chrome/browser/ui/intents/web_intent_picker_delegate.h" |
| -#include "chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h" |
| +#include "chrome/browser/ui/intents/web_intent_picker_model.h" |
| #include "content/test/test_browser_thread.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| +#include "testing/platform_test.h" |
| -class WebIntentPickerSheetControllerTest |
| - : public TabContentsWrapperTestHarness, |
| - public WebIntentPickerTestBase { |
| +class WebIntentPickerSheetControllerTest : public CocoaTest { |
| public: |
| - WebIntentPickerSheetControllerTest() |
| - : ui_thread_(content::BrowserThread::UI, MessageLoopForUI::current()) {} |
| - |
| - virtual ~WebIntentPickerSheetControllerTest() { |
| - message_loop_.RunAllPending(); |
| - } |
| - |
| - virtual void TearDown() { |
| - if (picker_.get()) { |
| - EXPECT_CALL(delegate_, OnCancelled()); |
| - EXPECT_CALL(delegate_, OnClosing()); |
| - |
| - [controller_ cancelOperation:controller_]; |
| - // Closing |controller_| destroys |picker_|. |
| - ignore_result(picker_.release()); |
| - } |
| - TabContentsWrapperTestHarness::TearDown(); |
| - } |
| - void CreatePicker() { |
| - picker_.reset(new WebIntentPickerCocoa()); |
| - picker_->delegate_ = &delegate_; |
| - picker_->model_ = &model_; |
| - window_ = nil; |
| - controller_ = nil; |
| + virtual void SetUp() { |
|
Robert Sesek
2012/04/17 23:15:39
CocoaTest::SetUp()
groby-ooo-7-16
2012/04/25 23:19:16
Done.
|
| + controller_.reset( |
| + [[WebIntentPickerSheetController alloc] initWithPicker:nil]); |
| + window_ = [controller_ window]; |
| } |
| // Checks the controller's window for the requisite subviews and icons. |
| - void CheckWindow(size_t icon_count) { |
| + void CheckWindow(size_t row_count) { |
| NSArray* flip_views = [[window_ contentView] subviews]; |
| // Check for proper firstResponder. |
| - ASSERT_EQ(controller_, [window_ firstResponder]); |
| + ASSERT_EQ(controller_.get(), [window_ firstResponder]); |
| // Expect 1 subview - the flip view. |
| ASSERT_EQ(1U, [flip_views count]); |
| NSArray* views = [[flip_views objectAtIndex:0] subviews]; |
| - // 4 + |icon_count| subviews - icon, header text, close button, |
| - // |icon_count| buttons, and a CWS link. |
| - ASSERT_EQ(4U + icon_count, [views count]); |
| + // 4 + |row_count| subviews - icon, header text, close button, |
| + // |row_count| buttons, and a CWS link. |
| + ASSERT_EQ(4U + row_count, [views count]); |
| ASSERT_TRUE([[views objectAtIndex:0] isKindOfClass:[NSTextField class]]); |
| ASSERT_TRUE([[views objectAtIndex:1] isKindOfClass:[NSImageView class]]); |
| ASSERT_TRUE([[views objectAtIndex:2] isKindOfClass: |
| [HoverCloseButton class]]); |
| - for(NSUInteger i = 0; i < icon_count; ++i) { |
| + for(NSUInteger i = 0; i < row_count; ++i) { |
| ASSERT_TRUE([[views objectAtIndex:3 + i] isKindOfClass: |
| [NSButton class]]); |
| } |
| @@ -83,7 +58,7 @@ class WebIntentPickerSheetControllerTest |
| CheckButton(button, @selector(showChromeWebStore:)); |
| // Verify buttons pointing to services. |
| - for(NSUInteger i = 0; i < icon_count; ++i) { |
| + for(NSUInteger i = 0; i < row_count; ++i) { |
| NSButton* button = [views objectAtIndex:3 + i]; |
| CheckServiceButton(button, i); |
| } |
| @@ -100,22 +75,21 @@ class WebIntentPickerSheetControllerTest |
| EXPECT_TRUE([button isKindOfClass:[NSButton class]] || |
| [button isKindOfClass:[NSButtonCell class]]); |
| EXPECT_EQ(action, [button action]); |
| - EXPECT_EQ(controller_, [button target]); |
| + EXPECT_EQ(controller_.get(), [button target]); |
| EXPECT_TRUE([button stringValue]); |
| } |
| - content::TestBrowserThread ui_thread_; |
| -}; |
| + // Controller under test. |
| + scoped_nsobject<WebIntentPickerSheetController> controller_; |
|
Robert Sesek
2012/04/17 23:15:39
This doesn't own itself?
groby-ooo-7-16
2012/04/25 23:19:16
Usually, it does. But releasing requires properly
|
| -TEST_F(WebIntentPickerSheetControllerTest, EmptyBubble) { |
| - CreateBubble(contents_wrapper()); |
| + NSWindow* window_; // Weak, owned by |controller_|. |
| +}; |
| - CheckWindow(/*icon_count=*/0); |
| +TEST_F(WebIntentPickerSheetControllerTest, NoRows) { |
| + CheckWindow(/*row_count=*/0); |
| } |
| -TEST_F(WebIntentPickerSheetControllerTest, PopulatedBubble) { |
| - CreateBubble(contents_wrapper()); |
| - |
| +TEST_F(WebIntentPickerSheetControllerTest, PopulatedRows) { |
| WebIntentPickerModel model; |
| model.AddInstalledService(string16(), GURL(), |
| WebIntentPickerModel::DISPOSITION_WINDOW); |
| @@ -124,22 +98,10 @@ TEST_F(WebIntentPickerSheetControllerTest, PopulatedBubble) { |
| [controller_ performLayoutWithModel:&model]; |
| - CheckWindow(/*icon_count=*/2); |
| -} |
| - |
| -TEST_F(WebIntentPickerSheetControllerTest, OnCancelledWillSignalClose) { |
| - CreatePicker(); |
| - |
| - EXPECT_CALL(delegate_, OnCancelled()); |
| - EXPECT_CALL(delegate_, OnClosing()); |
| - picker_->OnCancelled(); |
| - |
| - ignore_result(picker_.release()); // Closing |picker_| will destruct it. |
| + CheckWindow(/*row_count=*/2); |
| } |
| TEST_F(WebIntentPickerSheetControllerTest, SuggestionView) { |
| - CreateBubble(contents_wrapper()); |
| - |
| WebIntentPickerModel model; |
| model.AddSuggestedExtension(string16(), string16(), 2.5); |