Chromium Code Reviews| Index: chrome/browser/ui/cocoa/web_intent_sheet_controller_browsertest.mm |
| diff --git a/chrome/browser/ui/cocoa/web_intent_sheet_controller_browsertest.mm b/chrome/browser/ui/cocoa/web_intent_sheet_controller_browsertest.mm |
| index c39e6a3ac296d0565315537e31110346927d4ca2..90df60d4ad26a8d760c60c77501d8a5093ae97e9 100644 |
| --- a/chrome/browser/ui/cocoa/web_intent_sheet_controller_browsertest.mm |
| +++ b/chrome/browser/ui/cocoa/web_intent_sheet_controller_browsertest.mm |
| @@ -2,17 +2,59 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +#include "base/memory/scoped_ptr.h" |
| #include "chrome/test/base/in_process_browser_test.h" |
| #include "chrome/browser/ui/browser.h" |
| -#include "chrome/browser/ui/cocoa/web_intent_picker_test_base.h" |
| #include "chrome/browser/ui/cocoa/web_intent_picker_cocoa.h" |
| +#import "chrome/browser/ui/cocoa/web_intent_sheet_controller.h" |
| +#include "chrome/browser/ui/intents/web_intent_picker_delegate.h" |
| #include "chrome/browser/ui/intents/web_intent_picker_model.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| +#include "testing/gmock/include/gmock/gmock.h" |
| + |
| +class MockIntentPickerDelegate : public WebIntentPickerDelegate { |
| + public: |
| + MockIntentPickerDelegate() {} |
| + virtual ~MockIntentPickerDelegate() {} |
| + |
| + MOCK_METHOD2(OnServiceChosen, void(const GURL& url, Disposition disposition)); |
| + MOCK_METHOD1(OnInlineDispositionWebContentsCreated, |
| + void(content::WebContents* web_contents)); |
| + MOCK_METHOD1(OnExtensionInstallRequested, void(const std::string& id)); |
| + MOCK_METHOD0(OnCancelled, void()); |
| + MOCK_METHOD0(OnClosing, void()); |
| +}; |
| -class WebIntentSheetControllerBrowserTest : public InProcessBrowserTest, |
| - public WebIntentPickerTestBase { |
| +class WebIntentSheetControllerBrowserTest : public InProcessBrowserTest { |
| + public: |
| + void CreateBubble(TabContentsWrapper* wrapper); |
|
Robert Sesek
2012/04/17 23:15:39
nit: indented 1 too many
groby-ooo-7-16
2012/04/25 23:19:16
Done.
|
| + void CreatePicker(); |
| + |
| + WebIntentPickerSheetController* controller_; // Weak, owns self. |
| + NSWindow* window_; // Weak, owned by controller. |
| + scoped_ptr<WebIntentPickerCocoa> picker_; |
| + MockIntentPickerDelegate delegate_; |
| + WebIntentPickerModel model_; // The model used by the picker |
| }; |
| +void WebIntentSheetControllerBrowserTest::CreateBubble( |
| + TabContentsWrapper* wrapper) { |
| + picker_.reset(new WebIntentPickerCocoa(NULL, wrapper, &delegate_, &model_)); |
| + |
| + controller_ = |
| + [[WebIntentPickerSheetController alloc] initWithPicker:picker_.get()]; |
| + window_ = [controller_ window]; |
| + [controller_ showWindow:nil]; |
| +} |
| + |
| +void WebIntentSheetControllerBrowserTest::CreatePicker() { |
| + picker_.reset(new WebIntentPickerCocoa()); |
| + picker_->delegate_ = &delegate_; |
| + picker_->model_ = &model_; |
| + window_ = nil; |
| + controller_ = nil; |
| +} |
| + |
| IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest, CloseWillClose) { |
| CreateBubble(browser()->GetSelectedTabContentsWrapper()); |
| @@ -42,3 +84,12 @@ IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest, |
| ignore_result(picker_.release()); // Closing |picker_| will destruct it. |
| } |
| +IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest, |
| + OnCancelledWillSignalClose) { |
| + CreatePicker(); |
| + EXPECT_CALL(delegate_, OnCancelled()); |
| + EXPECT_CALL(delegate_, OnClosing()); |
| + picker_->OnCancelled(); |
| + |
| + ignore_result(picker_.release()); // Closing |picker_| will destruct it. |
| +} |