| 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);
|
| +}
|
|
|