Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(476)

Side by Side Diff: chrome/browser/ui/cocoa/web_intent_sheet_controller_browsertest.mm

Issue 10048005: Convert OSX intent picker unit tests to PlatformTests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to HEAD, fix nit. Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/scoped_ptr.h"
5 #include "chrome/test/base/in_process_browser_test.h" 6 #include "chrome/test/base/in_process_browser_test.h"
6 #include "chrome/browser/ui/browser.h" 7 #include "chrome/browser/ui/browser.h"
7 #include "chrome/browser/ui/cocoa/web_intent_picker_test_base.h"
8 #include "chrome/browser/ui/cocoa/web_intent_picker_cocoa.h" 8 #include "chrome/browser/ui/cocoa/web_intent_picker_cocoa.h"
9 #import "chrome/browser/ui/cocoa/web_intent_sheet_controller.h"
10 #include "chrome/browser/ui/intents/web_intent_picker_delegate.h"
9 #include "chrome/browser/ui/intents/web_intent_picker_model.h" 11 #include "chrome/browser/ui/intents/web_intent_picker_model.h"
10 #include "testing/gmock/include/gmock/gmock.h" 12 #include "testing/gmock/include/gmock/gmock.h"
11 13
12 class WebIntentSheetControllerBrowserTest : public InProcessBrowserTest, 14 class MockIntentPickerDelegate : public WebIntentPickerDelegate {
13 public WebIntentPickerTestBase { 15 public:
16 MockIntentPickerDelegate() {}
17 virtual ~MockIntentPickerDelegate() {}
18
19 MOCK_METHOD2(OnServiceChosen, void(const GURL& url, Disposition disposition));
20 MOCK_METHOD1(OnInlineDispositionWebContentsCreated,
21 void(content::WebContents* web_contents));
22 MOCK_METHOD1(OnExtensionInstallRequested, void(const std::string& id));
23 MOCK_METHOD1(OnExtensionLinkClicked, void(const std::string& id));
24 MOCK_METHOD0(OnSuggestionsLinkClicked, void ());
25 MOCK_METHOD0(OnCancelled, void());
26 MOCK_METHOD0(OnClosing, void());
14 }; 27 };
15 28
29 class WebIntentSheetControllerBrowserTest : public InProcessBrowserTest {
30 public:
31 void CreateBubble(TabContentsWrapper* wrapper);
32 void CreatePicker();
33
34 WebIntentPickerSheetController* controller_; // Weak, owns self.
35 NSWindow* window_; // Weak, owned by controller.
36 scoped_ptr<WebIntentPickerCocoa> picker_;
37 MockIntentPickerDelegate delegate_;
38 WebIntentPickerModel model_; // The model used by the picker
39 };
40
41 void WebIntentSheetControllerBrowserTest::CreateBubble(
42 TabContentsWrapper* wrapper) {
43 picker_.reset(new WebIntentPickerCocoa(NULL, wrapper, &delegate_, &model_));
44
45 controller_ =
46 [[WebIntentPickerSheetController alloc] initWithPicker:picker_.get()];
47 window_ = [controller_ window];
48 [controller_ showWindow:nil];
49 }
50
51 void WebIntentSheetControllerBrowserTest::CreatePicker() {
52 picker_.reset(new WebIntentPickerCocoa());
53 picker_->delegate_ = &delegate_;
54 picker_->model_ = &model_;
55 window_ = nil;
56 controller_ = nil;
57 }
58
16 IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest, CloseWillClose) { 59 IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest, CloseWillClose) {
17 CreateBubble(browser()->GetSelectedTabContentsWrapper()); 60 CreateBubble(browser()->GetSelectedTabContentsWrapper());
18 61
19 EXPECT_CALL(delegate_, OnCancelled()).Times(0); 62 EXPECT_CALL(delegate_, OnCancelled()).Times(0);
20 EXPECT_CALL(delegate_, OnClosing()); 63 EXPECT_CALL(delegate_, OnClosing());
21 picker_->Close(); 64 picker_->Close();
22 65
23 ignore_result(picker_.release()); // Closing |picker_| will destruct it. 66 ignore_result(picker_.release()); // Closing |picker_| will destruct it.
24 } 67 }
25 68
26 IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest, 69 IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest,
27 DontCancelAfterServiceInvokation) { 70 DontCancelAfterServiceInvokation) {
28 CreateBubble(browser()->GetSelectedTabContentsWrapper()); 71 CreateBubble(browser()->GetSelectedTabContentsWrapper());
29 72
30 GURL url; 73 GURL url;
31 model_.AddInstalledService(string16(), url, 74 model_.AddInstalledService(string16(), url,
32 WebIntentPickerModel::DISPOSITION_WINDOW); 75 WebIntentPickerModel::DISPOSITION_WINDOW);
33 76
34 EXPECT_CALL(delegate_, OnServiceChosen( 77 EXPECT_CALL(delegate_, OnServiceChosen(
35 url, WebIntentPickerModel::DISPOSITION_WINDOW)); 78 url, WebIntentPickerModel::DISPOSITION_WINDOW));
36 EXPECT_CALL(delegate_, OnCancelled()).Times(0); 79 EXPECT_CALL(delegate_, OnCancelled()).Times(0);
37 EXPECT_CALL(delegate_, OnClosing()); 80 EXPECT_CALL(delegate_, OnClosing());
38 81
39 picker_->OnServiceChosen(0); 82 picker_->OnServiceChosen(0);
40 picker_->Close(); 83 picker_->Close();
41 84
42 ignore_result(picker_.release()); // Closing |picker_| will destruct it. 85 ignore_result(picker_.release()); // Closing |picker_| will destruct it.
43 } 86 }
44 87
88 IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest,
89 OnCancelledWillSignalClose) {
90 CreatePicker();
91 EXPECT_CALL(delegate_, OnCancelled());
92 EXPECT_CALL(delegate_, OnClosing());
93 picker_->OnCancelled();
94
95 ignore_result(picker_.release()); // Closing |picker_| will destruct it.
96 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698