OLD | NEW |
---|---|
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 } | |
OLD | NEW |