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

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

Issue 7835039: Implement the inline extensions/apps install UI for Cocoa. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 EXPECT_NE(0u, [[[controller titleField] stringValue] length]); 137 EXPECT_NE(0u, [[[controller titleField] stringValue] length]);
138 138
139 EXPECT_TRUE([controller subtitleField] != nil); 139 EXPECT_TRUE([controller subtitleField] != nil);
140 EXPECT_NE(0u, [[[controller subtitleField] stringValue] length]); 140 EXPECT_NE(0u, [[[controller subtitleField] stringValue] length]);
141 EXPECT_NE('^', [[[controller subtitleField] stringValue] characterAtIndex:0]); 141 EXPECT_NE('^', [[[controller subtitleField] stringValue] characterAtIndex:0]);
142 142
143 EXPECT_TRUE([controller warningsField] != nil); 143 EXPECT_TRUE([controller warningsField] != nil);
144 EXPECT_NSEQ([[controller warningsField] stringValue], 144 EXPECT_NSEQ([[controller warningsField] stringValue],
145 base::SysUTF16ToNSString(prompt.GetPermission(0))); 145 base::SysUTF16ToNSString(prompt.GetPermission(0)));
146 146
147 EXPECT_TRUE([controller warningsBox] != nil);
148
149 EXPECT_TRUE([controller cancelButton] != nil); 147 EXPECT_TRUE([controller cancelButton] != nil);
150 EXPECT_NE(0u, [[[controller cancelButton] stringValue] length]); 148 EXPECT_NE(0u, [[[controller cancelButton] stringValue] length]);
151 EXPECT_NE('^', [[[controller cancelButton] stringValue] characterAtIndex:0]); 149 EXPECT_NE('^', [[[controller cancelButton] stringValue] characterAtIndex:0]);
152 150
153 EXPECT_TRUE([controller okButton] != nil); 151 EXPECT_TRUE([controller okButton] != nil);
154 EXPECT_NE(0u, [[[controller okButton] stringValue] length]); 152 EXPECT_NE(0u, [[[controller okButton] stringValue] length]);
155 EXPECT_NE('^', [[[controller okButton] stringValue] characterAtIndex:0]); 153 EXPECT_NE('^', [[[controller okButton] stringValue] characterAtIndex:0]);
156 154
157 // Test that cancel calls our delegate. 155 // Test that cancel calls our delegate.
158 [controller cancel:nil]; 156 [controller cancel:nil];
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 227
230 // Test control positioning. We don't test exact positioning because we don't 228 // Test control positioning. We don't test exact positioning because we don't
231 // want this to depend on string details and localization. But we do know the 229 // want this to depend on string details and localization. But we do know the
232 // relative effect that adding a second warning should have on the layout. 230 // relative effect that adding a second warning should have on the layout.
233 ASSERT_LT([[controller1 window] frame].size.height, 231 ASSERT_LT([[controller1 window] frame].size.height,
234 [[controller2 window] frame].size.height); 232 [[controller2 window] frame].size.height);
235 233
236 ASSERT_LT([[controller1 warningsField] frame].size.height, 234 ASSERT_LT([[controller1 warningsField] frame].size.height,
237 [[controller2 warningsField] frame].size.height); 235 [[controller2 warningsField] frame].size.height);
238 236
239 ASSERT_LT([[controller1 warningsBox] frame].size.height,
240 [[controller2 warningsBox] frame].size.height);
241
242 ASSERT_EQ([[controller1 warningsBox] frame].origin.y,
243 [[controller2 warningsBox] frame].origin.y);
244
245 ASSERT_LT([[controller1 subtitleField] frame].origin.y, 237 ASSERT_LT([[controller1 subtitleField] frame].origin.y,
246 [[controller2 subtitleField] frame].origin.y); 238 [[controller2 subtitleField] frame].origin.y);
247 239
248 ASSERT_LT([[controller1 titleField] frame].origin.y, 240 ASSERT_LT([[controller1 titleField] frame].origin.y,
249 [[controller2 titleField] frame].origin.y); 241 [[controller2 titleField] frame].origin.y);
250 } 242 }
251 243
252 // Test that we can load the skinny prompt correctly, and that the outlets are 244 // Test that we can load the skinny prompt correctly, and that the outlets are
253 // are hooked up. 245 // are hooked up.
254 TEST_F(ExtensionInstallDialogControllerTest, BasicsSkinny) { 246 TEST_F(ExtensionInstallDialogControllerTest, BasicsSkinny) {
255 scoped_ptr<MockExtensionInstallUIDelegate> delegate( 247 scoped_ptr<MockExtensionInstallUIDelegate> delegate(
256 new MockExtensionInstallUIDelegate); 248 new MockExtensionInstallUIDelegate);
257 249
258 // No warnings should trigger skinny prompt. 250 // No warnings should trigger skinny prompt.
259 ExtensionInstallUI::Prompt no_warnings_prompt( 251 ExtensionInstallUI::Prompt no_warnings_prompt(
260 ExtensionInstallUI::INSTALL_PROMPT); 252 ExtensionInstallUI::INSTALL_PROMPT);
261 253
262 std::vector<string16> warnings;
263
264 scoped_nsobject<ExtensionInstallDialogController> 254 scoped_nsobject<ExtensionInstallDialogController>
265 controller([[ExtensionInstallDialogController alloc] 255 controller([[ExtensionInstallDialogController alloc]
266 initWithParentWindow:test_window() 256 initWithParentWindow:test_window()
267 profile:helper_.profile() 257 profile:helper_.profile()
268 extension:extension_.get() 258 extension:extension_.get()
269 delegate:delegate.get() 259 delegate:delegate.get()
270 icon:&icon_ 260 icon:&icon_
271 prompt:no_warnings_prompt]); 261 prompt:no_warnings_prompt]);
272 262
273 [controller window]; // force nib load 263 [controller window]; // force nib load
(...skipping 13 matching lines...) Expand all
287 EXPECT_TRUE([controller cancelButton] != nil); 277 EXPECT_TRUE([controller cancelButton] != nil);
288 EXPECT_NE(0u, [[[controller cancelButton] stringValue] length]); 278 EXPECT_NE(0u, [[[controller cancelButton] stringValue] length]);
289 EXPECT_NE('^', [[[controller cancelButton] stringValue] characterAtIndex:0]); 279 EXPECT_NE('^', [[[controller cancelButton] stringValue] characterAtIndex:0]);
290 280
291 EXPECT_TRUE([controller okButton] != nil); 281 EXPECT_TRUE([controller okButton] != nil);
292 EXPECT_NE(0u, [[[controller okButton] stringValue] length]); 282 EXPECT_NE(0u, [[[controller okButton] stringValue] length]);
293 EXPECT_NE('^', [[[controller okButton] stringValue] characterAtIndex:0]); 283 EXPECT_NE('^', [[[controller okButton] stringValue] characterAtIndex:0]);
294 284
295 EXPECT_TRUE([controller subtitleField] == nil); 285 EXPECT_TRUE([controller subtitleField] == nil);
296 EXPECT_TRUE([controller warningsField] == nil); 286 EXPECT_TRUE([controller warningsField] == nil);
297 EXPECT_TRUE([controller warningsBox] == nil);
298 } 287 }
288
289
290 // Test that we can load the inline prompt correctly, and that the outlets are
291 // are hooked up.
292 TEST_F(ExtensionInstallDialogControllerTest, BasicsInline) {
293 scoped_ptr<MockExtensionInstallUIDelegate> delegate(
294 new MockExtensionInstallUIDelegate);
Nico 2011/09/05 22:59:17 Can't you stack-allocate this?
Mihai Parparita -not on Chrome 2011/09/06 00:54:11 Was just following the pattern in the rest of the
295
296 // No warnings should trigger skinny prompt.
297 ExtensionInstallUI::Prompt inline_prompt(
298 ExtensionInstallUI::INLINE_INSTALL_PROMPT);
299 inline_prompt.SetInlineInstallWebstoreData("1,000", 3.5, 200);
300
301 scoped_nsobject<ExtensionInstallDialogController>
302 controller([[ExtensionInstallDialogController alloc]
303 initWithParentWindow:test_window()
304 profile:helper_.profile()
305 extension:extension_.get()
306 delegate:delegate.get()
307 icon:&icon_
308 prompt:inline_prompt]);
309
310 [controller window]; // force nib load
311
312 // Test the right nib loaded.
313 EXPECT_NSEQ(@"ExtensionInstallPromptInline", [controller windowNibName]);
314
315 // Check all the controls.
316 EXPECT_TRUE([controller iconView] != nil);
317 EXPECT_TRUE([[controller iconView] image] != nil);
318
319 EXPECT_TRUE([controller titleField] != nil);
320 EXPECT_NE(0u, [[[controller titleField] stringValue] length]);
321
322 EXPECT_TRUE([controller cancelButton] != nil);
323 EXPECT_NE(0u, [[[controller cancelButton] stringValue] length]);
324 EXPECT_NE('^', [[[controller cancelButton] stringValue] characterAtIndex:0]);
325
326 EXPECT_TRUE([controller okButton] != nil);
327 EXPECT_NE(0u, [[[controller okButton] stringValue] length]);
328 EXPECT_NE('^', [[[controller okButton] stringValue] characterAtIndex:0]);
329
330 EXPECT_TRUE([controller ratingStars] != nil);
331 EXPECT_EQ(5u, [[[controller ratingStars] subviews] count]);
332
333 EXPECT_TRUE([controller ratingCountField] != nil);
334 EXPECT_NE(0u, [[[controller ratingCountField] stringValue] length]);
335
336 EXPECT_TRUE([controller userCountField] != nil);
337 EXPECT_NE(0u, [[[controller userCountField] stringValue] length]);
338
339 // Though we have no permissions warnings, these should still be hooked up,
340 // just invisible
Nico 2011/09/05 22:59:17 trailing .
Mihai Parparita -not on Chrome 2011/09/06 00:54:11 Done.
341 EXPECT_TRUE([controller subtitleField] != nil);
342 EXPECT_TRUE([[controller subtitleField] isHidden]);
343 EXPECT_TRUE([controller warningsField] != nil);
344 EXPECT_TRUE([[controller warningsField] isHidden]);
345 EXPECT_TRUE([controller warningsSeparator] != nil);
346 EXPECT_TRUE([[controller warningsSeparator] isHidden]);
347 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698