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

Side by Side Diff: chrome/browser/chromeos/policy/device_status_collector_browsertest.cc

Issue 308643006: Enable enterprise device reporting features by default. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 6 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 (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 #include "chrome/browser/chromeos/policy/device_status_collector.h" 5 #include "chrome/browser/chromeos/policy/device_status_collector.h"
6 6
7 #include "base/environment.h" 7 #include "base/environment.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 // Finish pending tasks. 184 // Finish pending tasks.
185 content::BrowserThread::GetBlockingPool()->FlushForTesting(); 185 content::BrowserThread::GetBlockingPool()->FlushForTesting();
186 message_loop_.RunUntilIdle(); 186 message_loop_.RunUntilIdle();
187 187
188 // Restore the real DeviceSettingsProvider. 188 // Restore the real DeviceSettingsProvider.
189 EXPECT_TRUE( 189 EXPECT_TRUE(
190 cros_settings_->RemoveSettingsProvider(&stub_settings_provider_)); 190 cros_settings_->RemoveSettingsProvider(&stub_settings_provider_));
191 cros_settings_->AddSettingsProvider(device_settings_provider_); 191 cros_settings_->AddSettingsProvider(device_settings_provider_);
192 } 192 }
193 193
194 virtual void SetUp() OVERRIDE {
195 // Disable network interface reporting since it requires additional setup.
196 cros_settings_->SetBoolean(chromeos::kReportDeviceNetworkInterfaces, false);
197 }
198
194 void RestartStatusCollector() { 199 void RestartStatusCollector() {
195 policy::DeviceStatusCollector::LocationUpdateRequester callback = 200 policy::DeviceStatusCollector::LocationUpdateRequester callback =
196 base::Bind(&MockPositionUpdateRequester); 201 base::Bind(&MockPositionUpdateRequester);
197 status_collector_.reset( 202 status_collector_.reset(
198 new TestingDeviceStatusCollector(&prefs_, 203 new TestingDeviceStatusCollector(&prefs_,
199 &statistics_provider_, 204 &statistics_provider_,
200 &callback)); 205 &callback));
201 } 206 }
202 207
203 void GetStatus() { 208 void GetStatus() {
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 423
419 // Collect one more data point to trigger pruning. 424 // Collect one more data point to trigger pruning.
420 status_collector_->Simulate(test_states, 1); 425 status_collector_->Simulate(test_states, 1);
421 426
422 // Check that we don't exceed the max number of periods. 427 // Check that we don't exceed the max number of periods.
423 status_.clear_active_period(); 428 status_.clear_active_period();
424 GetStatus(); 429 GetStatus();
425 EXPECT_LT(status_.active_period_size(), kMaxDays); 430 EXPECT_LT(status_.active_period_size(), kMaxDays);
426 } 431 }
427 432
428 TEST_F(DeviceStatusCollectorTest, ActivityTimesDisabledByDefault) { 433 TEST_F(DeviceStatusCollectorTest, ActivityTimesEnabledByDefault) {
429 // If the pref for collecting device activity times isn't explicitly turned 434 // Device activity times should be reported by default.
430 // on, no data on activity times should be reported. 435 IdleState test_states[] = {
436 IDLE_STATE_ACTIVE,
437 IDLE_STATE_ACTIVE,
438 IDLE_STATE_ACTIVE
439 };
440 status_collector_->Simulate(test_states,
441 sizeof(test_states) / sizeof(IdleState));
442 GetStatus();
443 EXPECT_EQ(1, status_.active_period_size());
444 EXPECT_EQ(3 * ActivePeriodMilliseconds(), GetActiveMilliseconds(status_));
445 }
446
447 TEST_F(DeviceStatusCollectorTest, ActivityTimesOff) {
448 // Device activity times should not be reported if explicitly disabled.
449 cros_settings_->SetBoolean(chromeos::kReportDeviceActivityTimes, false);
431 450
432 IdleState test_states[] = { 451 IdleState test_states[] = {
433 IDLE_STATE_ACTIVE, 452 IDLE_STATE_ACTIVE,
434 IDLE_STATE_ACTIVE, 453 IDLE_STATE_ACTIVE,
435 IDLE_STATE_ACTIVE 454 IDLE_STATE_ACTIVE
436 }; 455 };
437 status_collector_->Simulate(test_states, 456 status_collector_->Simulate(test_states,
438 sizeof(test_states) / sizeof(IdleState)); 457 sizeof(test_states) / sizeof(IdleState));
439 GetStatus(); 458 GetStatus();
440 EXPECT_EQ(0, status_.active_period_size()); 459 EXPECT_EQ(0, status_.active_period_size());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 509
491 // After indicating a successful submit, the submitted status gets cleared, 510 // After indicating a successful submit, the submitted status gets cleared,
492 // but what got collected meanwhile sticks around. 511 // but what got collected meanwhile sticks around.
493 status_collector_->Simulate(test_states, 1); 512 status_collector_->Simulate(test_states, 1);
494 status_collector_->OnSubmittedSuccessfully(); 513 status_collector_->OnSubmittedSuccessfully();
495 GetStatus(); 514 GetStatus();
496 EXPECT_EQ(ActivePeriodMilliseconds(), GetActiveMilliseconds(status_)); 515 EXPECT_EQ(ActivePeriodMilliseconds(), GetActiveMilliseconds(status_));
497 } 516 }
498 517
499 TEST_F(DeviceStatusCollectorTest, DevSwitchBootMode) { 518 TEST_F(DeviceStatusCollectorTest, DevSwitchBootMode) {
500 // Test that boot mode data is not reported if the pref is not turned on. 519 // Test that boot mode data is reported by default.
520 EXPECT_CALL(statistics_provider_,
521 GetMachineStatistic("devsw_boot", NotNull()))
522 .WillOnce(DoAll(SetArgPointee<1>("0"), Return(true)));
523 GetStatus();
524 EXPECT_EQ("Verified", status_.boot_mode());
525
526 // Test that boot mode data is not reported if the pref turned off.
527 cros_settings_->SetBoolean(chromeos::kReportDeviceBootMode, false);
528
501 EXPECT_CALL(statistics_provider_, 529 EXPECT_CALL(statistics_provider_,
502 GetMachineStatistic("devsw_boot", NotNull())) 530 GetMachineStatistic("devsw_boot", NotNull()))
503 .WillRepeatedly(DoAll(SetArgPointee<1>("0"), Return(true))); 531 .WillRepeatedly(DoAll(SetArgPointee<1>("0"), Return(true)));
504 GetStatus(); 532 GetStatus();
505 EXPECT_FALSE(status_.has_boot_mode()); 533 EXPECT_FALSE(status_.has_boot_mode());
506 534
507 // Turn the pref on, and check that the status is reported iff the 535 // Turn the pref on, and check that the status is reported iff the
508 // statistics provider returns valid data. 536 // statistics provider returns valid data.
509 cros_settings_->SetBoolean(chromeos::kReportDeviceBootMode, true); 537 cros_settings_->SetBoolean(chromeos::kReportDeviceBootMode, true);
510 538
(...skipping 16 matching lines...) Expand all
527 EXPECT_EQ("Verified", status_.boot_mode()); 555 EXPECT_EQ("Verified", status_.boot_mode());
528 556
529 EXPECT_CALL(statistics_provider_, 557 EXPECT_CALL(statistics_provider_,
530 GetMachineStatistic("devsw_boot", NotNull())) 558 GetMachineStatistic("devsw_boot", NotNull()))
531 .WillOnce(DoAll(SetArgPointee<1>("1"), Return(true))); 559 .WillOnce(DoAll(SetArgPointee<1>("1"), Return(true)));
532 GetStatus(); 560 GetStatus();
533 EXPECT_EQ("Dev", status_.boot_mode()); 561 EXPECT_EQ("Dev", status_.boot_mode());
534 } 562 }
535 563
536 TEST_F(DeviceStatusCollectorTest, VersionInfo) { 564 TEST_F(DeviceStatusCollectorTest, VersionInfo) {
565 // Expect the version info to be reported by default.
566 GetStatus();
567 EXPECT_TRUE(status_.has_browser_version());
568 EXPECT_TRUE(status_.has_os_version());
569 EXPECT_TRUE(status_.has_firmware_version());
570
537 // When the pref to collect this data is not enabled, expect that none of 571 // When the pref to collect this data is not enabled, expect that none of
538 // the fields are present in the protobuf. 572 // the fields are present in the protobuf.
573 cros_settings_->SetBoolean(chromeos::kReportDeviceVersionInfo, false);
539 GetStatus(); 574 GetStatus();
540 EXPECT_FALSE(status_.has_browser_version()); 575 EXPECT_FALSE(status_.has_browser_version());
541 EXPECT_FALSE(status_.has_os_version()); 576 EXPECT_FALSE(status_.has_os_version());
542 EXPECT_FALSE(status_.has_firmware_version()); 577 EXPECT_FALSE(status_.has_firmware_version());
543 578
544 cros_settings_->SetBoolean(chromeos::kReportDeviceVersionInfo, true); 579 cros_settings_->SetBoolean(chromeos::kReportDeviceVersionInfo, true);
545 GetStatus(); 580 GetStatus();
546 EXPECT_TRUE(status_.has_browser_version()); 581 EXPECT_TRUE(status_.has_browser_version());
547 EXPECT_TRUE(status_.has_os_version()); 582 EXPECT_TRUE(status_.has_os_version());
548 EXPECT_TRUE(status_.has_firmware_version()); 583 EXPECT_TRUE(status_.has_firmware_version());
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 639
605 TEST_F(DeviceStatusCollectorTest, ReportUsers) { 640 TEST_F(DeviceStatusCollectorTest, ReportUsers) {
606 user_manager_->CreatePublicAccountUser("public@localhost"); 641 user_manager_->CreatePublicAccountUser("public@localhost");
607 user_manager_->AddUser("user0@managed.com"); 642 user_manager_->AddUser("user0@managed.com");
608 user_manager_->AddUser("user1@managed.com"); 643 user_manager_->AddUser("user1@managed.com");
609 user_manager_->AddUser("user2@managed.com"); 644 user_manager_->AddUser("user2@managed.com");
610 user_manager_->AddUser("user3@unmanaged.com"); 645 user_manager_->AddUser("user3@unmanaged.com");
611 user_manager_->AddUser("user4@managed.com"); 646 user_manager_->AddUser("user4@managed.com");
612 user_manager_->AddUser("user5@managed.com"); 647 user_manager_->AddUser("user5@managed.com");
613 648
614 // Verify that users are not reported by default. 649 // Verify that users are reported by default.
615 GetStatus(); 650 GetStatus();
616 EXPECT_EQ(0, status_.user_size()); 651 EXPECT_EQ(5, status_.user_size());
617 652
618 // Verify that users are reported after enabling the setting. 653 // Verify that users are reported after enabling the setting.
619 cros_settings_->SetBoolean(chromeos::kReportDeviceUsers, true); 654 cros_settings_->SetBoolean(chromeos::kReportDeviceUsers, true);
620 GetStatus(); 655 GetStatus();
621 EXPECT_EQ(5, status_.user_size()); 656 EXPECT_EQ(5, status_.user_size());
622 EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, status_.user(0).type()); 657 EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, status_.user(0).type());
623 EXPECT_EQ("user0@managed.com", status_.user(0).email()); 658 EXPECT_EQ("user0@managed.com", status_.user(0).email());
624 EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, status_.user(1).type()); 659 EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, status_.user(1).type());
625 EXPECT_EQ("user1@managed.com", status_.user(1).email()); 660 EXPECT_EQ("user1@managed.com", status_.user(1).email());
626 EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, status_.user(2).type()); 661 EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, status_.user(2).type());
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
723 base::RunLoop().RunUntilIdle(); 758 base::RunLoop().RunUntilIdle();
724 } 759 }
725 760
726 virtual void TearDown() OVERRIDE { 761 virtual void TearDown() OVERRIDE {
727 chromeos::NetworkHandler::Shutdown(); 762 chromeos::NetworkHandler::Shutdown();
728 chromeos::DBusThreadManager::Shutdown(); 763 chromeos::DBusThreadManager::Shutdown();
729 } 764 }
730 }; 765 };
731 766
732 TEST_F(DeviceStatusCollectorNetworkInterfacesTest, NetworkInterfaces) { 767 TEST_F(DeviceStatusCollectorNetworkInterfacesTest, NetworkInterfaces) {
768 // Interfaces should be reported by default.
769 GetStatus();
770 EXPECT_TRUE(status_.network_interface_size() > 0);
771
733 // No interfaces should be reported if the policy is off. 772 // No interfaces should be reported if the policy is off.
773 cros_settings_->SetBoolean(chromeos::kReportDeviceNetworkInterfaces, false);
734 GetStatus(); 774 GetStatus();
735 EXPECT_EQ(0, status_.network_interface_size()); 775 EXPECT_EQ(0, status_.network_interface_size());
736 776
737 // Switch the policy on and verify the interface list is present. 777 // Switch the policy on and verify the interface list is present.
738 cros_settings_->SetBoolean(chromeos::kReportDeviceNetworkInterfaces, true); 778 cros_settings_->SetBoolean(chromeos::kReportDeviceNetworkInterfaces, true);
739 GetStatus(); 779 GetStatus();
740 780
741 int count = 0; 781 int count = 0;
742 for (size_t i = 0; i < arraysize(kFakeDevices); ++i) { 782 for (size_t i = 0; i < arraysize(kFakeDevices); ++i) {
743 const FakeDeviceData& dev = kFakeDevices[i]; 783 const FakeDeviceData& dev = kFakeDevices[i];
(...skipping 21 matching lines...) Expand all
765 } 805 }
766 806
767 EXPECT_TRUE(found_match) << "No matching interface for fake device " << i; 807 EXPECT_TRUE(found_match) << "No matching interface for fake device " << i;
768 count++; 808 count++;
769 } 809 }
770 810
771 EXPECT_EQ(count, status_.network_interface_size()); 811 EXPECT_EQ(count, status_.network_interface_size());
772 } 812 }
773 813
774 } // namespace policy 814 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/policy/device_status_collector.cc ('k') | components/policy/resources/policy_templates.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698