Commit a09f6fd5 authored by Henrique Grandinetti's avatar Henrique Grandinetti Committed by Commit Bot

Fix DeviceStatusCollector tests that were flaky.

Some of the tests make assetions on pref values, but they were doing so without
guarantees that the latest value were available. To solve the proble, I forced
the pending values to be written to the prefs and moved the assertion to the
callback that is invoked when this operation has finished.

Bug: 891573
Change-Id: I76411e6d93f061b12af2144cc88e9339531dd3a0
Reviewed-on: https://chromium-review.googlesource.com/c/1261995
Commit-Queue: Henrique Grandinetti <hgrandinetti@google.com>
Reviewed-by: default avatarSergey Poromov <poromov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597165}
parent 8bf35ae9
......@@ -2256,6 +2256,18 @@ class ConsumerDeviceStatusCollectorTimeLimitDisabledTest
base::test::ScopedFeatureList scoped_feature_list_;
};
void expectChildScreenTimeMilliseconds(int64_t duration,
TestingPrefServiceSimple* pref_service) {
pref_service->CommitPendingWrite(
base::OnceClosure(),
base::BindOnce(
[](int64_t duration, TestingPrefServiceSimple* pref_service) {
EXPECT_EQ(duration, pref_service->GetInteger(
prefs::kChildScreenTimeMilliseconds));
},
duration, pref_service));
}
TEST_F(ConsumerDeviceStatusCollectorTimeLimitDisabledTest, ReportingBootMode) {
fake_statistics_provider_.SetMachineStatistic(
chromeos::system::kDevSwitchBootKey,
......@@ -2420,9 +2432,8 @@ class ConsumerDeviceStatusCollectorTimeLimitEnabledTest
base::test::ScopedFeatureList scoped_feature_list_;
};
// Fails on all chromeos builders https://crbug.com/891573
TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
DISABLED_ReportingActivityTimesSessionTransistions) {
ReportingActivityTimesSessionTransistions) {
DeviceStateTransitions test_states[] = {
DeviceStateTransitions::kEnterSessionActive,
DeviceStateTransitions::kPeriodicCheckTriggered,
......@@ -2440,16 +2451,14 @@ TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
ASSERT_EQ(1, device_status_.active_period_size());
EXPECT_EQ(5 * ActivePeriodMilliseconds(),
GetActiveMilliseconds(device_status_));
EXPECT_EQ(
5 * ActivePeriodMilliseconds(),
profile_pref_service_.GetInteger(prefs::kChildScreenTimeMilliseconds));
expectChildScreenTimeMilliseconds(5 * ActivePeriodMilliseconds(),
&profile_pref_service_);
EXPECT_EQ(user_account_id_.GetUserEmail(),
device_status_.active_period(0).user_email());
}
// Fails on all chromeos builders https://crbug.com/891573
TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
DISABLED_ReportingActivityTimesSleepTransistions) {
ReportingActivityTimesSleepTransistions) {
DeviceStateTransitions test_states[] = {
DeviceStateTransitions::kEnterSessionActive,
DeviceStateTransitions::kPeriodicCheckTriggered,
......@@ -2466,16 +2475,14 @@ TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
ASSERT_EQ(1, device_status_.active_period_size());
EXPECT_EQ(4 * ActivePeriodMilliseconds(),
GetActiveMilliseconds(device_status_));
EXPECT_EQ(
4 * ActivePeriodMilliseconds(),
profile_pref_service_.GetInteger(prefs::kChildScreenTimeMilliseconds));
expectChildScreenTimeMilliseconds(4 * ActivePeriodMilliseconds(),
&profile_pref_service_);
EXPECT_EQ(user_account_id_.GetUserEmail(),
device_status_.active_period(0).user_email());
}
// Fails on all chromeos builders https://crbug.com/891573
TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
DISABLED_ReportingActivityTimesIdleTransitions) {
ReportingActivityTimesIdleTransitions) {
DeviceStateTransitions test_states[] = {
DeviceStateTransitions::kEnterSessionActive,
DeviceStateTransitions::kPeriodicCheckTriggered,
......@@ -2494,16 +2501,13 @@ TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
ASSERT_EQ(1, device_status_.active_period_size());
EXPECT_EQ(5 * ActivePeriodMilliseconds(),
GetActiveMilliseconds(device_status_));
EXPECT_EQ(
5 * ActivePeriodMilliseconds(),
profile_pref_service_.GetInteger(prefs::kChildScreenTimeMilliseconds));
expectChildScreenTimeMilliseconds(5 * ActivePeriodMilliseconds(),
&profile_pref_service_);
EXPECT_EQ(user_account_id_.GetUserEmail(),
device_status_.active_period(0).user_email());
}
// Fails on all chromeos builders https://crbug.com/891573
TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
DISABLED_ActivityKeptInPref) {
TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest, ActivityKeptInPref) {
EXPECT_TRUE(
profile_pref_service_.GetDictionary(prefs::kUserActivityTimes)->empty());
......@@ -2536,14 +2540,12 @@ TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
GetStatus();
EXPECT_EQ(12 * ActivePeriodMilliseconds(),
GetActiveMilliseconds(device_status_));
EXPECT_EQ(
12 * ActivePeriodMilliseconds(),
profile_pref_service_.GetInteger(prefs::kChildScreenTimeMilliseconds));
expectChildScreenTimeMilliseconds(12 * ActivePeriodMilliseconds(),
&profile_pref_service_);
}
// Fails on all chromeos builders https://crbug.com/891573
TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
DISABLED_ActivityNotWrittenToLocalState) {
ActivityNotWrittenToLocalState) {
EXPECT_TRUE(local_state_.GetDictionary(prefs::kDeviceActivityTimes)->empty());
DeviceStateTransitions test_states[] = {
......@@ -2564,10 +2566,8 @@ TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
EXPECT_EQ(1, device_status_.active_period_size());
EXPECT_EQ(5 * ActivePeriodMilliseconds(),
GetActiveMilliseconds(device_status_));
EXPECT_EQ(
5 * ActivePeriodMilliseconds(),
profile_pref_service_.GetInteger(prefs::kChildScreenTimeMilliseconds));
expectChildScreenTimeMilliseconds(5 * ActivePeriodMilliseconds(),
&profile_pref_service_);
// Nothing should be written to local state, because it is only used for
// enterprise reporting.
EXPECT_TRUE(local_state_.GetDictionary(prefs::kDeviceActivityTimes)->empty());
......@@ -2604,9 +2604,8 @@ TEST_F(ConsumerDeviceStatusCollectorTimeLimitEnabledTest,
kMillisecondsPerDay);
EXPECT_EQ(time_period1.end_timestamp() - time_period1.start_timestamp(),
kMillisecondsPerDay);
EXPECT_EQ(
0.5 * ActivePeriodMilliseconds(),
profile_pref_service_.GetInteger(prefs::kChildScreenTimeMilliseconds));
expectChildScreenTimeMilliseconds(0.5 * ActivePeriodMilliseconds(),
&profile_pref_service_);
}
} // namespace policy
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment