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

Unified Diff: ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider_unittest.js

Issue 900173002: Files.app: Do not update cached MetadataCachedItemProperty before it is invalidated. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed. 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/metadata/metadata_cache_item_unittest.js ('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/metadata/new_metadata_provider_unittest.js
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider_unittest.js b/ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider_unittest.js
index be81c33d6775d005927e687de8ffcdae45846b23..54cda9f8598452406bde409af42536461a7e77c6 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider_unittest.js
+++ b/ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider_unittest.js
@@ -34,6 +34,20 @@ TestEmptyMetadataProvider.prototype.getImpl = function(requests) {
}));
};
+function ManualTestMetadataProvider(cache) {
+ NewMetadataProvider.call(
+ this, cache, ['propertyA', 'propertyB', 'propertyC']);
+ this.callback = [];
+}
+
+ManualTestMetadataProvider.prototype.__proto__ = NewMetadataProvider.prototype;
+
+ManualTestMetadataProvider.prototype.getImpl = function(requests) {
+ return new Promise(function(fulfill) {
+ this.callback.push(fulfill);
+ }.bind(this));
+};
+
var entryA = {
toURL: function() { return "filesystem://A"; }
};
@@ -113,6 +127,28 @@ function testNewMetadataProviderRequestBeforeCompletingPreviousRequest(
}), callback);
}
+function testNewMetadataProviderNotUpdateCachedResultAfterRequest(
+ callback) {
+ var cache = new MetadataProviderCache();
+ var provider = new ManualTestMetadataProvider(cache);
+ var promise = provider.get([entryA], ['propertyA']);
+ provider.callback[0]([{propertyA: 'valueA1'}]);
+ reportPromise(promise.then(function() {
+ // 'propertyA' is cached here.
+ var promise1 = provider.get([entryA], ['propertyA', 'propertyB']);
+ var promise2 = provider.get([entryA], ['propertyC']);
+ // Returns propertyC.
+ provider.callback[2]([{propertyA: 'valueA2', propertyC: 'valueC'}]);
+ provider.callback[1]([{propertyB: 'valueB'}]);
+ return Promise.all([promise1, promise2]);
+ }).then(function(results) {
+ // The result should be cached value at the time when get was called.
+ assertEquals('valueA1', results[0][0].propertyA);
+ assertEquals('valueB', results[0][0].propertyB);
+ assertEquals('valueC', results[1][0].propertyC);
+ }), callback);
+}
+
function testNewMetadataProviderGetCache(callback) {
var cache = new MetadataProviderCache();
var provider = new TestMetadataProvider(cache);
« no previous file with comments | « ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item_unittest.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698