| 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 54cda9f8598452406bde409af42536461a7e77c6..4e75b763b562eda2cb24913528e9baac66c5a92f 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
|
| @@ -2,14 +2,14 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -function TestMetadataProvider(cache) {
|
| - NewMetadataProvider.call(this, cache, ['property', 'propertyA', 'propertyB']);
|
| +function TestMetadataProvider() {
|
| + NewMetadataProvider.call(this, ['property', 'propertyA', 'propertyB']);
|
| this.requestCount = 0;
|
| }
|
|
|
| TestMetadataProvider.prototype.__proto__ = NewMetadataProvider.prototype;
|
|
|
| -TestMetadataProvider.prototype.getImpl = function(requests) {
|
| +TestMetadataProvider.prototype.get = function(requests) {
|
| this.requestCount++;
|
| return Promise.resolve(requests.map(function(request) {
|
| var entry = request.entry;
|
| @@ -22,27 +22,27 @@ TestMetadataProvider.prototype.getImpl = function(requests) {
|
| }));
|
| };
|
|
|
| -function TestEmptyMetadataProvider(cache) {
|
| - NewMetadataProvider.call(this, cache, ['property']);
|
| +function TestEmptyMetadataProvider() {
|
| + NewMetadataProvider.call(this, ['property']);
|
| }
|
|
|
| TestEmptyMetadataProvider.prototype.__proto__ = NewMetadataProvider.prototype;
|
|
|
| -TestEmptyMetadataProvider.prototype.getImpl = function(requests) {
|
| +TestEmptyMetadataProvider.prototype.get = function(requests) {
|
| return Promise.resolve(requests.map(function() {
|
| return {};
|
| }));
|
| };
|
|
|
| -function ManualTestMetadataProvider(cache) {
|
| +function ManualTestMetadataProvider() {
|
| NewMetadataProvider.call(
|
| - this, cache, ['propertyA', 'propertyB', 'propertyC']);
|
| + this, ['propertyA', 'propertyB', 'propertyC']);
|
| this.callback = [];
|
| }
|
|
|
| ManualTestMetadataProvider.prototype.__proto__ = NewMetadataProvider.prototype;
|
|
|
| -ManualTestMetadataProvider.prototype.getImpl = function(requests) {
|
| +ManualTestMetadataProvider.prototype.get = function(requests) {
|
| return new Promise(function(fulfill) {
|
| this.callback.push(fulfill);
|
| }.bind(this));
|
| @@ -57,40 +57,37 @@ var entryB = {
|
| };
|
|
|
| function testNewMetadataProviderBasic(callback) {
|
| - var cache = new MetadataProviderCache();
|
| - var provider = new TestMetadataProvider(cache);
|
| + var provider = new CachedMetadataProvider(new TestMetadataProvider());
|
| reportPromise(provider.get([entryA, entryB], ['property']).then(
|
| function(results) {
|
| - assertEquals(1, provider.requestCount);
|
| + assertEquals(1, provider.getRawProvider().requestCount);
|
| assertEquals('filesystem://A:property', results[0].property);
|
| assertEquals('filesystem://B:property', results[1].property);
|
| }), callback);
|
| }
|
|
|
| function testNewMetadataProviderRequestForCachedProperty(callback) {
|
| - var cache = new MetadataProviderCache();
|
| - var provider = new TestMetadataProvider(cache);
|
| + var provider = new CachedMetadataProvider(new TestMetadataProvider());
|
| reportPromise(provider.get([entryA, entryB], ['property']).then(
|
| function() {
|
| // All the result should be cached here.
|
| return provider.get([entryA, entryB], ['property']);
|
| }).then(function(results) {
|
| - assertEquals(1, provider.requestCount);
|
| + assertEquals(1, provider.getRawProvider().requestCount);
|
| assertEquals('filesystem://A:property', results[0].property);
|
| assertEquals('filesystem://B:property', results[1].property);
|
| }), callback);
|
| }
|
|
|
| function testNewMetadataProviderRequestForCachedAndNonCachedProperty(callback) {
|
| - var cache = new MetadataProviderCache();
|
| - var provider = new TestMetadataProvider(cache);
|
| + var provider = new CachedMetadataProvider(new TestMetadataProvider());
|
| reportPromise(provider.get([entryA, entryB], ['propertyA']).then(
|
| function() {
|
| - assertEquals(1, provider.requestCount);
|
| + assertEquals(1, provider.getRawProvider().requestCount);
|
| // propertyB has not been cached here.
|
| return provider.get([entryA, entryB], ['propertyA', 'propertyB']);
|
| }).then(function(results) {
|
| - assertEquals(2, provider.requestCount);
|
| + assertEquals(2, provider.getRawProvider().requestCount);
|
| assertEquals('filesystem://A:propertyA', results[0].propertyA);
|
| assertEquals('filesystem://A:propertyB', results[0].propertyB);
|
| assertEquals('filesystem://B:propertyA', results[1].propertyA);
|
| @@ -99,15 +96,14 @@ function testNewMetadataProviderRequestForCachedAndNonCachedProperty(callback) {
|
| }
|
|
|
| function testNewMetadataProviderRequestForCachedAndNonCachedEntry(callback) {
|
| - var cache = new MetadataProviderCache();
|
| - var provider = new TestMetadataProvider(cache);
|
| + var provider = new CachedMetadataProvider(new TestMetadataProvider());
|
| reportPromise(provider.get([entryA], ['property']).then(
|
| function() {
|
| - assertEquals(1, provider.requestCount);
|
| + assertEquals(1, provider.getRawProvider().requestCount);
|
| // entryB has not been cached here.
|
| return provider.get([entryA, entryB], ['property']);
|
| }).then(function(results) {
|
| - assertEquals(2, provider.requestCount);
|
| + assertEquals(2, provider.getRawProvider().requestCount);
|
| assertEquals('filesystem://A:property', results[0].property);
|
| assertEquals('filesystem://B:property', results[1].property);
|
| }), callback);
|
| @@ -115,31 +111,30 @@ function testNewMetadataProviderRequestForCachedAndNonCachedEntry(callback) {
|
|
|
| function testNewMetadataProviderRequestBeforeCompletingPreviousRequest(
|
| callback) {
|
| - var cache = new MetadataProviderCache();
|
| - var provider = new TestMetadataProvider(cache);
|
| + var provider = new CachedMetadataProvider(new TestMetadataProvider());
|
| provider.get([entryA], ['property']);
|
| - assertEquals(1, provider.requestCount);
|
| + assertEquals(1, provider.getRawProvider().requestCount);
|
| // The result of first call has not been fetched yet.
|
| reportPromise(provider.get([entryA], ['property']).then(
|
| function(results) {
|
| - assertEquals(1, provider.requestCount);
|
| + assertEquals(1, provider.getRawProvider().requestCount);
|
| assertEquals('filesystem://A:property', results[0].property);
|
| }), callback);
|
| }
|
|
|
| function testNewMetadataProviderNotUpdateCachedResultAfterRequest(
|
| callback) {
|
| - var cache = new MetadataProviderCache();
|
| - var provider = new ManualTestMetadataProvider(cache);
|
| + var provider = new CachedMetadataProvider(new ManualTestMetadataProvider());
|
| var promise = provider.get([entryA], ['propertyA']);
|
| - provider.callback[0]([{propertyA: 'valueA1'}]);
|
| + provider.getRawProvider().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'}]);
|
| + provider.getRawProvider().callback[2](
|
| + [{propertyA: 'valueA2', propertyC: 'valueC'}]);
|
| + provider.getRawProvider().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.
|
| @@ -150,29 +145,26 @@ function testNewMetadataProviderNotUpdateCachedResultAfterRequest(
|
| }
|
|
|
| function testNewMetadataProviderGetCache(callback) {
|
| - var cache = new MetadataProviderCache();
|
| - var provider = new TestMetadataProvider(cache);
|
| + var provider = new CachedMetadataProvider(new TestMetadataProvider());
|
| var promise = provider.get([entryA], ['property']);
|
| var cache = provider.getCache([entryA], ['property']);
|
| assertEquals(null, cache[0].property);
|
| reportPromise(promise.then(function() {
|
| var cache = provider.getCache([entryA], ['property']);
|
| - assertEquals(1, provider.requestCount);
|
| + assertEquals(1, provider.getRawProvider().requestCount);
|
| assertEquals('filesystem://A:property', cache[0].property);
|
| }), callback);
|
| }
|
|
|
| function testNewMetadataProviderUnknownProperty() {
|
| - var cache = new MetadataProviderCache();
|
| - var provider = new TestMetadataProvider(cache);
|
| + var provider = new CachedMetadataProvider(new TestMetadataProvider());
|
| assertThrows(function() {
|
| provider.get([entryA], ['unknown']);
|
| });
|
| }
|
|
|
| function testNewMetadataProviderEmptyResult(callback) {
|
| - var cache = new MetadataProviderCache();
|
| - var provider = new TestEmptyMetadataProvider(cache);
|
| + var provider = new CachedMetadataProvider(new TestEmptyMetadataProvider());
|
| // getImpl returns empty result.
|
| reportPromise(provider.get([entryA], ['property']).then(function(results) {
|
| assertEquals(undefined, results[0].property);
|
|
|