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

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

Issue 662073002: Fix crash when user closes window prior to the "Confirm Install" prompt showing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git/+/install_prompt_navigator
Patch Set: Created 6 years, 1 month 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 (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 #import "chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller. h" 5 #import "chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller. h"
6 6
7 #include "chrome/browser/ui/browser.h" 7 #include "chrome/browser/ui/browser.h"
8 #include "chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_co ntroller.h" 8 #include "chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_co ntroller.h"
9 #import "chrome/browser/ui/cocoa/extensions/extension_install_prompt_test_utils. h" 9 #import "chrome/browser/ui/cocoa/extensions/extension_install_prompt_test_utils. h"
10 #import "chrome/browser/ui/cocoa/extensions/extension_install_view_controller.h" 10 #import "chrome/browser/ui/cocoa/extensions/extension_install_view_controller.h"
11 #include "chrome/browser/extensions/extension_install_prompt_show_params.h"
11 #include "chrome/browser/ui/tabs/tab_strip_model.h" 12 #include "chrome/browser/ui/tabs/tab_strip_model.h"
12 #include "chrome/test/base/in_process_browser_test.h" 13 #include "chrome/test/base/in_process_browser_test.h"
13 #include "extensions/common/extension.h" 14 #include "extensions/common/extension.h"
14 15
15 using extensions::Extension; 16 using extensions::Extension;
16 17
17 class ExtensionInstallDialogControllerTest : public InProcessBrowserTest { 18 class ExtensionInstallDialogControllerTest : public InProcessBrowserTest {
18 public: 19 public:
19 ExtensionInstallDialogControllerTest() {} 20 ExtensionInstallDialogControllerTest() {}
20 21
21 void SetUpOnMainThread() override { 22 void SetUpOnMainThread() override {
22 extension_ = chrome::LoadInstallPromptExtension(); 23 extension_ = chrome::LoadInstallPromptExtension();
23 } 24 }
24 25
25 protected: 26 protected:
26 scoped_refptr<Extension> extension_; 27 scoped_refptr<Extension> extension_;
27 }; 28 };
28 29
29 IN_PROC_BROWSER_TEST_F(ExtensionInstallDialogControllerTest, BasicTest) { 30 IN_PROC_BROWSER_TEST_F(ExtensionInstallDialogControllerTest, BasicTest) {
30 content::WebContents* tab = browser()->tab_strip_model()->GetWebContentsAt(0); 31 content::WebContents* tab = browser()->tab_strip_model()->GetWebContentsAt(0);
31 ExtensionInstallPrompt::ShowParams show_params(tab); 32 ExtensionInstallPromptShowParams show_params(tab);
32 33
33 chrome::MockExtensionInstallPromptDelegate delegate; 34 chrome::MockExtensionInstallPromptDelegate delegate;
34 scoped_refptr<ExtensionInstallPrompt::Prompt> prompt = 35 scoped_refptr<ExtensionInstallPrompt::Prompt> prompt =
35 chrome::BuildExtensionInstallPrompt(extension_.get()); 36 chrome::BuildExtensionInstallPrompt(extension_.get());
36 37
37 ExtensionInstallDialogController* controller = 38 ExtensionInstallDialogController* controller =
38 new ExtensionInstallDialogController(show_params, 39 new ExtensionInstallDialogController(&show_params,
39 &delegate, 40 &delegate,
40 prompt); 41 prompt);
41 42
42 base::scoped_nsobject<NSWindow> window( 43 base::scoped_nsobject<NSWindow> window(
43 [[[controller->view_controller() view] window] retain]); 44 [[[controller->view_controller() view] window] retain]);
44 EXPECT_TRUE([window isVisible]); 45 EXPECT_TRUE([window isVisible]);
45 46
46 // Press cancel to close the window 47 // Press cancel to close the window
47 [[controller->view_controller() cancelButton] performClick:nil]; 48 [[controller->view_controller() cancelButton] performClick:nil];
48 49
49 // Wait for the window to finish closing. 50 // Wait for the window to finish closing.
50 EXPECT_FALSE([window isVisible]); 51 EXPECT_FALSE([window isVisible]);
51 } 52 }
52 53
53 IN_PROC_BROWSER_TEST_F(ExtensionInstallDialogControllerTest, 54 IN_PROC_BROWSER_TEST_F(ExtensionInstallDialogControllerTest,
54 DISABLED_Permissions) { 55 DISABLED_Permissions) {
55 content::WebContents* tab = browser()->tab_strip_model()->GetWebContentsAt(0); 56 content::WebContents* tab = browser()->tab_strip_model()->GetWebContentsAt(0);
56 ExtensionInstallPrompt::ShowParams show_params(tab); 57 ExtensionInstallPromptShowParams show_params(tab);
57 58
58 chrome::MockExtensionInstallPromptDelegate delegate; 59 chrome::MockExtensionInstallPromptDelegate delegate;
59 scoped_refptr<ExtensionInstallPrompt::Prompt> prompt = 60 scoped_refptr<ExtensionInstallPrompt::Prompt> prompt =
60 chrome::BuildExtensionPostInstallPermissionsPrompt(extension_.get()); 61 chrome::BuildExtensionPostInstallPermissionsPrompt(extension_.get());
61 62
62 ExtensionInstallDialogController* controller = 63 ExtensionInstallDialogController* controller =
63 new ExtensionInstallDialogController(show_params, 64 new ExtensionInstallDialogController(&show_params,
64 &delegate, 65 &delegate,
65 prompt); 66 prompt);
66 67
67 base::scoped_nsobject<NSWindow> window( 68 base::scoped_nsobject<NSWindow> window(
68 [[[controller->view_controller() view] window] retain]); 69 [[[controller->view_controller() view] window] retain]);
69 EXPECT_TRUE([window isVisible]); 70 EXPECT_TRUE([window isVisible]);
70 71
71 // Press cancel to close the window 72 // Press cancel to close the window
72 [[controller->view_controller() cancelButton] performClick:nil]; 73 [[controller->view_controller() cancelButton] performClick:nil];
73 74
74 // Wait for the window to finish closing. 75 // Wait for the window to finish closing.
75 EXPECT_FALSE([window isVisible]); 76 EXPECT_FALSE([window isVisible]);
76 } 77 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698