Add clear method in FlutterEngineCache to clear all cached Flutter engines #78420 (flutter/engine#25280)

This commit is contained in:
Karl 2021-03-30 00:59:01 +08:00 committed by GitHub
parent 2fbbfd1208
commit fcb807db42
2 changed files with 27 additions and 0 deletions

View File

@ -82,4 +82,9 @@ public class FlutterEngineCache {
public void remove(@NonNull String engineId) {
put(engineId, null);
}
/** Removes all {@link FlutterEngine}'s that are currently in the cache. */
public void clear() {
cachedEngines.clear();
}
}

View File

@ -55,4 +55,26 @@ public class FlutterEngineCacheTest {
// --- Verify Results ---
assertNull(cache.get("my_flutter_engine"));
}
@Test
public void itRemovesAllFlutterEngines() {
// --- Test Setup ---
FlutterEngine flutterEngine = mock(FlutterEngine.class);
FlutterEngine flutterEngine2 = mock(FlutterEngine.class);
FlutterEngineCache cache = new FlutterEngineCache();
// --- Execute Test ---
cache.put("my_flutter_engine", flutterEngine);
cache.put("my_flutter_engine_2", flutterEngine2);
// --- Verify Results ---
assertEquals(flutterEngine, cache.get("my_flutter_engine"));
assertEquals(flutterEngine2, cache.get("my_flutter_engine_2"));
cache.clear();
// --- Verify Results ---
assertNull(cache.get("my_flutter_engine"));
assertNull(cache.get("my_flutter_engine_2"));
}
}