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 5c288ce4d4baaa2dda54841e1414058a6d8e0416..8392ab1315b03714dfd9bc8cf6fbfdd9cb593e04 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 |
@@ -41,37 +41,50 @@ function generateSampleImageDataUrl(document) { |
return canvas.toDataURL('image/jpeg', 0.5); |
} |
-/** |
- * Story test for list thumbnail loader. |
- */ |
-function testStory(callback) { |
+var listThumbnailLoader; |
+var getOneCallbacks; |
+var thumbnailLoadedEvents; |
+var fileListModel; |
+var fileSystem = new MockFileSystem('volume-id'); |
+var directory1 = new MockDirectoryEntry(fileSystem, '/TestDirectory'); |
+var entry1 = new MockEntry(fileSystem, '/Test1.jpg'); |
+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'); |
+ |
+function setUp() { |
ListThumbnailLoader.NUM_OF_MAX_ACTIVE_TASKS = 2; |
MockThumbnailLoader.setTestImageDataUrl(generateSampleImageDataUrl(document)); |
- var getOneCallbacks = {}; |
+ getOneCallbacks = {}; |
var metadataCache = { |
getOne: function(entry, type, callback) { |
getOneCallbacks[entry.toURL()] = callback; |
} |
}; |
- var fileListModel = new FileListModel(metadataCache); |
+ fileListModel = new FileListModel(metadataCache); |
+ |
+ listThumbnailLoader = new ListThumbnailLoader(fileListModel, metadataCache, |
+ document, MockThumbnailLoader); |
- var listThumbnailLoader = new ListThumbnailLoader(fileListModel, |
- metadataCache, document, MockThumbnailLoader); |
- var thumbnailLoadedEvents = []; |
+ thumbnailLoadedEvents = []; |
listThumbnailLoader.addEventListener('thumbnailLoaded', function(event) { |
thumbnailLoadedEvents.push(event); |
}); |
+} |
+ |
+function resolveGetOneCallback(url) { |
+ assert(getOneCallbacks[url]); |
+ getOneCallbacks[url](); |
+ delete getOneCallbacks[url]; |
+} |
- // Add 1 directory and 5 entries. |
- var fileSystem = new MockFileSystem('volume-id'); |
- var directory1 = new MockDirectoryEntry(fileSystem, '/TestDirectory'); |
- var entry1 = new MockEntry(fileSystem, '/Test1.jpg'); |
- 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'); |
+/** |
+ * Story test for list thumbnail loader. |
+ */ |
+function testStory(callback) { |
fileListModel.push(directory1, entry1, entry2, entry3, entry4, entry5); |
// Set high priority range to 0 - 2. |
@@ -91,9 +104,7 @@ function testStory(callback) { |
assertArrayEquals([entry1.toURL(), entry2.toURL()], |
Object.keys(getOneCallbacks)); |
- // Resolve metadataCache.getOne for Test2.jpg. |
- getOneCallbacks[entry2.toURL()](); |
- delete getOneCallbacks[entry2.toURL()]; |
+ resolveGetOneCallback(entry2.toURL()); |
reportPromise(waitUntil(function() { |
// Assert that thumbnailLoaded event is fired for Test2.jpg. |
@@ -123,9 +134,7 @@ function testStory(callback) { |
// Set high priority range to 2 - 4. |
listThumbnailLoader.setHighPriorityRange(2, 4); |
- // Resolve metadataCache.getOne for Test1.jpg. |
- getOneCallbacks[entry1.toURL()](); |
- delete getOneCallbacks[entry1.toURL()]; |
+ resolveGetOneCallback(entry1.toURL()); |
// Assert that task for (Test3.jpg) is enqueued. |
return waitUntil(function() { |
@@ -143,3 +152,18 @@ function testStory(callback) { |
}); |
}), callback); |
} |
+ |
+/** |
+ * Do not enqueue prefetch task when high priority range is at the end of list. |
+ */ |
+function testRangeIsAtTheEndOfList() { |
+ // Set high priority range to 5 - 6. |
+ listThumbnailLoader.setHighPriorityRange(5, 6); |
+ |
+ fileListModel.push(directory1, entry1, entry2, entry3, entry4, entry5); |
+ |
+ // Assert that a task is enqueued for entry5. |
+ assertEquals(1, Object.keys(getOneCallbacks).length); |
+ assertEquals('filesystem:volume-id/Test5.jpg', |
+ Object.keys(getOneCallbacks)[0]); |
+} |