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