diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/renderer/image_manager.test.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/renderer/image_manager.test.cpp b/test/renderer/image_manager.test.cpp index 16700d713f..20c0a3a7f3 100644 --- a/test/renderer/image_manager.test.cpp +++ b/test/renderer/image_manager.test.cpp @@ -187,6 +187,30 @@ TEST(ImageManager, OnStyleImageMissingBeforeSpriteLoaded) { EXPECT_EQ(observer.count, 1); ASSERT_TRUE(notified); + // Repeated request of the same image shall not result another + // `ImageManagerObserver.onStyleImageMissing()` call. + imageManager.getImages(requestor, std::make_pair(dependencies, ++imageCorrelationID)); + runLoop.runOnce(); + + EXPECT_EQ(observer.count, 1); + + // Request for updated dependencies must be dispatched to the + // observer. + dependencies.emplace("post", ImageType::Icon); + imageManager.getImages(requestor, std::make_pair(dependencies, ++imageCorrelationID)); + runLoop.runOnce(); + + EXPECT_EQ(observer.count, 2); + + // Another requestor shall not have pending requests for already obtained images. + StubImageRequestor anotherRequestor(imageManager); + imageManager.getImages(anotherRequestor, std::make_pair(dependencies, ++imageCorrelationID)); + ASSERT_FALSE(anotherRequestor.hasPendingRequests()); + + dependencies.emplace("unfamiliar", ImageType::Icon); + imageManager.getImages(anotherRequestor, std::make_pair(dependencies, ++imageCorrelationID)); + EXPECT_TRUE(anotherRequestor.hasPendingRequests()); + EXPECT_TRUE(anotherRequestor.hasPendingRequest("unfamiliar")); } TEST(ImageManager, OnStyleImageMissingAfterSpriteLoaded) { |