Chromium Code Reviews| 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 |