| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| // Utilities to be used by the consistency golden converter unit tests. |
| |
| #ifndef CHROME_BROWSER_ASH_CHILD_ACCOUNTS_TIME_LIMIT_CONSISTENCY_TEST_CONSISTENCY_TEST_UTILS_H_ |
| #define CHROME_BROWSER_ASH_CHILD_ACCOUNTS_TIME_LIMIT_CONSISTENCY_TEST_CONSISTENCY_TEST_UTILS_H_ |
| |
| #include <optional> |
| |
| #include "chrome/browser/ash/child_accounts/time_limit_consistency_test/goldens/consistency_golden.pb.h" |
| |
| namespace ash { |
| namespace time_limit_consistency_utils { |
| |
| // A time of day composed of hours and minutes, used when generating bedtime |
| // entries. |
| struct TimeOfDay { |
| int hour; |
| int minute; |
| }; |
| |
| // Adds a time window limit entry to the provided ConsistencyGoldenInput. |
| void AddWindowLimitEntryToGoldenInput( |
| time_limit_consistency::ConsistencyGoldenInput* golden_input, |
| time_limit_consistency::ConsistencyGoldenEffectiveDay effective_day, |
| const TimeOfDay& starts_at, |
| const TimeOfDay& ends_at, |
| std::optional<int64_t> last_updated); |
| |
| // Adds a usage limit entry to the provided ConsistencyGoldenInput. |
| void AddUsageLimitEntryToGoldenInput( |
| time_limit_consistency::ConsistencyGoldenInput* golden_input, |
| time_limit_consistency::ConsistencyGoldenEffectiveDay effective_day, |
| int usage_quota_mins, |
| std::optional<int64_t> last_updated); |
| |
| // Adds an override to the provided ConsistencyGoldenInput. Must not be used |
| // for UNLOCK_UNTIL_LOCK_DEADLINE actions (will DCHECK()), use |
| // AddTimedOverrideToGoldenInput() instead. |
| void AddOverrideToGoldenInput( |
| time_limit_consistency::ConsistencyGoldenInput* golden_input, |
| time_limit_consistency::ConsistencyGoldenOverrideAction action, |
| int64_t created_at); |
| |
| // Adds a timed override (UNLOCK_UNTIL_LOCK_DEADLINE action) with duration set |
| // to |duration_millis| to the provided ConsistencyGoldenInput. |
| void AddTimedOverrideToGoldenInput( |
| time_limit_consistency::ConsistencyGoldenInput* golden_input, |
| int64_t duration_millis, |
| int64_t created_at); |
| |
| } // namespace time_limit_consistency_utils |
| } // namespace ash |
| |
| #endif // CHROME_BROWSER_ASH_CHILD_ACCOUNTS_TIME_LIMIT_CONSISTENCY_TEST_CONSISTENCY_TEST_UTILS_H_ |