app_package_name_logging_rule_unittests.cc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // Copyright 2021 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "android_webview/common/metrics/app_package_name_logging_rule.h"
  5. #include "base/time/time.h"
  6. #include "base/version.h"
  7. #include "testing/gtest/include/gtest/gtest.h"
  8. #include "third_party/abseil-cpp/absl/types/optional.h"
  9. namespace android_webview {
  10. namespace {
  11. constexpr char kTestAllowlistVersion[] = "123.456.789.10";
  12. } // namespace
  13. class AppPackageNameLoggingRuleTest : public testing::Test {
  14. public:
  15. AppPackageNameLoggingRuleTest() = default;
  16. AppPackageNameLoggingRuleTest& operator=(
  17. const AppPackageNameLoggingRuleTest&) = delete;
  18. AppPackageNameLoggingRuleTest(AppPackageNameLoggingRuleTest&&) = delete;
  19. AppPackageNameLoggingRuleTest& operator=(AppPackageNameLoggingRuleTest&&) =
  20. delete;
  21. };
  22. TEST_F(AppPackageNameLoggingRuleTest, TestFromDictionary) {
  23. base::Version version(kTestAllowlistVersion);
  24. base::Time one_day_from_now = base::Time::Now() + base::Days(1);
  25. {
  26. AppPackageNameLoggingRule expected_record(version, one_day_from_now);
  27. absl::optional<AppPackageNameLoggingRule> record =
  28. AppPackageNameLoggingRule::FromDictionary(
  29. expected_record.ToDictionary());
  30. ASSERT_TRUE(record.has_value());
  31. EXPECT_TRUE(expected_record.IsSameAs(record.value()));
  32. }
  33. {
  34. AppPackageNameLoggingRule expected_record(version, base::Time::Min());
  35. absl::optional<AppPackageNameLoggingRule> record =
  36. AppPackageNameLoggingRule::FromDictionary(
  37. expected_record.ToDictionary());
  38. ASSERT_TRUE(record.has_value());
  39. EXPECT_TRUE(expected_record.IsSameAs(record.value()));
  40. }
  41. {
  42. absl::optional<AppPackageNameLoggingRule> record =
  43. AppPackageNameLoggingRule::FromDictionary(
  44. base::Value(base::Value::Type::DICTIONARY));
  45. EXPECT_FALSE(record.has_value());
  46. }
  47. }
  48. } // namespace android_webview