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

Side by Side Diff: chrome/browser/ui/cocoa/extensions/windowed_install_dialog_controller_browsertest.mm

Issue 1865213004: Convert //chrome/browser/ui from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #import "chrome/browser/ui/cocoa/extensions/windowed_install_dialog_controller.h " 5 #import "chrome/browser/ui/cocoa/extensions/windowed_install_dialog_controller.h "
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/threading/sequenced_worker_pool.h" 10 #include "base/threading/sequenced_worker_pool.h"
11 #include "chrome/browser/extensions/extension_install_prompt_test_helper.h" 11 #include "chrome/browser/extensions/extension_install_prompt_test_helper.h"
12 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
13 #import "chrome/browser/ui/cocoa/extensions/extension_install_prompt_test_utils. h" 13 #import "chrome/browser/ui/cocoa/extensions/extension_install_prompt_test_utils. h"
14 #import "chrome/browser/ui/cocoa/extensions/extension_install_view_controller.h" 14 #import "chrome/browser/ui/cocoa/extensions/extension_install_view_controller.h"
15 #include "chrome/test/base/in_process_browser_test.h" 15 #include "chrome/test/base/in_process_browser_test.h"
16 #include "content/public/browser/browser_thread.h" 16 #include "content/public/browser/browser_thread.h"
17 #include "content/public/test/test_utils.h" 17 #include "content/public/test/test_utils.h"
18 #include "extensions/common/extension.h" 18 #include "extensions/common/extension.h"
19 19
20 namespace { 20 namespace {
21 21
22 // Similar to ShowExtensionInstallDialogImpl except this allows the created 22 // Similar to ShowExtensionInstallDialogImpl except this allows the created
23 // dialog controller to be captured and manipulated for tests. 23 // dialog controller to be captured and manipulated for tests.
24 void TestingShowAppListInstallDialogController( 24 void TestingShowAppListInstallDialogController(
25 WindowedInstallDialogController** controller, 25 WindowedInstallDialogController** controller,
26 ExtensionInstallPromptShowParams* show_params, 26 ExtensionInstallPromptShowParams* show_params,
27 const ExtensionInstallPrompt::DoneCallback& done_callback, 27 const ExtensionInstallPrompt::DoneCallback& done_callback,
28 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt) { 28 std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt) {
29 *controller = 29 *controller =
30 new WindowedInstallDialogController(show_params, done_callback, 30 new WindowedInstallDialogController(show_params, done_callback,
31 std::move(prompt)); 31 std::move(prompt));
32 } 32 }
33 33
34 typedef InProcessBrowserTest WindowedInstallDialogControllerBrowserTest; 34 typedef InProcessBrowserTest WindowedInstallDialogControllerBrowserTest;
35 35
36 } // namespace 36 } // namespace
37 37
38 // Test for showing an extension install prompt with no parent WebContents. 38 // Test for showing an extension install prompt with no parent WebContents.
39 IN_PROC_BROWSER_TEST_F(WindowedInstallDialogControllerBrowserTest, 39 IN_PROC_BROWSER_TEST_F(WindowedInstallDialogControllerBrowserTest,
40 ShowInstallDialog) { 40 ShowInstallDialog) {
41 // Construct a prompt with a NULL parent window, the way ExtensionEnableFlow 41 // Construct a prompt with a NULL parent window, the way ExtensionEnableFlow
42 // will for the Mac app list. For testing, sets a NULL PageNavigator as well. 42 // will for the Mac app list. For testing, sets a NULL PageNavigator as well.
43 scoped_ptr<ExtensionInstallPrompt> prompt( 43 std::unique_ptr<ExtensionInstallPrompt> prompt(
44 new ExtensionInstallPrompt(browser()->profile(), NULL)); 44 new ExtensionInstallPrompt(browser()->profile(), NULL));
45 45
46 WindowedInstallDialogController* controller = NULL; 46 WindowedInstallDialogController* controller = NULL;
47 ExtensionInstallPromptTestHelper test_helper; 47 ExtensionInstallPromptTestHelper test_helper;
48 scoped_refptr<extensions::Extension> extension = 48 scoped_refptr<extensions::Extension> extension =
49 chrome::LoadInstallPromptExtension("permissions", "many-apis.json"); 49 chrome::LoadInstallPromptExtension("permissions", "many-apis.json");
50 prompt->ShowDialog( 50 prompt->ShowDialog(
51 test_helper.GetCallback(), extension.get(), nullptr, 51 test_helper.GetCallback(), extension.get(), nullptr,
52 base::Bind(&TestingShowAppListInstallDialogController, &controller)); 52 base::Bind(&TestingShowAppListInstallDialogController, &controller));
53 53
54 // The prompt needs to load the image, which happens on the blocking pool. 54 // The prompt needs to load the image, which happens on the blocking pool.
55 content::RunAllBlockingPoolTasksUntilIdle(); 55 content::RunAllBlockingPoolTasksUntilIdle();
56 ASSERT_TRUE(controller); 56 ASSERT_TRUE(controller);
57 57
58 base::scoped_nsobject<NSWindow> window( 58 base::scoped_nsobject<NSWindow> window(
59 [[[controller->GetViewController() view] window] retain]); 59 [[[controller->GetViewController() view] window] retain]);
60 EXPECT_TRUE([window isVisible]); 60 EXPECT_TRUE([window isVisible]);
61 EXPECT_TRUE([window delegate]); 61 EXPECT_TRUE([window delegate]);
62 EXPECT_FALSE(test_helper.has_result()); 62 EXPECT_FALSE(test_helper.has_result());
63 63
64 // Press cancel to close the window. 64 // Press cancel to close the window.
65 [[controller->GetViewController() cancelButton] performClick:nil]; 65 [[controller->GetViewController() cancelButton] performClick:nil];
66 EXPECT_FALSE([window delegate]); 66 EXPECT_FALSE([window delegate]);
67 EXPECT_EQ(ExtensionInstallPrompt::Result::USER_CANCELED, 67 EXPECT_EQ(ExtensionInstallPrompt::Result::USER_CANCELED,
68 test_helper.result()); 68 test_helper.result());
69 69
70 // Ensure the window is closed. 70 // Ensure the window is closed.
71 EXPECT_FALSE([window isVisible]); 71 EXPECT_FALSE([window isVisible]);
72 } 72 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698