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

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

Issue 1004123003: Extensions: Switch to new permission message system, part III (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permissions_tests
Patch Set: Mac Created 5 years, 9 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 "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/extensions/extension_browsertest.h" 8 #include "chrome/browser/extensions/extension_browsertest.h"
9 #include "chrome/browser/extensions/extension_icon_manager.h" 9 #include "chrome/browser/extensions/extension_icon_manager.h"
10 #include "chrome/browser/extensions/extension_install_prompt.h" 10 #include "chrome/browser/extensions/extension_install_prompt.h"
11 #include "chrome/browser/ui/browser.h" 11 #include "chrome/browser/ui/browser.h"
12 #include "chrome/browser/ui/tabs/tab_strip_model.h" 12 #include "chrome/browser/ui/tabs/tab_strip_model.h"
13 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h" 13 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h"
14 #include "chrome/common/extensions/extension_test_util.h" 14 #include "chrome/common/extensions/extension_test_util.h"
15 #include "components/constrained_window/constrained_window_views.h" 15 #include "components/constrained_window/constrained_window_views.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 #include "extensions/common/permissions/permission_message_provider.h"
19 #include "extensions/common/permissions/permissions_data.h" 20 #include "extensions/common/permissions/permissions_data.h"
20 #include "extensions/common/test_util.h" 21 #include "extensions/common/test_util.h"
21 #include "ui/views/controls/scroll_view.h" 22 #include "ui/views/controls/scroll_view.h"
22 #include "ui/views/view.h" 23 #include "ui/views/view.h"
23 #include "ui/views/widget/widget.h" 24 #include "ui/views/widget/widget.h"
24 25
26 using extensions::PermissionMessageString;
27 using extensions::PermissionMessageStrings;
28
25 // A simple delegate implementation that counts the number of times 29 // A simple delegate implementation that counts the number of times
26 // |InstallUIProceed| and |InstallUIAbort| are called. 30 // |InstallUIProceed| and |InstallUIAbort| are called.
27 class MockExtensionInstallPromptDelegate 31 class MockExtensionInstallPromptDelegate
28 : public ExtensionInstallPrompt::Delegate { 32 : public ExtensionInstallPrompt::Delegate {
29 public: 33 public:
30 MockExtensionInstallPromptDelegate() 34 MockExtensionInstallPromptDelegate()
31 : proceed_count_(0), 35 : proceed_count_(0),
32 abort_count_(0) {} 36 abort_count_(0) {}
33 37
34 // ExtensionInstallPrompt::Delegate overrides. 38 // ExtensionInstallPrompt::Delegate overrides.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 explicit ExtensionInstallDialogViewTestBase( 78 explicit ExtensionInstallDialogViewTestBase(
75 ExtensionInstallPrompt::PromptType prompt_type); 79 ExtensionInstallPrompt::PromptType prompt_type);
76 ~ExtensionInstallDialogViewTestBase() override {} 80 ~ExtensionInstallDialogViewTestBase() override {}
77 81
78 void SetUpOnMainThread() override; 82 void SetUpOnMainThread() override;
79 83
80 ExtensionInstallPrompt::Prompt* prompt() { return prompt_.get(); } 84 ExtensionInstallPrompt::Prompt* prompt() { return prompt_.get(); }
81 content::WebContents* web_contents() { return web_contents_; } 85 content::WebContents* web_contents() { return web_contents_; }
82 MockExtensionInstallPromptDelegate* delegate() { return &delegate_; } 86 MockExtensionInstallPromptDelegate* delegate() { return &delegate_; }
83 87
84 void SetPromptPermissions(std::vector<base::string16> permissions); 88 void SetPromptPermissions(const PermissionMessageStrings& permissions);
85 void SetPromptDetails(std::vector<base::string16> details);
86 void SetPromptRetainedFiles(std::vector<base::FilePath> files); 89 void SetPromptRetainedFiles(std::vector<base::FilePath> files);
87 90
88 private: 91 private:
89 const extensions::Extension* extension_; 92 const extensions::Extension* extension_;
90 MockExtensionInstallPrompt* install_prompt_; 93 MockExtensionInstallPrompt* install_prompt_;
91 scoped_refptr<ExtensionInstallPrompt::Prompt> prompt_; 94 scoped_refptr<ExtensionInstallPrompt::Prompt> prompt_;
92 content::WebContents* web_contents_; 95 content::WebContents* web_contents_;
93 MockExtensionInstallPromptDelegate delegate_; 96 MockExtensionInstallPromptDelegate delegate_;
94 97
95 DISALLOW_COPY_AND_ASSIGN(ExtensionInstallDialogViewTestBase); 98 DISALLOW_COPY_AND_ASSIGN(ExtensionInstallDialogViewTestBase);
(...skipping 17 matching lines...) Expand all
113 116
114 install_prompt_ = new MockExtensionInstallPrompt(web_contents_); 117 install_prompt_ = new MockExtensionInstallPrompt(web_contents_);
115 install_prompt_->set_prompt(prompt_.get()); 118 install_prompt_->set_prompt(prompt_.get());
116 prompt_->set_extension(extension_); 119 prompt_->set_extension(extension_);
117 120
118 scoped_ptr<ExtensionIconManager> icon_manager(new ExtensionIconManager()); 121 scoped_ptr<ExtensionIconManager> icon_manager(new ExtensionIconManager());
119 const SkBitmap icon_bitmap = icon_manager->GetIcon(extension_->id()); 122 const SkBitmap icon_bitmap = icon_manager->GetIcon(extension_->id());
120 gfx::Image icon = gfx::Image::CreateFrom1xBitmap(icon_bitmap); 123 gfx::Image icon = gfx::Image::CreateFrom1xBitmap(icon_bitmap);
121 prompt_->set_icon(icon); 124 prompt_->set_icon(icon);
122 125
123 this->SetPromptPermissions(std::vector<base::string16>()); 126 this->SetPromptPermissions(PermissionMessageStrings());
124 this->SetPromptDetails(std::vector<base::string16>());
125 this->SetPromptRetainedFiles(std::vector<base::FilePath>()); 127 this->SetPromptRetainedFiles(std::vector<base::FilePath>());
126 } 128 }
127 129
128 void ExtensionInstallDialogViewTestBase::SetPromptPermissions( 130 void ExtensionInstallDialogViewTestBase::SetPromptPermissions(
129 std::vector<base::string16> permissions) { 131 const PermissionMessageStrings& permissions) {
130 prompt_->SetPermissions(permissions, 132 prompt_->SetPermissions(permissions,
131 ExtensionInstallPrompt::REGULAR_PERMISSIONS); 133 ExtensionInstallPrompt::REGULAR_PERMISSIONS);
132 } 134 }
133 135
134 void ExtensionInstallDialogViewTestBase::SetPromptDetails(
135 std::vector<base::string16> details) {
136 prompt_->SetPermissionsDetails(details,
137 ExtensionInstallPrompt::REGULAR_PERMISSIONS);
138 }
139
140 void ExtensionInstallDialogViewTestBase::SetPromptRetainedFiles( 136 void ExtensionInstallDialogViewTestBase::SetPromptRetainedFiles(
141 std::vector<base::FilePath> files) { 137 std::vector<base::FilePath> files) {
142 prompt_->set_retained_files(files); 138 prompt_->set_retained_files(files);
143 } 139 }
144 140
145 class ScrollbarTest : public ExtensionInstallDialogViewTestBase { 141 class ScrollbarTest : public ExtensionInstallDialogViewTestBase {
146 protected: 142 protected:
147 ScrollbarTest(); 143 ScrollbarTest();
148 ~ScrollbarTest() override {} 144 ~ScrollbarTest() override {}
149 145
(...skipping 22 matching lines...) Expand all
172 content::RunAllBlockingPoolTasksUntilIdle(); 168 content::RunAllBlockingPoolTasksUntilIdle();
173 169
174 // Check if the vertical scrollbar is visible. 170 // Check if the vertical scrollbar is visible.
175 return dialog->scroll_view()->vertical_scroll_bar()->visible(); 171 return dialog->scroll_view()->vertical_scroll_bar()->visible();
176 } 172 }
177 173
178 // Tests that a scrollbar _is_ shown for an excessively long extension 174 // Tests that a scrollbar _is_ shown for an excessively long extension
179 // install prompt. 175 // install prompt.
180 IN_PROC_BROWSER_TEST_F(ScrollbarTest, LongPromptScrollbar) { 176 IN_PROC_BROWSER_TEST_F(ScrollbarTest, LongPromptScrollbar) {
181 base::string16 permission_string(base::ASCIIToUTF16("Test")); 177 base::string16 permission_string(base::ASCIIToUTF16("Test"));
182 std::vector<base::string16> permissions; 178 PermissionMessageStrings permissions;
183 std::vector<base::string16> details; 179 for (int i = 0; i < 20; i++)
184 for (int i = 0; i < 20; i++) { 180 permissions.push_back(PermissionMessageString(permission_string));
185 permissions.push_back(permission_string);
186 details.push_back(base::string16());
187 }
188 this->SetPromptPermissions(permissions); 181 this->SetPromptPermissions(permissions);
189 this->SetPromptDetails(details);
190 ASSERT_TRUE(IsScrollbarVisible()) << "Scrollbar is not visible"; 182 ASSERT_TRUE(IsScrollbarVisible()) << "Scrollbar is not visible";
191 } 183 }
192 184
193 // Tests that a scrollbar isn't shown for this regression case. 185 // Tests that a scrollbar isn't shown for this regression case.
194 // See crbug.com/385570 for details. 186 // See crbug.com/385570 for details.
195 IN_PROC_BROWSER_TEST_F(ScrollbarTest, ScrollbarRegression) { 187 IN_PROC_BROWSER_TEST_F(ScrollbarTest, ScrollbarRegression) {
196 base::string16 permission_string(base::ASCIIToUTF16( 188 base::string16 permission_string(base::ASCIIToUTF16(
197 "Read and modify your data on *.facebook.com")); 189 "Read and modify your data on *.facebook.com"));
198 std::vector<base::string16> permissions; 190 PermissionMessageStrings permissions;
199 permissions.push_back(permission_string); 191 permissions.push_back(PermissionMessageString(permission_string));
200 this->SetPromptPermissions(permissions); 192 this->SetPromptPermissions(permissions);
201 std::vector<base::string16> details;
202 details.push_back(base::string16());
203 this->SetPromptDetails(details);
204 ASSERT_FALSE(IsScrollbarVisible()) << "Scrollbar is visible"; 193 ASSERT_FALSE(IsScrollbarVisible()) << "Scrollbar is visible";
205 } 194 }
206 195
207 class ExtensionInstallDialogViewTest 196 class ExtensionInstallDialogViewTest
208 : public ExtensionInstallDialogViewTestBase { 197 : public ExtensionInstallDialogViewTestBase {
209 protected: 198 protected:
210 ExtensionInstallDialogViewTest() 199 ExtensionInstallDialogViewTest()
211 : ExtensionInstallDialogViewTestBase( 200 : ExtensionInstallDialogViewTestBase(
212 ExtensionInstallPrompt::INSTALL_PROMPT) {} 201 ExtensionInstallPrompt::INSTALL_PROMPT) {}
213 ~ExtensionInstallDialogViewTest() override {} 202 ~ExtensionInstallDialogViewTest() override {}
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 MockExtensionInstallPromptDelegate delegate; 246 MockExtensionInstallPromptDelegate delegate;
258 scoped_ptr<ExtensionInstallDialogView> dialog( 247 scoped_ptr<ExtensionInstallDialogView> dialog(
259 new ExtensionInstallDialogView( 248 new ExtensionInstallDialogView(
260 profile(), web_contents(), &delegate, prompt())); 249 profile(), web_contents(), &delegate, prompt()));
261 dialog.reset(); 250 dialog.reset();
262 251
263 EXPECT_EQ(1, delegate.abort_count()); 252 EXPECT_EQ(1, delegate.abort_count());
264 EXPECT_EQ(0, delegate.proceed_count()); 253 EXPECT_EQ(0, delegate.proceed_count());
265 } 254 }
266 } 255 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698