OLD | NEW |
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> |
| 8 |
7 #include "base/macros.h" | 9 #include "base/macros.h" |
8 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/extensions/extension_browsertest.h" | 11 #include "chrome/browser/extensions/extension_browsertest.h" |
10 #include "chrome/browser/extensions/extension_icon_manager.h" | 12 #include "chrome/browser/extensions/extension_icon_manager.h" |
11 #include "chrome/browser/extensions/extension_install_prompt.h" | 13 #include "chrome/browser/extensions/extension_install_prompt.h" |
12 #include "chrome/browser/ui/browser.h" | 14 #include "chrome/browser/ui/browser.h" |
13 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 15 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
14 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h" | 16 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h" |
15 #include "chrome/common/extensions/extension_test_util.h" | 17 #include "chrome/common/extensions/extension_test_util.h" |
16 #include "components/constrained_window/constrained_window_views.h" | 18 #include "components/constrained_window/constrained_window_views.h" |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 ExtensionInstallDialogViewTestBase::CreatePrompt() { | 102 ExtensionInstallDialogViewTestBase::CreatePrompt() { |
101 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt( | 103 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt( |
102 new ExtensionInstallPrompt::Prompt(prompt_type_)); | 104 new ExtensionInstallPrompt::Prompt(prompt_type_)); |
103 prompt->set_extension(extension_); | 105 prompt->set_extension(extension_); |
104 | 106 |
105 scoped_ptr<ExtensionIconManager> icon_manager(new ExtensionIconManager()); | 107 scoped_ptr<ExtensionIconManager> icon_manager(new ExtensionIconManager()); |
106 const SkBitmap icon_bitmap = icon_manager->GetIcon(extension_->id()); | 108 const SkBitmap icon_bitmap = icon_manager->GetIcon(extension_->id()); |
107 gfx::Image icon = gfx::Image::CreateFrom1xBitmap(icon_bitmap); | 109 gfx::Image icon = gfx::Image::CreateFrom1xBitmap(icon_bitmap); |
108 prompt->set_icon(icon); | 110 prompt->set_icon(icon); |
109 | 111 |
110 return prompt.Pass(); | 112 return prompt; |
111 } | 113 } |
112 | 114 |
113 class ScrollbarTest : public ExtensionInstallDialogViewTestBase { | 115 class ScrollbarTest : public ExtensionInstallDialogViewTestBase { |
114 protected: | 116 protected: |
115 ScrollbarTest(); | 117 ScrollbarTest(); |
116 ~ScrollbarTest() override {} | 118 ~ScrollbarTest() override {} |
117 | 119 |
118 bool IsScrollbarVisible(scoped_ptr<ExtensionInstallPrompt::Prompt> prompt); | 120 bool IsScrollbarVisible(scoped_ptr<ExtensionInstallPrompt::Prompt> prompt); |
119 | 121 |
120 private: | 122 private: |
121 DISALLOW_COPY_AND_ASSIGN(ScrollbarTest); | 123 DISALLOW_COPY_AND_ASSIGN(ScrollbarTest); |
122 }; | 124 }; |
123 | 125 |
124 ScrollbarTest::ScrollbarTest() | 126 ScrollbarTest::ScrollbarTest() |
125 : ExtensionInstallDialogViewTestBase( | 127 : ExtensionInstallDialogViewTestBase( |
126 ExtensionInstallPrompt::PERMISSIONS_PROMPT) { | 128 ExtensionInstallPrompt::PERMISSIONS_PROMPT) { |
127 } | 129 } |
128 | 130 |
129 bool ScrollbarTest::IsScrollbarVisible( | 131 bool ScrollbarTest::IsScrollbarVisible( |
130 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt) { | 132 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt) { |
131 ExtensionInstallDialogView* dialog = new ExtensionInstallDialogView( | 133 ExtensionInstallDialogView* dialog = new ExtensionInstallDialogView( |
132 profile(), web_contents(), delegate(), prompt.Pass()); | 134 profile(), web_contents(), delegate(), std::move(prompt)); |
133 | 135 |
134 // Create the modal view around the install dialog view. | 136 // Create the modal view around the install dialog view. |
135 views::Widget* modal = constrained_window::CreateBrowserModalDialogViews( | 137 views::Widget* modal = constrained_window::CreateBrowserModalDialogViews( |
136 dialog, web_contents()->GetTopLevelNativeWindow()); | 138 dialog, web_contents()->GetTopLevelNativeWindow()); |
137 modal->Show(); | 139 modal->Show(); |
138 content::RunAllBlockingPoolTasksUntilIdle(); | 140 content::RunAllBlockingPoolTasksUntilIdle(); |
139 | 141 |
140 // Check if the vertical scrollbar is visible. | 142 // Check if the vertical scrollbar is visible. |
141 return dialog->scroll_view()->vertical_scroll_bar()->visible(); | 143 return dialog->scroll_view()->vertical_scroll_bar()->visible(); |
142 } | 144 } |
143 | 145 |
144 // Tests that a scrollbar _is_ shown for an excessively long extension | 146 // Tests that a scrollbar _is_ shown for an excessively long extension |
145 // install prompt. | 147 // install prompt. |
146 IN_PROC_BROWSER_TEST_F(ScrollbarTest, LongPromptScrollbar) { | 148 IN_PROC_BROWSER_TEST_F(ScrollbarTest, LongPromptScrollbar) { |
147 base::string16 permission_string(base::ASCIIToUTF16("Test")); | 149 base::string16 permission_string(base::ASCIIToUTF16("Test")); |
148 PermissionMessages permissions; | 150 PermissionMessages permissions; |
149 for (int i = 0; i < 20; i++) { | 151 for (int i = 0; i < 20; i++) { |
150 permissions.push_back(PermissionMessage(permission_string, | 152 permissions.push_back(PermissionMessage(permission_string, |
151 PermissionIDSet())); | 153 PermissionIDSet())); |
152 } | 154 } |
153 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt = CreatePrompt(); | 155 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt = CreatePrompt(); |
154 prompt->SetPermissions(permissions, | 156 prompt->SetPermissions(permissions, |
155 ExtensionInstallPrompt::REGULAR_PERMISSIONS); | 157 ExtensionInstallPrompt::REGULAR_PERMISSIONS); |
156 ASSERT_TRUE(IsScrollbarVisible(prompt.Pass())) << "Scrollbar is not visible"; | 158 ASSERT_TRUE(IsScrollbarVisible(std::move(prompt))) |
| 159 << "Scrollbar is not visible"; |
157 } | 160 } |
158 | 161 |
159 // Tests that a scrollbar isn't shown for this regression case. | 162 // Tests that a scrollbar isn't shown for this regression case. |
160 // See crbug.com/385570 for details. | 163 // See crbug.com/385570 for details. |
161 IN_PROC_BROWSER_TEST_F(ScrollbarTest, ScrollbarRegression) { | 164 IN_PROC_BROWSER_TEST_F(ScrollbarTest, ScrollbarRegression) { |
162 base::string16 permission_string(base::ASCIIToUTF16( | 165 base::string16 permission_string(base::ASCIIToUTF16( |
163 "Read and modify your data on *.facebook.com")); | 166 "Read and modify your data on *.facebook.com")); |
164 PermissionMessages permissions; | 167 PermissionMessages permissions; |
165 permissions.push_back(PermissionMessage(permission_string, | 168 permissions.push_back(PermissionMessage(permission_string, |
166 PermissionIDSet())); | 169 PermissionIDSet())); |
167 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt = CreatePrompt(); | 170 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt = CreatePrompt(); |
168 prompt->SetPermissions(permissions, | 171 prompt->SetPermissions(permissions, |
169 ExtensionInstallPrompt::REGULAR_PERMISSIONS); | 172 ExtensionInstallPrompt::REGULAR_PERMISSIONS); |
170 ASSERT_FALSE(IsScrollbarVisible(prompt.Pass())) << "Scrollbar is visible"; | 173 ASSERT_FALSE(IsScrollbarVisible(std::move(prompt))) << "Scrollbar is visible"; |
171 } | 174 } |
172 | 175 |
173 class ExtensionInstallDialogViewTest | 176 class ExtensionInstallDialogViewTest |
174 : public ExtensionInstallDialogViewTestBase { | 177 : public ExtensionInstallDialogViewTestBase { |
175 protected: | 178 protected: |
176 ExtensionInstallDialogViewTest() | 179 ExtensionInstallDialogViewTest() |
177 : ExtensionInstallDialogViewTestBase( | 180 : ExtensionInstallDialogViewTestBase( |
178 ExtensionInstallPrompt::INSTALL_PROMPT) {} | 181 ExtensionInstallPrompt::INSTALL_PROMPT) {} |
179 ~ExtensionInstallDialogViewTest() override {} | 182 ~ExtensionInstallDialogViewTest() override {} |
180 | 183 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 MockExtensionInstallPromptDelegate delegate; | 226 MockExtensionInstallPromptDelegate delegate; |
224 scoped_ptr<ExtensionInstallDialogView> dialog( | 227 scoped_ptr<ExtensionInstallDialogView> dialog( |
225 new ExtensionInstallDialogView(profile(), web_contents(), &delegate, | 228 new ExtensionInstallDialogView(profile(), web_contents(), &delegate, |
226 CreatePrompt())); | 229 CreatePrompt())); |
227 dialog.reset(); | 230 dialog.reset(); |
228 | 231 |
229 EXPECT_EQ(1, delegate.abort_count()); | 232 EXPECT_EQ(1, delegate.abort_count()); |
230 EXPECT_EQ(0, delegate.proceed_count()); | 233 EXPECT_EQ(0, delegate.proceed_count()); |
231 } | 234 } |
232 } | 235 } |
OLD | NEW |