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); |