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..bcfc363c55ac815962f5ce2a06ebe5f370159541 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,61 @@ |
// 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" |
Robert Sesek
2012/04/30 23:54:30
nit: already #included
groby-ooo-7-16
2012/05/01 02:57:32
Done.
|
+ |
+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_METHOD1(OnExtensionLinkClicked, void(const std::string& id)); |
+ MOCK_METHOD0(OnSuggestionsLinkClicked, void ()); |
+ MOCK_METHOD0(OnCancelled, void()); |
+ MOCK_METHOD0(OnClosing, void()); |
+}; |
-class WebIntentSheetControllerBrowserTest : public InProcessBrowserTest, |
- public WebIntentPickerTestBase { |
+class WebIntentSheetControllerBrowserTest : public InProcessBrowserTest { |
+ public: |
+ void CreateBubble(TabContentsWrapper* wrapper); |
+ 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 +86,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. |
+} |