| OLD | NEW |
| 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_view_controller.h" | 5 #import "chrome/browser/ui/cocoa/extensions/extension_install_view_controller.h" |
| 6 | 6 |
| 7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 scoped_refptr<extensions::Extension> extension_; | 68 scoped_refptr<extensions::Extension> extension_; |
| 69 }; | 69 }; |
| 70 | 70 |
| 71 } // namespace | 71 } // namespace |
| 72 | 72 |
| 73 // Test that we can load the two kinds of prompts correctly, that the outlets | 73 // Test that we can load the two kinds of prompts correctly, that the outlets |
| 74 // are hooked up, and that the dialog calls cancel when cancel is pressed. | 74 // are hooked up, and that the dialog calls cancel when cancel is pressed. |
| 75 TEST_F(ExtensionInstallViewControllerTest, BasicsNormalCancel) { | 75 TEST_F(ExtensionInstallViewControllerTest, BasicsNormalCancel) { |
| 76 MockExtensionInstallViewDelegate delegate; | 76 MockExtensionInstallViewDelegate delegate; |
| 77 | 77 |
| 78 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt( | 78 std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt( |
| 79 chrome::BuildExtensionInstallPrompt(extension_.get())); | 79 chrome::BuildExtensionInstallPrompt(extension_.get())); |
| 80 ExtensionInstallPrompt::PermissionsType type = | 80 ExtensionInstallPrompt::PermissionsType type = |
| 81 ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; | 81 ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; |
| 82 | 82 |
| 83 PermissionMessages permissions; | 83 PermissionMessages permissions; |
| 84 permissions.push_back(PermissionMessage(base::UTF8ToUTF16("warning 1"), | 84 permissions.push_back(PermissionMessage(base::UTF8ToUTF16("warning 1"), |
| 85 PermissionIDSet())); | 85 PermissionIDSet())); |
| 86 prompt->SetPermissions(permissions, type); | 86 prompt->SetPermissions(permissions, type); |
| 87 base::string16 permissionString = prompt->GetPermission(0, type); | 87 base::string16 permissionString = prompt->GetPermission(0, type); |
| 88 | 88 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 | 126 |
| 127 // Test that cancel calls our callback. | 127 // Test that cancel calls our callback. |
| 128 [controller cancel:nil]; | 128 [controller cancel:nil]; |
| 129 EXPECT_EQ(MockExtensionInstallViewDelegate::Action::CANCEL, | 129 EXPECT_EQ(MockExtensionInstallViewDelegate::Action::CANCEL, |
| 130 delegate.action()); | 130 delegate.action()); |
| 131 } | 131 } |
| 132 | 132 |
| 133 TEST_F(ExtensionInstallViewControllerTest, BasicsNormalOK) { | 133 TEST_F(ExtensionInstallViewControllerTest, BasicsNormalOK) { |
| 134 MockExtensionInstallViewDelegate delegate; | 134 MockExtensionInstallViewDelegate delegate; |
| 135 | 135 |
| 136 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt( | 136 std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt( |
| 137 chrome::BuildExtensionInstallPrompt(extension_.get())); | 137 chrome::BuildExtensionInstallPrompt(extension_.get())); |
| 138 ExtensionInstallPrompt::PermissionsType type = | 138 ExtensionInstallPrompt::PermissionsType type = |
| 139 ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; | 139 ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; |
| 140 | 140 |
| 141 PermissionMessages permissions; | 141 PermissionMessages permissions; |
| 142 permissions.push_back(PermissionMessage(base::UTF8ToUTF16("warning 1"), | 142 permissions.push_back(PermissionMessage(base::UTF8ToUTF16("warning 1"), |
| 143 PermissionIDSet())); | 143 PermissionIDSet())); |
| 144 prompt->SetPermissions(permissions, type); | 144 prompt->SetPermissions(permissions, type); |
| 145 | 145 |
| 146 base::scoped_nsobject<ExtensionInstallViewController> controller( | 146 base::scoped_nsobject<ExtensionInstallViewController> controller( |
| 147 [[ExtensionInstallViewController alloc] | 147 [[ExtensionInstallViewController alloc] |
| 148 initWithProfile:profile() | 148 initWithProfile:profile() |
| 149 navigator:browser() | 149 navigator:browser() |
| 150 delegate:&delegate | 150 delegate:&delegate |
| 151 prompt:std::move(prompt)]); | 151 prompt:std::move(prompt)]); |
| 152 | 152 |
| 153 [controller view]; // Force nib load. | 153 [controller view]; // Force nib load. |
| 154 [controller ok:nil]; | 154 [controller ok:nil]; |
| 155 | 155 |
| 156 EXPECT_EQ(MockExtensionInstallViewDelegate::Action::OKAY, | 156 EXPECT_EQ(MockExtensionInstallViewDelegate::Action::OKAY, |
| 157 delegate.action()); | 157 delegate.action()); |
| 158 } | 158 } |
| 159 | 159 |
| 160 // Test that controls get repositioned when there are two warnings vs one | 160 // Test that controls get repositioned when there are two warnings vs one |
| 161 // warning. | 161 // warning. |
| 162 TEST_F(ExtensionInstallViewControllerTest, MultipleWarnings) { | 162 TEST_F(ExtensionInstallViewControllerTest, MultipleWarnings) { |
| 163 MockExtensionInstallViewDelegate delegate1; | 163 MockExtensionInstallViewDelegate delegate1; |
| 164 MockExtensionInstallViewDelegate delegate2; | 164 MockExtensionInstallViewDelegate delegate2; |
| 165 | 165 |
| 166 scoped_ptr<ExtensionInstallPrompt::Prompt> one_warning_prompt( | 166 std::unique_ptr<ExtensionInstallPrompt::Prompt> one_warning_prompt( |
| 167 chrome::BuildExtensionInstallPrompt(extension_.get())); | 167 chrome::BuildExtensionInstallPrompt(extension_.get())); |
| 168 ExtensionInstallPrompt::PermissionsType type = | 168 ExtensionInstallPrompt::PermissionsType type = |
| 169 ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; | 169 ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; |
| 170 | 170 |
| 171 PermissionMessages permissions; | 171 PermissionMessages permissions; |
| 172 permissions.push_back(PermissionMessage(base::UTF8ToUTF16("warning 1"), | 172 permissions.push_back(PermissionMessage(base::UTF8ToUTF16("warning 1"), |
| 173 PermissionIDSet())); | 173 PermissionIDSet())); |
| 174 one_warning_prompt->SetPermissions(permissions, type); | 174 one_warning_prompt->SetPermissions(permissions, type); |
| 175 | 175 |
| 176 scoped_ptr<ExtensionInstallPrompt::Prompt> two_warnings_prompt( | 176 std::unique_ptr<ExtensionInstallPrompt::Prompt> two_warnings_prompt( |
| 177 chrome::BuildExtensionInstallPrompt(extension_.get())); | 177 chrome::BuildExtensionInstallPrompt(extension_.get())); |
| 178 permissions.push_back(PermissionMessage(base::UTF8ToUTF16("warning 2"), | 178 permissions.push_back(PermissionMessage(base::UTF8ToUTF16("warning 2"), |
| 179 PermissionIDSet())); | 179 PermissionIDSet())); |
| 180 two_warnings_prompt->SetPermissions(permissions, type); | 180 two_warnings_prompt->SetPermissions(permissions, type); |
| 181 | 181 |
| 182 base::scoped_nsobject<ExtensionInstallViewController> controller1( | 182 base::scoped_nsobject<ExtensionInstallViewController> controller1( |
| 183 [[ExtensionInstallViewController alloc] | 183 [[ExtensionInstallViewController alloc] |
| 184 initWithProfile:profile() | 184 initWithProfile:profile() |
| 185 navigator:browser() | 185 navigator:browser() |
| 186 delegate:&delegate1 | 186 delegate:&delegate1 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 206 ASSERT_LT([[controller1 view] frame].size.height, | 206 ASSERT_LT([[controller1 view] frame].size.height, |
| 207 [[controller2 view] frame].size.height); | 207 [[controller2 view] frame].size.height); |
| 208 } | 208 } |
| 209 | 209 |
| 210 // Test that we can load the skinny prompt correctly, and that the outlets are | 210 // Test that we can load the skinny prompt correctly, and that the outlets are |
| 211 // are hooked up. | 211 // are hooked up. |
| 212 TEST_F(ExtensionInstallViewControllerTest, BasicsSkinny) { | 212 TEST_F(ExtensionInstallViewControllerTest, BasicsSkinny) { |
| 213 MockExtensionInstallViewDelegate delegate; | 213 MockExtensionInstallViewDelegate delegate; |
| 214 | 214 |
| 215 // No warnings should trigger skinny prompt. | 215 // No warnings should trigger skinny prompt. |
| 216 scoped_ptr<ExtensionInstallPrompt::Prompt> no_warnings_prompt( | 216 std::unique_ptr<ExtensionInstallPrompt::Prompt> no_warnings_prompt( |
| 217 chrome::BuildExtensionInstallPrompt(extension_.get())); | 217 chrome::BuildExtensionInstallPrompt(extension_.get())); |
| 218 | 218 |
| 219 base::scoped_nsobject<ExtensionInstallViewController> controller( | 219 base::scoped_nsobject<ExtensionInstallViewController> controller( |
| 220 [[ExtensionInstallViewController alloc] | 220 [[ExtensionInstallViewController alloc] |
| 221 initWithProfile:profile() | 221 initWithProfile:profile() |
| 222 navigator:browser() | 222 navigator:browser() |
| 223 delegate:&delegate | 223 delegate:&delegate |
| 224 prompt:std::move(no_warnings_prompt)]); | 224 prompt:std::move(no_warnings_prompt)]); |
| 225 | 225 |
| 226 [controller view]; // Force nib load. | 226 [controller view]; // Force nib load. |
| (...skipping 21 matching lines...) Expand all Loading... |
| 248 EXPECT_FALSE([controller outlineView]); | 248 EXPECT_FALSE([controller outlineView]); |
| 249 } | 249 } |
| 250 | 250 |
| 251 | 251 |
| 252 // Test that we can load the inline prompt correctly, and that the outlets are | 252 // Test that we can load the inline prompt correctly, and that the outlets are |
| 253 // are hooked up. | 253 // are hooked up. |
| 254 TEST_F(ExtensionInstallViewControllerTest, BasicsInline) { | 254 TEST_F(ExtensionInstallViewControllerTest, BasicsInline) { |
| 255 MockExtensionInstallViewDelegate delegate; | 255 MockExtensionInstallViewDelegate delegate; |
| 256 | 256 |
| 257 // No warnings should trigger skinny prompt. | 257 // No warnings should trigger skinny prompt. |
| 258 scoped_ptr<ExtensionInstallPrompt::Prompt> inline_prompt( | 258 std::unique_ptr<ExtensionInstallPrompt::Prompt> inline_prompt( |
| 259 new ExtensionInstallPrompt::Prompt( | 259 new ExtensionInstallPrompt::Prompt( |
| 260 ExtensionInstallPrompt::INLINE_INSTALL_PROMPT)); | 260 ExtensionInstallPrompt::INLINE_INSTALL_PROMPT)); |
| 261 inline_prompt->SetWebstoreData("1,000", true, 3.5, 200); | 261 inline_prompt->SetWebstoreData("1,000", true, 3.5, 200); |
| 262 inline_prompt->set_extension(extension_.get()); | 262 inline_prompt->set_extension(extension_.get()); |
| 263 inline_prompt->set_icon(chrome::LoadInstallPromptIcon()); | 263 inline_prompt->set_icon(chrome::LoadInstallPromptIcon()); |
| 264 | 264 |
| 265 base::scoped_nsobject<ExtensionInstallViewController> controller( | 265 base::scoped_nsobject<ExtensionInstallViewController> controller( |
| 266 [[ExtensionInstallViewController alloc] | 266 [[ExtensionInstallViewController alloc] |
| 267 initWithProfile:profile() | 267 initWithProfile:profile() |
| 268 navigator:browser() | 268 navigator:browser() |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 // just invisible. | 307 // just invisible. |
| 308 EXPECT_TRUE([controller outlineView]); | 308 EXPECT_TRUE([controller outlineView]); |
| 309 EXPECT_TRUE([[[controller outlineView] enclosingScrollView] isHidden]); | 309 EXPECT_TRUE([[[controller outlineView] enclosingScrollView] isHidden]); |
| 310 EXPECT_TRUE([controller warningsSeparator]); | 310 EXPECT_TRUE([controller warningsSeparator]); |
| 311 EXPECT_TRUE([[controller warningsSeparator] isHidden]); | 311 EXPECT_TRUE([[controller warningsSeparator] isHidden]); |
| 312 } | 312 } |
| 313 | 313 |
| 314 TEST_F(ExtensionInstallViewControllerTest, PostInstallPermissionsPrompt) { | 314 TEST_F(ExtensionInstallViewControllerTest, PostInstallPermissionsPrompt) { |
| 315 MockExtensionInstallViewDelegate delegate; | 315 MockExtensionInstallViewDelegate delegate; |
| 316 | 316 |
| 317 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt( | 317 std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt( |
| 318 chrome::BuildExtensionPostInstallPermissionsPrompt(extension_.get())); | 318 chrome::BuildExtensionPostInstallPermissionsPrompt(extension_.get())); |
| 319 ExtensionInstallPrompt::PermissionsType type = | 319 ExtensionInstallPrompt::PermissionsType type = |
| 320 ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; | 320 ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; |
| 321 | 321 |
| 322 PermissionMessages permissions; | 322 PermissionMessages permissions; |
| 323 permissions.push_back(PermissionMessage(base::UTF8ToUTF16("warning 1"), | 323 permissions.push_back(PermissionMessage(base::UTF8ToUTF16("warning 1"), |
| 324 PermissionIDSet())); | 324 PermissionIDSet())); |
| 325 prompt->SetPermissions(permissions, type); | 325 prompt->SetPermissions(permissions, type); |
| 326 | 326 |
| 327 base::scoped_nsobject<ExtensionInstallViewController> controller( | 327 base::scoped_nsobject<ExtensionInstallViewController> controller( |
| (...skipping 10 matching lines...) Expand all Loading... |
| 338 | 338 |
| 339 [controller cancel:nil]; | 339 [controller cancel:nil]; |
| 340 EXPECT_EQ(MockExtensionInstallViewDelegate::Action::CANCEL, | 340 EXPECT_EQ(MockExtensionInstallViewDelegate::Action::CANCEL, |
| 341 delegate.action()); | 341 delegate.action()); |
| 342 } | 342 } |
| 343 | 343 |
| 344 // Test that permission details show up. | 344 // Test that permission details show up. |
| 345 TEST_F(ExtensionInstallViewControllerTest, PermissionsDetails) { | 345 TEST_F(ExtensionInstallViewControllerTest, PermissionsDetails) { |
| 346 MockExtensionInstallViewDelegate delegate; | 346 MockExtensionInstallViewDelegate delegate; |
| 347 | 347 |
| 348 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt( | 348 std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt( |
| 349 chrome::BuildExtensionInstallPrompt(extension_.get())); | 349 chrome::BuildExtensionInstallPrompt(extension_.get())); |
| 350 ExtensionInstallPrompt::PermissionsType type = | 350 ExtensionInstallPrompt::PermissionsType type = |
| 351 ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; | 351 ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; |
| 352 | 352 |
| 353 PermissionMessages permissions; | 353 PermissionMessages permissions; |
| 354 permissions.push_back(PermissionMessage( | 354 permissions.push_back(PermissionMessage( |
| 355 base::UTF8ToUTF16("warning 1"), | 355 base::UTF8ToUTF16("warning 1"), |
| 356 PermissionIDSet(), | 356 PermissionIDSet(), |
| 357 std::vector<base::string16>(1, base::UTF8ToUTF16("Detail 1")))); | 357 std::vector<base::string16>(1, base::UTF8ToUTF16("Detail 1")))); |
| 358 prompt->SetPermissions(permissions, type); | 358 prompt->SetPermissions(permissions, type); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 370 [controller view]; // Force nib load. | 370 [controller view]; // Force nib load. |
| 371 | 371 |
| 372 NSOutlineView* outlineView = [controller outlineView]; | 372 NSOutlineView* outlineView = [controller outlineView]; |
| 373 EXPECT_TRUE(outlineView); | 373 EXPECT_TRUE(outlineView); |
| 374 EXPECT_EQ(4, [outlineView numberOfRows]); | 374 EXPECT_EQ(4, [outlineView numberOfRows]); |
| 375 EXPECT_NSEQ(base::SysUTF16ToNSString(permissionString), | 375 EXPECT_NSEQ(base::SysUTF16ToNSString(permissionString), |
| 376 [[outlineView dataSource] outlineView:outlineView | 376 [[outlineView dataSource] outlineView:outlineView |
| 377 objectValueForTableColumn:nil | 377 objectValueForTableColumn:nil |
| 378 byItem:[outlineView itemAtRow:2]]); | 378 byItem:[outlineView itemAtRow:2]]); |
| 379 } | 379 } |
| OLD | NEW |