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

Side by Side Diff: chrome/browser/ui/views/extensions/extension_install_dialog_view_browsertest.cc

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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/ui/views/extensions/extension_install_dialog_view.h" 5 #include "chrome/browser/ui/views/extensions/extension_install_dialog_view.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 25 matching lines...) Expand all
36 class ExtensionInstallDialogViewTestBase : public ExtensionBrowserTest { 36 class ExtensionInstallDialogViewTestBase : public ExtensionBrowserTest {
37 protected: 37 protected:
38 explicit ExtensionInstallDialogViewTestBase( 38 explicit ExtensionInstallDialogViewTestBase(
39 ExtensionInstallPrompt::PromptType prompt_type); 39 ExtensionInstallPrompt::PromptType prompt_type);
40 ~ExtensionInstallDialogViewTestBase() override {} 40 ~ExtensionInstallDialogViewTestBase() override {}
41 41
42 void SetUpOnMainThread() override; 42 void SetUpOnMainThread() override;
43 43
44 // Creates and returns an install prompt of |prompt_type_|, optionally setting 44 // Creates and returns an install prompt of |prompt_type_|, optionally setting
45 // |permissions|. 45 // |permissions|.
46 scoped_ptr<ExtensionInstallPrompt::Prompt> CreatePrompt(); 46 std::unique_ptr<ExtensionInstallPrompt::Prompt> CreatePrompt();
47 scoped_ptr<ExtensionInstallPrompt::Prompt> CreatePrompt( 47 std::unique_ptr<ExtensionInstallPrompt::Prompt> CreatePrompt(
48 const PermissionMessages& permissions); 48 const PermissionMessages& permissions);
49 49
50 content::WebContents* web_contents() { return web_contents_; } 50 content::WebContents* web_contents() { return web_contents_; }
51 51
52 private: 52 private:
53 const extensions::Extension* extension_; 53 const extensions::Extension* extension_;
54 ExtensionInstallPrompt::PromptType prompt_type_; 54 ExtensionInstallPrompt::PromptType prompt_type_;
55 content::WebContents* web_contents_; 55 content::WebContents* web_contents_;
56 56
57 DISALLOW_COPY_AND_ASSIGN(ExtensionInstallDialogViewTestBase); 57 DISALLOW_COPY_AND_ASSIGN(ExtensionInstallDialogViewTestBase);
58 }; 58 };
59 59
60 ExtensionInstallDialogViewTestBase::ExtensionInstallDialogViewTestBase( 60 ExtensionInstallDialogViewTestBase::ExtensionInstallDialogViewTestBase(
61 ExtensionInstallPrompt::PromptType prompt_type) 61 ExtensionInstallPrompt::PromptType prompt_type)
62 : extension_(NULL), prompt_type_(prompt_type), web_contents_(NULL) {} 62 : extension_(NULL), prompt_type_(prompt_type), web_contents_(NULL) {}
63 63
64 void ExtensionInstallDialogViewTestBase::SetUpOnMainThread() { 64 void ExtensionInstallDialogViewTestBase::SetUpOnMainThread() {
65 ExtensionBrowserTest::SetUpOnMainThread(); 65 ExtensionBrowserTest::SetUpOnMainThread();
66 66
67 extension_ = ExtensionBrowserTest::LoadExtension(test_data_dir_.AppendASCII( 67 extension_ = ExtensionBrowserTest::LoadExtension(test_data_dir_.AppendASCII(
68 "install_prompt/permissions_scrollbar_regression")); 68 "install_prompt/permissions_scrollbar_regression"));
69 69
70 web_contents_ = browser()->tab_strip_model()->GetWebContentsAt(0); 70 web_contents_ = browser()->tab_strip_model()->GetWebContentsAt(0);
71 } 71 }
72 72
73 scoped_ptr<ExtensionInstallPrompt::Prompt> 73 std::unique_ptr<ExtensionInstallPrompt::Prompt>
74 ExtensionInstallDialogViewTestBase::CreatePrompt() { 74 ExtensionInstallDialogViewTestBase::CreatePrompt() {
75 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt( 75 std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt(
76 new ExtensionInstallPrompt::Prompt(prompt_type_)); 76 new ExtensionInstallPrompt::Prompt(prompt_type_));
77 prompt->set_extension(extension_); 77 prompt->set_extension(extension_);
78 78
79 scoped_ptr<ExtensionIconManager> icon_manager(new ExtensionIconManager()); 79 std::unique_ptr<ExtensionIconManager> icon_manager(
80 new ExtensionIconManager());
80 const SkBitmap icon_bitmap = icon_manager->GetIcon(extension_->id()); 81 const SkBitmap icon_bitmap = icon_manager->GetIcon(extension_->id());
81 gfx::Image icon = gfx::Image::CreateFrom1xBitmap(icon_bitmap); 82 gfx::Image icon = gfx::Image::CreateFrom1xBitmap(icon_bitmap);
82 prompt->set_icon(icon); 83 prompt->set_icon(icon);
83 84
84 return prompt; 85 return prompt;
85 } 86 }
86 87
87 class ScrollbarTest : public ExtensionInstallDialogViewTestBase { 88 class ScrollbarTest : public ExtensionInstallDialogViewTestBase {
88 protected: 89 protected:
89 ScrollbarTest(); 90 ScrollbarTest();
90 ~ScrollbarTest() override {} 91 ~ScrollbarTest() override {}
91 92
92 bool IsScrollbarVisible(scoped_ptr<ExtensionInstallPrompt::Prompt> prompt); 93 bool IsScrollbarVisible(
94 std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt);
93 95
94 private: 96 private:
95 DISALLOW_COPY_AND_ASSIGN(ScrollbarTest); 97 DISALLOW_COPY_AND_ASSIGN(ScrollbarTest);
96 }; 98 };
97 99
98 ScrollbarTest::ScrollbarTest() 100 ScrollbarTest::ScrollbarTest()
99 : ExtensionInstallDialogViewTestBase( 101 : ExtensionInstallDialogViewTestBase(
100 ExtensionInstallPrompt::PERMISSIONS_PROMPT) { 102 ExtensionInstallPrompt::PERMISSIONS_PROMPT) {
101 } 103 }
102 104
103 bool ScrollbarTest::IsScrollbarVisible( 105 bool ScrollbarTest::IsScrollbarVisible(
104 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt) { 106 std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt) {
105 ExtensionInstallDialogView* dialog = new ExtensionInstallDialogView( 107 ExtensionInstallDialogView* dialog = new ExtensionInstallDialogView(
106 profile(), web_contents(), ExtensionInstallPrompt::DoneCallback(), 108 profile(), web_contents(), ExtensionInstallPrompt::DoneCallback(),
107 std::move(prompt)); 109 std::move(prompt));
108 110
109 // Create the modal view around the install dialog view. 111 // Create the modal view around the install dialog view.
110 views::Widget* modal = constrained_window::CreateBrowserModalDialogViews( 112 views::Widget* modal = constrained_window::CreateBrowserModalDialogViews(
111 dialog, web_contents()->GetTopLevelNativeWindow()); 113 dialog, web_contents()->GetTopLevelNativeWindow());
112 modal->Show(); 114 modal->Show();
113 content::RunAllBlockingPoolTasksUntilIdle(); 115 content::RunAllBlockingPoolTasksUntilIdle();
114 116
115 // Check if the vertical scrollbar is visible. 117 // Check if the vertical scrollbar is visible.
116 return dialog->scroll_view()->vertical_scroll_bar()->visible(); 118 return dialog->scroll_view()->vertical_scroll_bar()->visible();
117 } 119 }
118 120
119 // Tests that a scrollbar _is_ shown for an excessively long extension 121 // Tests that a scrollbar _is_ shown for an excessively long extension
120 // install prompt. 122 // install prompt.
121 IN_PROC_BROWSER_TEST_F(ScrollbarTest, LongPromptScrollbar) { 123 IN_PROC_BROWSER_TEST_F(ScrollbarTest, LongPromptScrollbar) {
122 base::string16 permission_string(base::ASCIIToUTF16("Test")); 124 base::string16 permission_string(base::ASCIIToUTF16("Test"));
123 PermissionMessages permissions; 125 PermissionMessages permissions;
124 for (int i = 0; i < 20; i++) { 126 for (int i = 0; i < 20; i++) {
125 permissions.push_back(PermissionMessage(permission_string, 127 permissions.push_back(PermissionMessage(permission_string,
126 PermissionIDSet())); 128 PermissionIDSet()));
127 } 129 }
128 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt = CreatePrompt(); 130 std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt = CreatePrompt();
129 prompt->SetPermissions(permissions, 131 prompt->SetPermissions(permissions,
130 ExtensionInstallPrompt::REGULAR_PERMISSIONS); 132 ExtensionInstallPrompt::REGULAR_PERMISSIONS);
131 ASSERT_TRUE(IsScrollbarVisible(std::move(prompt))) 133 ASSERT_TRUE(IsScrollbarVisible(std::move(prompt)))
132 << "Scrollbar is not visible"; 134 << "Scrollbar is not visible";
133 } 135 }
134 136
135 // Tests that a scrollbar isn't shown for this regression case. 137 // Tests that a scrollbar isn't shown for this regression case.
136 // See crbug.com/385570 for details. 138 // See crbug.com/385570 for details.
137 IN_PROC_BROWSER_TEST_F(ScrollbarTest, ScrollbarRegression) { 139 IN_PROC_BROWSER_TEST_F(ScrollbarTest, ScrollbarRegression) {
138 base::string16 permission_string(base::ASCIIToUTF16( 140 base::string16 permission_string(base::ASCIIToUTF16(
139 "Read and modify your data on *.facebook.com")); 141 "Read and modify your data on *.facebook.com"));
140 PermissionMessages permissions; 142 PermissionMessages permissions;
141 permissions.push_back(PermissionMessage(permission_string, 143 permissions.push_back(PermissionMessage(permission_string,
142 PermissionIDSet())); 144 PermissionIDSet()));
143 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt = CreatePrompt(); 145 std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt = CreatePrompt();
144 prompt->SetPermissions(permissions, 146 prompt->SetPermissions(permissions,
145 ExtensionInstallPrompt::REGULAR_PERMISSIONS); 147 ExtensionInstallPrompt::REGULAR_PERMISSIONS);
146 ASSERT_FALSE(IsScrollbarVisible(std::move(prompt))) << "Scrollbar is visible"; 148 ASSERT_FALSE(IsScrollbarVisible(std::move(prompt))) << "Scrollbar is visible";
147 } 149 }
148 150
149 class ExtensionInstallDialogViewTest 151 class ExtensionInstallDialogViewTest
150 : public ExtensionInstallDialogViewTestBase { 152 : public ExtensionInstallDialogViewTestBase {
151 protected: 153 protected:
152 ExtensionInstallDialogViewTest() 154 ExtensionInstallDialogViewTest()
153 : ExtensionInstallDialogViewTestBase( 155 : ExtensionInstallDialogViewTestBase(
154 ExtensionInstallPrompt::INSTALL_PROMPT) {} 156 ExtensionInstallPrompt::INSTALL_PROMPT) {}
155 ~ExtensionInstallDialogViewTest() override {} 157 ~ExtensionInstallDialogViewTest() override {}
156 158
157 views::DialogDelegateView* CreateAndShowPrompt( 159 views::DialogDelegateView* CreateAndShowPrompt(
158 ExtensionInstallPromptTestHelper* helper) { 160 ExtensionInstallPromptTestHelper* helper) {
159 scoped_ptr<ExtensionInstallDialogView> dialog( 161 std::unique_ptr<ExtensionInstallDialogView> dialog(
160 new ExtensionInstallDialogView(profile(), web_contents(), 162 new ExtensionInstallDialogView(profile(), web_contents(),
161 helper->GetCallback(), CreatePrompt())); 163 helper->GetCallback(), CreatePrompt()));
162 views::DialogDelegateView* delegate_view = dialog.get(); 164 views::DialogDelegateView* delegate_view = dialog.get();
163 165
164 views::Widget* modal_dialog = views::DialogDelegate::CreateDialogWidget( 166 views::Widget* modal_dialog = views::DialogDelegate::CreateDialogWidget(
165 dialog.release(), nullptr, browser()->window()->GetNativeWindow()); 167 dialog.release(), nullptr, browser()->window()->GetNativeWindow());
166 modal_dialog->Show(); 168 modal_dialog->Show();
167 169
168 return delegate_view; 170 return delegate_view;
169 } 171 }
(...skipping 22 matching lines...) Expand all
192 { 194 {
193 // Dialog is closed without the user explicitly choosing to proceed or 195 // Dialog is closed without the user explicitly choosing to proceed or
194 // cancel. 196 // cancel.
195 ExtensionInstallPromptTestHelper helper; 197 ExtensionInstallPromptTestHelper helper;
196 views::DialogDelegateView* delegate_view = CreateAndShowPrompt(&helper); 198 views::DialogDelegateView* delegate_view = CreateAndShowPrompt(&helper);
197 delegate_view->GetWidget()->Close(); 199 delegate_view->GetWidget()->Close();
198 // TODO(devlin): Should this be ABORTED? 200 // TODO(devlin): Should this be ABORTED?
199 EXPECT_EQ(ExtensionInstallPrompt::Result::USER_CANCELED, helper.result()); 201 EXPECT_EQ(ExtensionInstallPrompt::Result::USER_CANCELED, helper.result());
200 } 202 }
201 } 203 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698