Index: ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item_unittest.js |
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item_unittest.js b/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item_unittest.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d1815a8c7f4bb401aa68a0974c1cc74137b084fe |
--- /dev/null |
+++ b/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item_unittest.js |
@@ -0,0 +1,49 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+function testMetadataCacheItemBasic() { |
+ var item = new MetadataCacheItem(); |
+ var loadRequested = item.startRequests(1, ['propertyA']); |
+ assertEquals(1, loadRequested.length); |
+ assertEquals('propertyA', loadRequested[0]); |
+ |
+ assertTrue(item.storeProperties(1, {propertyA: 'value'})); |
+ |
+ var result = item.get(['propertyA']); |
+ assertEquals('value', result.propertyA); |
+} |
+ |
+function testMetadataCacheItemAvoidDoubleLoad() { |
+ var item = new MetadataCacheItem(); |
+ item.startRequests(1, ['propertyA']); |
+ var loadRequested = item.startRequests(2, ['propertyA']); |
+ assertEquals(0, loadRequested.length); |
+ |
+ assertTrue(item.storeProperties(1, {propertyA: 'value'})); |
+ |
+ var result = item.get(['propertyA']); |
+ assertEquals('value', result.propertyA); |
+} |
+ |
+function testMetadataCacheItemInvalidate() { |
+ var item = new MetadataCacheItem(); |
+ item.startRequests(1, ['propertyA']); |
+ item.invalidate(2); |
+ assertFalse(item.storeProperties(1, {propertyA: 'value'})); |
+ |
+ var loadRequested = item.startRequests(3, ['propertyA']); |
+ assertEquals(1, loadRequested.length); |
+} |
+ |
+function testMetadataCacheItemStoreInReverseOrder() { |
+ var item = new MetadataCacheItem(); |
+ item.startRequests(1, ['propertyA']); |
+ item.startRequests(2, ['propertyA']); |
+ |
+ assertTrue(item.storeProperties(2, {propertyA: 'value2'})); |
+ assertFalse(item.storeProperties(1, {propertyA: 'value1'})); |
+ |
+ var result = item.get(['propertyA']); |
+ assertEquals('value2', result.propertyA); |
+} |