skottie_resource_metadata_unittest.cc 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 "cc/paint/skottie_resource_metadata.h"
  5. #include "base/files/file_path.h"
  6. #include "testing/gmock/include/gmock/gmock.h"
  7. #include "testing/gtest/include/gtest/gtest.h"
  8. #include "ui/gfx/geometry/size.h"
  9. namespace cc {
  10. namespace {
  11. using ::testing::AllOf;
  12. using ::testing::Eq;
  13. using ::testing::FieldsAre;
  14. using ::testing::Ne;
  15. using ::testing::Optional;
  16. using ::testing::Pair;
  17. using ::testing::UnorderedElementsAre;
  18. TEST(SkottieResourceMetadataTest, SkottieResourceMetadataMapRegistersAssets) {
  19. SkottieResourceMetadataMap resource_map;
  20. ASSERT_TRUE(
  21. resource_map.RegisterAsset("test-resource-path-1", "test-resource-name-1",
  22. "test-resource-id-1", gfx::Size(100, 100)));
  23. ASSERT_TRUE(resource_map.RegisterAsset("test-resource-path-2",
  24. "test-resource-name-2",
  25. "test-resource-id-2", absl::nullopt));
  26. EXPECT_THAT(
  27. resource_map.asset_storage(),
  28. UnorderedElementsAre(
  29. Pair("test-resource-id-1",
  30. FieldsAre(base::FilePath(
  31. FILE_PATH_LITERAL(
  32. "test-resource-path-1/test-resource-name-1"))
  33. .NormalizePathSeparators(),
  34. Optional(gfx::Size(100, 100)))),
  35. Pair("test-resource-id-2",
  36. FieldsAre(base::FilePath(
  37. FILE_PATH_LITERAL(
  38. "test-resource-path-2/test-resource-name-2"))
  39. .NormalizePathSeparators(),
  40. Eq(absl::nullopt)))));
  41. }
  42. TEST(SkottieResourceMetadataTest,
  43. SkottieResourceMetadataMapRejectsDuplicateAssets) {
  44. SkottieResourceMetadataMap resource_map;
  45. ASSERT_TRUE(resource_map.RegisterAsset("test-resource-path-1",
  46. "test-resource-name-1",
  47. "test-resource-id-1", absl::nullopt));
  48. EXPECT_FALSE(resource_map.RegisterAsset("test-resource-path-2",
  49. "test-resource-name-2",
  50. "test-resource-id-1", absl::nullopt));
  51. }
  52. TEST(SkottieResourceMetadataTest,
  53. SkottieResourceMetadataMapRejectsEmptyAssets) {
  54. SkottieResourceMetadataMap resource_map;
  55. EXPECT_FALSE(resource_map.RegisterAsset("test-resource-path",
  56. "test-resource-name",
  57. /*resource_id=*/"", absl::nullopt));
  58. }
  59. TEST(SkottieResourceMetadataTest,
  60. SkottieResourceMetadataMapRejectsAbsoluteResourceNames) {
  61. SkottieResourceMetadataMap resource_map;
  62. EXPECT_FALSE(resource_map.RegisterAsset("test-resource-path",
  63. "/absolute-resource-name",
  64. /*resource_id=*/"", absl::nullopt));
  65. }
  66. TEST(SkottieResourceMetadataTest, HashSkottieResourceIdReturnsMatchingHashes) {
  67. EXPECT_THAT(HashSkottieResourceId("test-resource-id-1"),
  68. Eq(HashSkottieResourceId("test-resource-id-1")));
  69. }
  70. TEST(SkottieResourceMetadataTest, HashSkottieResourceIdReturnsDifferentHashes) {
  71. EXPECT_THAT(HashSkottieResourceId("test-resource-id-1"),
  72. Ne(HashSkottieResourceId("test-resource-id-2")));
  73. }
  74. } // namespace
  75. } // namespace cc