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

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: Created 8 years, 8 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"
13 #include "testing/gmock/include/gmock/gmock.h"
11 14
12 class WebIntentSheetControllerBrowserTest : public InProcessBrowserTest, 15 class MockIntentPickerDelegate : public WebIntentPickerDelegate {
13 public WebIntentPickerTestBase { 16 public:
17 MockIntentPickerDelegate();
18 virtual ~MockIntentPickerDelegate();
19
20 MOCK_METHOD2(OnServiceChosen, void(const GURL& url, Disposition disposition));
21 MOCK_METHOD1(OnInlineDispositionWebContentsCreated,
22 void(content::WebContents* web_contents));
23 MOCK_METHOD1(OnExtensionInstallRequested, void(const std::string& id));
24 MOCK_METHOD0(OnCancelled, void());
25 MOCK_METHOD0(OnClosing, void());
14 }; 26 };
15 27
28 MockIntentPickerDelegate::MockIntentPickerDelegate() {
Robert Sesek 2012/04/12 14:03:19 You could just inline these.
groby-ooo-7-16 2012/04/16 23:03:14 Done. Hoping clang doesn't object :) On 2012/04/1
29 }
30
31 MockIntentPickerDelegate::~MockIntentPickerDelegate() {
32 }
33
34 class WebIntentSheetControllerBrowserTest : public InProcessBrowserTest {
35 public:
36 void CreateBubble(TabContentsWrapper* wrapper);
37 void CreatePicker();
38
39 WebIntentPickerSheetController* controller_; // Weak, owns self.
40 NSWindow* window_; // Weak, owned by controller.
41 scoped_ptr<WebIntentPickerCocoa> picker_;
42 MockIntentPickerDelegate delegate_;
43 WebIntentPickerModel model_; // The model used by the picker
44 };
45
46 void WebIntentSheetControllerBrowserTest::CreateBubble(
47 TabContentsWrapper* wrapper)
48 {
Robert Sesek 2012/04/12 14:03:19 nit: goes on line 47
groby-ooo-7-16 2012/04/16 23:03:14 Done.
49 picker_.reset(new WebIntentPickerCocoa(NULL, wrapper, &delegate_, &model_));
50
51 controller_ =
52 [[WebIntentPickerSheetController alloc] initWithPicker:picker_.get()];
53 window_ = [controller_ window];
54 [controller_ showWindow:nil];
55 }
56
57 void WebIntentSheetControllerBrowserTest::CreatePicker() {
58 picker_.reset(new WebIntentPickerCocoa());
59 picker_->delegate_ = &delegate_;
60 picker_->model_ = &model_;
61 window_ = nil;
62 controller_ = nil;
63 }
64
16 IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest, CloseWillClose) { 65 IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest, CloseWillClose) {
17 CreateBubble(browser()->GetSelectedTabContentsWrapper()); 66 CreateBubble(browser()->GetSelectedTabContentsWrapper());
18 67
19 EXPECT_CALL(delegate_, OnCancelled()).Times(0); 68 EXPECT_CALL(delegate_, OnCancelled()).Times(0);
20 EXPECT_CALL(delegate_, OnClosing()); 69 EXPECT_CALL(delegate_, OnClosing());
21 picker_->Close(); 70 picker_->Close();
22 71
23 ignore_result(picker_.release()); // Closing |picker_| will destruct it. 72 ignore_result(picker_.release()); // Closing |picker_| will destruct it.
24 } 73 }
25 74
26 IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest, 75 IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest,
27 DontCancelAfterServiceInvokation) { 76 DontCancelAfterServiceInvokation) {
28 CreateBubble(browser()->GetSelectedTabContentsWrapper()); 77 CreateBubble(browser()->GetSelectedTabContentsWrapper());
29 78
30 GURL url; 79 GURL url;
31 model_.AddInstalledService(string16(), url, 80 model_.AddInstalledService(string16(), url,
32 WebIntentPickerModel::DISPOSITION_WINDOW); 81 WebIntentPickerModel::DISPOSITION_WINDOW);
33 82
34 EXPECT_CALL(delegate_, OnServiceChosen( 83 EXPECT_CALL(delegate_, OnServiceChosen(
35 url, WebIntentPickerModel::DISPOSITION_WINDOW)); 84 url, WebIntentPickerModel::DISPOSITION_WINDOW));
36 EXPECT_CALL(delegate_, OnCancelled()).Times(0); 85 EXPECT_CALL(delegate_, OnCancelled()).Times(0);
37 EXPECT_CALL(delegate_, OnClosing()); 86 EXPECT_CALL(delegate_, OnClosing());
38 87
39 picker_->OnServiceChosen(0); 88 picker_->OnServiceChosen(0);
40 picker_->Close(); 89 picker_->Close();
41 90
42 ignore_result(picker_.release()); // Closing |picker_| will destruct it. 91 ignore_result(picker_.release()); // Closing |picker_| will destruct it.
43 } 92 }
44 93
94 IN_PROC_BROWSER_TEST_F(WebIntentSheetControllerBrowserTest,
95 OnCancelledWillSignalClose) {
96
97 //CreateBubble(browser()->GetSelectedTabContentsWrapper());
Robert Sesek 2012/04/12 14:03:19 Remove?
groby-ooo-7-16 2012/04/16 23:03:14 Done.
98 CreatePicker();
99 EXPECT_CALL(delegate_, OnCancelled());
100 EXPECT_CALL(delegate_, OnClosing());
101 picker_->OnCancelled();
102
103 ignore_result(picker_.release()); // Closing |picker_| will destruct it.
104 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698