diff --git a/src/Magnum/Test/ResourceManagerTest.cpp b/src/Magnum/Test/ResourceManagerTest.cpp index 89a68179a..9e0dfed69 100644 --- a/src/Magnum/Test/ResourceManagerTest.cpp +++ b/src/Magnum/Test/ResourceManagerTest.cpp @@ -221,9 +221,15 @@ void ResourceManagerTest::state() { void ResourceManagerTest::stateFallback() { { ResourceManager rm; - rm.setFallback(Containers::pointer()); + /* Fetching a resource that's not loaded first */ Resource data = rm.get("data"); + CORRADE_VERIFY(!data); + CORRADE_COMPARE(data.state(), ResourceState::NotLoaded); + CORRADE_COMPARE(rm.state("data"), ResourceState::NotLoaded); + + /* Setting a fallback should make the resource fetch it */ + rm.setFallback(Containers::pointer()); CORRADE_VERIFY(data); CORRADE_COMPARE(data.state(), ResourceState::NotLoadedFallback); CORRADE_COMPARE(rm.state("data"), ResourceState::NotLoadedFallback); @@ -240,6 +246,12 @@ void ResourceManagerTest::stateFallback() { /* Only fallback is here */ CORRADE_COMPARE(Data::count, 1); + + /* Unsetting a fallback should make the resource go back to empty */ + rm.setFallback(nullptr); + CORRADE_VERIFY(!data); + CORRADE_COMPARE(data.state(), ResourceState::NotFound); + CORRADE_COMPARE(rm.state("data"), ResourceState::NotFound); } /* Fallback gets destroyed */