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 #import "chrome/browser/ui/cocoa/profiles/profile_chooser_controller.h" | 5 #import "chrome/browser/ui/cocoa/profiles/profile_chooser_controller.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #import "base/mac/foundation_util.h" | 10 #import "base/mac/foundation_util.h" |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 EXPECT_TRUE([[subviews objectAtIndex:3] isKindOfClass:[NSBox class]]); | 425 EXPECT_TRUE([[subviews objectAtIndex:3] isKindOfClass:[NSBox class]]); |
426 | 426 |
427 // There should be the profile avatar, name and a "hide accounts" link | 427 // There should be the profile avatar, name and a "hide accounts" link |
428 // container in the active card view. | 428 // container in the active card view. |
429 NSArray* activeCardSubviews = [[subviews objectAtIndex:4] subviews]; | 429 NSArray* activeCardSubviews = [[subviews objectAtIndex:4] subviews]; |
430 // In the MD user menu, the profile name and avatar are in the same subview. | 430 // In the MD user menu, the profile name and avatar are in the same subview. |
431 ASSERT_EQ(2U, [activeCardSubviews count]); | 431 ASSERT_EQ(2U, [activeCardSubviews count]); |
432 } | 432 } |
433 | 433 |
434 TEST_F(ProfileChooserControllerTest, SignedInProfileLockDisabled) { | 434 TEST_F(ProfileChooserControllerTest, SignedInProfileLockDisabled) { |
435 switches::EnableNewProfileManagementForTesting( | |
436 base::CommandLine::ForCurrentProcess()); | |
437 | |
438 SignInFirstProfile(); | 435 SignInFirstProfile(); |
439 | 436 |
440 // The preference, not the email, determines whether the profile can lock. | 437 // The preference, not the email, determines whether the profile can lock. |
441 browser()->profile()->GetPrefs()->SetString( | 438 browser()->profile()->GetPrefs()->SetString( |
442 prefs::kGoogleServicesHostedDomain, "chromium.org"); | 439 prefs::kGoogleServicesHostedDomain, "chromium.org"); |
443 | 440 |
444 StartProfileChooserController(); | 441 StartProfileChooserController(); |
445 NSArray* subviews = [[[controller() window] contentView] subviews]; | 442 NSArray* subviews = [[[controller() window] contentView] subviews]; |
446 ASSERT_EQ(2U, [subviews count]); | 443 ASSERT_EQ(2U, [subviews count]); |
447 subviews = [[subviews objectAtIndex:0] subviews]; | 444 subviews = [[subviews objectAtIndex:0] subviews]; |
448 | 445 |
449 NSArray* buttonSubviews = [[subviews objectAtIndex:0] subviews]; | 446 NSArray* buttonSubviews = [[subviews objectAtIndex:0] subviews]; |
450 // There will be two buttons in the option buttons view. | 447 // There will be two buttons in the option buttons view. |
451 ASSERT_EQ(2U, [buttonSubviews count]); | 448 ASSERT_EQ(2U, [buttonSubviews count]); |
452 | 449 |
453 // The last button should not be the lock button. | 450 // The last button should not be the lock button. |
454 NSButton* lastButton = | 451 NSButton* lastButton = |
455 base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:0]); | 452 base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:0]); |
456 ASSERT_TRUE(lastButton); | 453 ASSERT_TRUE(lastButton); |
457 EXPECT_NE(@selector(lockProfile:), [lastButton action]); | 454 EXPECT_NE(@selector(lockProfile:), [lastButton action]); |
458 } | 455 } |
459 | 456 |
460 TEST_F(ProfileChooserControllerTest, SignedInProfileLockEnabled) { | 457 TEST_F(ProfileChooserControllerTest, SignedInProfileLockEnabled) { |
461 switches::EnableNewProfileManagementForTesting( | |
462 base::CommandLine::ForCurrentProcess()); | |
463 | |
464 SignInFirstProfile(); | 458 SignInFirstProfile(); |
465 | 459 |
466 // The preference, not the email, determines whether the profile can lock. | 460 // The preference, not the email, determines whether the profile can lock. |
467 browser()->profile()->GetPrefs()->SetString( | 461 browser()->profile()->GetPrefs()->SetString( |
468 prefs::kGoogleServicesHostedDomain, "google.com"); | 462 prefs::kGoogleServicesHostedDomain, "google.com"); |
469 // Lock is only available where a supervised user is present. | 463 // Lock is only available where a supervised user is present. |
470 ProfileAttributesEntry* entry = testing_profile_manager()-> | 464 ProfileAttributesEntry* entry = testing_profile_manager()-> |
471 profile_attributes_storage()->GetAllProfilesAttributes().front(); | 465 profile_attributes_storage()->GetAllProfilesAttributes().front(); |
472 entry->SetSupervisedUserId(kEmail); | 466 entry->SetSupervisedUserId(kEmail); |
473 | 467 |
474 StartProfileChooserController(); | 468 StartProfileChooserController(); |
475 NSArray* subviews = [[[controller() window] contentView] subviews]; | 469 NSArray* subviews = [[[controller() window] contentView] subviews]; |
476 ASSERT_EQ(2U, [subviews count]); | 470 ASSERT_EQ(2U, [subviews count]); |
477 subviews = [[subviews objectAtIndex:0] subviews]; | 471 subviews = [[subviews objectAtIndex:0] subviews]; |
478 | 472 |
479 NSArray* buttonSubviews = [[subviews objectAtIndex:0] subviews]; | 473 NSArray* buttonSubviews = [[subviews objectAtIndex:0] subviews]; |
480 // There will be two buttons and one separator in the option buttons view. | 474 // There will be two buttons and one separator in the option buttons view. |
481 ASSERT_EQ(3U, [buttonSubviews count]); | 475 ASSERT_EQ(3U, [buttonSubviews count]); |
482 | 476 |
483 // There should be a lock button. | 477 // There should be a lock button. |
484 NSButton* lockButton = | 478 NSButton* lockButton = |
485 base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:0]); | 479 base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:0]); |
486 ASSERT_TRUE(lockButton); | 480 ASSERT_TRUE(lockButton); |
487 EXPECT_EQ(@selector(lockProfile:), [lockButton action]); | 481 EXPECT_EQ(@selector(lockProfile:), [lockButton action]); |
488 EXPECT_EQ(controller(), [lockButton target]); | 482 EXPECT_EQ(controller(), [lockButton target]); |
489 EXPECT_TRUE([lockButton isEnabled]); | 483 EXPECT_TRUE([lockButton isEnabled]); |
490 } | 484 } |
OLD | NEW |