#include "ash/ambient/model/ambient_animation_photo_config.h"
#include <optional>
#include "ash/ambient/test/ambient_test_util.h"
#include "cc/paint/skottie_resource_metadata.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace ash {
using ::testing::Eq;
TEST(AmbientAnimationPhotoConfigTest, SetsTopicSetFields) {
cc::SkottieResourceMetadataMap skottie_resource_metadata;
AmbientPhotoConfig config =
CreateAmbientAnimationPhotoConfig(skottie_resource_metadata);
EXPECT_THAT(config.topic_set_size, Eq(0u));
EXPECT_THAT(config.num_topic_sets_to_buffer, Eq(0u));
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0",
GenerateLottieDynamicAssetIdForTesting("A", 1),
std::nullopt));
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0",
GenerateLottieDynamicAssetIdForTesting("B", 1),
std::nullopt));
config = CreateAmbientAnimationPhotoConfig(skottie_resource_metadata);
EXPECT_THAT(config.topic_set_size, Eq(2u));
EXPECT_THAT(config.num_topic_sets_to_buffer, Eq(1u));
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0",
GenerateLottieDynamicAssetIdForTesting("A", 2),
std::nullopt));
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0",
GenerateLottieDynamicAssetIdForTesting("B", 2),
std::nullopt));
config = CreateAmbientAnimationPhotoConfig(skottie_resource_metadata);
EXPECT_THAT(config.topic_set_size, Eq(2u));
EXPECT_THAT(config.num_topic_sets_to_buffer, Eq(2u));
}
TEST(AmbientAnimationPhotoConfigTest, DoesNotCountStaticAssets) {
cc::SkottieResourceMetadataMap skottie_resource_metadata;
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0",
GenerateLottieDynamicAssetIdForTesting("A", 1),
std::nullopt));
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0",
GenerateLottieDynamicAssetIdForTesting("B", 1),
std::nullopt));
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0", "StaticAssetId1",
std::nullopt));
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0", "StaticAssetId2",
std::nullopt));
AmbientPhotoConfig config =
CreateAmbientAnimationPhotoConfig(skottie_resource_metadata);
EXPECT_THAT(config.topic_set_size, Eq(2u));
EXPECT_THAT(config.num_topic_sets_to_buffer, Eq(1u));
}
TEST(AmbientAnimationPhotoConfigTest, FatalIfAnimationAssetIdsInvalid) {
cc::SkottieResourceMetadataMap skottie_resource_metadata;
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0",
GenerateLottieDynamicAssetIdForTesting("A", 1),
std::nullopt));
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0",
GenerateLottieDynamicAssetIdForTesting("A", 2),
std::nullopt));
ASSERT_TRUE(skottie_resource_metadata.RegisterAsset(
"test-resource-path", "test-resource-name-0",
GenerateLottieDynamicAssetIdForTesting("B", 1),
std::nullopt));
EXPECT_DEATH_IF_SUPPORTED(
CreateAmbientAnimationPhotoConfig(skottie_resource_metadata), "");
}
}