| 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 71f84c4b3d1de0b668d6c051d9d09a6c77f5b9fb..757bcfbec7c1783eafea8ec1720c5f6ae3bb355b 100644
|
| --- a/chrome/browser/ui/cocoa/web_intent_sheet_controller_unittest.mm
|
| +++ b/chrome/browser/ui/cocoa/web_intent_sheet_controller_unittest.mm
|
| @@ -2,53 +2,35 @@
|
| // 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 SetUp() {
|
| + CocoaTest::SetUp();
|
| + controller_ = [[WebIntentPickerSheetController alloc] initWithPicker:nil];
|
| + window_ = [controller_ window];
|
| }
|
|
|
| virtual void TearDown() {
|
| - if (picker_.get()) {
|
| - EXPECT_CALL(delegate_, OnCancelled());
|
| - EXPECT_CALL(delegate_, OnClosing());
|
| + // Since we're not actually running the sheet, we must manually release.
|
| + [controller_ release];
|
|
|
| - [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;
|
| + CocoaTest::TearDown();
|
| }
|
|
|
| // 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.
|
| @@ -59,15 +41,15 @@ class WebIntentPickerSheetControllerTest
|
|
|
| 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 +65,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);
|
| }
|
| @@ -104,18 +86,17 @@ class WebIntentPickerSheetControllerTest
|
| EXPECT_TRUE([button stringValue]);
|
| }
|
|
|
| - content::TestBrowserThread ui_thread_;
|
| -};
|
| + // Controller under test.
|
| + WebIntentPickerSheetController* controller_;
|
|
|
| -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 +105,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);
|
|
|