diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index d17076d..d82fd56 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -97,6 +97,11 @@
     target_include_directories(avifalphapremtest PRIVATE ${GTEST_INCLUDE_DIRS})
     add_test(NAME avifalphapremtest COMMAND avifalphapremtest)
 
+    add_executable(avifanimationtest gtest/avifanimationtest.cc)
+    target_link_libraries(avifanimationtest aviftest_helpers ${GTEST_LIBRARIES})
+    target_include_directories(avifanimationtest PRIVATE ${GTEST_INCLUDE_DIRS})
+    add_test(NAME avifanimationtest COMMAND avifanimationtest ${CMAKE_CURRENT_SOURCE_DIR}/data/)
+
     add_executable(avifbasictest gtest/avifbasictest.cc)
     target_link_libraries(avifbasictest aviftest_helpers ${GTEST_BOTH_LIBRARIES})
     target_include_directories(avifbasictest PRIVATE ${GTEST_INCLUDE_DIRS})
diff --git a/tests/data/README.md b/tests/data/README.md
index e006467..264633a 100644
--- a/tests/data/README.md
+++ b/tests/data/README.md
@@ -419,6 +419,24 @@
 [`cavif-rs`](https://github.com/kornelski/cavif-rs) with the
 [alpha `ispe` fix](https://github.com/kornelski/avif-serialize/pull/4) removed.
 
+## Animated Images
+
+### File [colors-animated-8bpc.avif](colors-animated-8bpc.avif)
+
+![](colors-animated-8bpc.avif)
+
+License: [same as libavif](https://github.com/AOMediaCodec/libavif/blob/main/LICENSE)
+
+Source: Random colors generated with ffmpeg.
+
+An animated AVIF image file with the following attributes:
+* Width: 150
+* Height: 150
+* Alpha present: No
+* YUV Format: 420
+* Repetition Count: 0
+* Frame count: 5
+
 # Other Test Files
 
 ### File [sRGB2014.icc](sRGB2014.icc)
diff --git a/tests/data/colors-animated-8bpc.avif b/tests/data/colors-animated-8bpc.avif
new file mode 100644
index 0000000..afa875d
--- /dev/null
+++ b/tests/data/colors-animated-8bpc.avif
Binary files differ
diff --git a/tests/gtest/avifanimationtest.cc b/tests/gtest/avifanimationtest.cc
new file mode 100644
index 0000000..4b89058
--- /dev/null
+++ b/tests/gtest/avifanimationtest.cc
@@ -0,0 +1,46 @@
+// Copyright 2023 Google LLC
+// SPDX-License-Identifier: BSD-2-Clause
+
+#include "avif/avif.h"
+#include "aviftest_helpers.h"
+#include "gtest/gtest.h"
+
+namespace libavif {
+namespace {
+
+// Used to pass the data folder path to the GoogleTest suites.
+const char* data_path = nullptr;
+
+TEST(AvifDecodeTest, AnimatedImage) {
+  if (!testutil::Av1DecoderAvailable()) {
+    GTEST_SKIP() << "AV1 Codec unavailable, skip test.";
+  }
+  const char* file_name = "colors-animated-8bpc.avif";
+  testutil::AvifDecoderPtr decoder(avifDecoderCreate(), avifDecoderDestroy);
+  ASSERT_NE(decoder, nullptr);
+  ASSERT_EQ(avifDecoderSetIOFile(decoder.get(),
+                                 (std::string(data_path) + file_name).c_str()),
+            AVIF_RESULT_OK);
+  ASSERT_EQ(avifDecoderParse(decoder.get()), AVIF_RESULT_OK);
+  EXPECT_EQ(decoder->alphaPresent, AVIF_FALSE);
+  EXPECT_EQ(decoder->imageCount, 5);
+  EXPECT_EQ(decoder->repetitionCount, 0);
+  for (int i = 0; i < 5; ++i) {
+    EXPECT_EQ(avifDecoderNextImage(decoder.get()), AVIF_RESULT_OK);
+  }
+}
+
+}  // namespace
+}  // namespace libavif
+
+int main(int argc, char** argv) {
+  ::testing::InitGoogleTest(&argc, argv);
+  if (argc != 2) {
+    std::cerr << "There must be exactly one argument containing the path to "
+                 "the test data folder"
+              << std::endl;
+    return 1;
+  }
+  libavif::data_path = argv[1];
+  return RUN_ALL_TESTS();
+}
