Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(925)

Unified Diff: ui/file_manager/file_manager/foreground/js/list_thumbnail_loader_unittest.js

Issue 884003003: Add cache size and number of prefetch tasks limitations to list thumbnail loader. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add TODO. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/file_manager/file_manager/foreground/js/list_thumbnail_loader_unittest.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/file_manager/file_manager/foreground/js/list_thumbnail_loader_unittest.js
diff --git a/ui/file_manager/file_manager/foreground/js/list_thumbnail_loader_unittest.js b/ui/file_manager/file_manager/foreground/js/list_thumbnail_loader_unittest.js
index 8392ab1315b03714dfd9bc8cf6fbfdd9cb593e04..a95b17bb5f18680ae8a4c2f13482fc0e4e177811 100644
--- a/ui/file_manager/file_manager/foreground/js/list_thumbnail_loader_unittest.js
+++ b/ui/file_manager/file_manager/foreground/js/list_thumbnail_loader_unittest.js
@@ -52,9 +52,12 @@ var entry2 = new MockEntry(fileSystem, '/Test2.jpg');
var entry3 = new MockEntry(fileSystem, '/Test3.jpg');
var entry4 = new MockEntry(fileSystem, '/Test4.jpg');
var entry5 = new MockEntry(fileSystem, '/Test5.jpg');
+var entry6 = new MockEntry(fileSystem, '/Test6.jpg');
function setUp() {
ListThumbnailLoader.NUM_OF_MAX_ACTIVE_TASKS = 2;
+ ListThumbnailLoader.NUM_OF_PREFETCH = 1;
+ ListThumbnailLoader.CACHE_SIZE = 5;
MockThumbnailLoader.setTestImageDataUrl(generateSampleImageDataUrl(document));
getOneCallbacks = {};
@@ -81,6 +84,14 @@ function resolveGetOneCallback(url) {
delete getOneCallbacks[url];
}
+function areEntriesInCache(entries) {
+ for (var i = 0; i < entries.length; i++) {
+ if (null === listThumbnailLoader.getThumbnailFromCache(entries[i]))
+ return false;
+ }
+ return true;
+}
+
/**
* Story test for list thumbnail loader.
*/
@@ -142,14 +153,6 @@ function testStory(callback) {
!!getOneCallbacks[entry4.toURL()] &&
Object.keys(getOneCallbacks).length === 2;
});
- }).then(function() {
- // Cache is deleted when the item is removed from the list.
- var result = fileListModel.splice(2, 1); // Remove Test2.jpg.
-
- // Fail to fetch thumbnail from cache.
- return waitUntil(function() {
- return listThumbnailLoader.getThumbnailFromCache(entry2) === null;
- });
}), callback);
}
@@ -167,3 +170,54 @@ function testRangeIsAtTheEndOfList() {
assertEquals('filesystem:volume-id/Test5.jpg',
Object.keys(getOneCallbacks)[0]);
}
+
+function testCache(callback) {
+ ListThumbnailLoader.NUM_OF_MAX_ACTIVE_TASKS = 5;
+
+ // Set high priority range to 0 - 2.
+ listThumbnailLoader.setHighPriorityRange(0, 2);
+ fileListModel.push(entry1, entry2, entry3, entry4, entry5, entry6);
+
+ resolveGetOneCallback(entry1.toURL());
+ // In this test case, entry 3 is resolved earlier than entry 2.
+ resolveGetOneCallback(entry3.toURL());
+ resolveGetOneCallback(entry2.toURL());
+ assertEquals(0, Object.keys(getOneCallbacks).length);
+
+ reportPromise(waitUntil(function() {
+ return areEntriesInCache([entry3, entry2, entry1]);
+ }).then(function() {
+ // Move high priority range to 1 - 3.
+ listThumbnailLoader.setHighPriorityRange(1, 3);
+ resolveGetOneCallback(entry4.toURL());
+ assertEquals(0, Object.keys(getOneCallbacks).length);
+
+ return waitUntil(function() {
+ return areEntriesInCache([entry4, entry3, entry2, entry1]);
+ });
+ }).then(function() {
+ // Move high priority range to 4 - 6.
+ listThumbnailLoader.setHighPriorityRange(4, 6);
+ resolveGetOneCallback(entry5.toURL());
+ resolveGetOneCallback(entry6.toURL());
+ assertEquals(0, Object.keys(getOneCallbacks).length);
+
+ return waitUntil(function() {
+ return areEntriesInCache([entry6, entry5, entry4, entry3, entry2]);
+ });
+ }).then(function() {
+ // Move high priority range to 3 - 5.
+ listThumbnailLoader.setHighPriorityRange(3, 5);
+ assertEquals(0, Object.keys(getOneCallbacks).length);
+ assertTrue(areEntriesInCache([entry6, entry5, entry4, entry3, entry2]));
+
+ // Move high priority range to 0 - 2.
+ listThumbnailLoader.setHighPriorityRange(0, 2);
+ resolveGetOneCallback(entry1.toURL());
+ assertEquals(0, Object.keys(getOneCallbacks).length);
+
+ return waitUntil(function() {
+ return areEntriesInCache([entry3, entry2, entry1, entry6, entry5]);
+ });
+ }), callback);
+}
« no previous file with comments | « ui/file_manager/file_manager/foreground/js/list_thumbnail_loader_unittest.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698