Commit ab20193e authored by Stuart Langley's avatar Stuart Langley Committed by Commit Bot

Closure compile metadata_cache_item_unittest.

Convert metadata_cache_item_unittest.js to be closure compiled.

- Remove html file that is not auto generated.
- Fix closure errors in the unittest file.

As MetadataCacheItem requires a MetadataItem to be a parameter most of the unit
test code needed to be re-written to use this type.

No change in behaviour.

Bug: 906919
Change-Id: Id903f8bec90abfa5256acb45d5eb3c3640d31acb
Reviewed-on: https://chromium-review.googlesource.com/c/1343413
Commit-Queue: Noel Gordon <noel@chromium.org>
Reviewed-by: default avatarNoel Gordon <noel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609603}
parent 3681121f
......@@ -124,8 +124,7 @@ IN_PROC_BROWSER_TEST_F(FileManagerJsTest, ThumbnailLoader) {
}
IN_PROC_BROWSER_TEST_F(FileManagerJsTest, MetadataCacheItem) {
RunTest(base::FilePath(FILE_PATH_LITERAL(
"foreground/js/metadata/metadata_cache_item_unittest.html")));
RunGeneratedTest("/foreground/js/metadata/metadata_cache_item_unittest.html");
}
IN_PROC_BROWSER_TEST_F(FileManagerJsTest, MetadataCacheSet) {
......
......@@ -124,6 +124,13 @@ js_library("metadata_cache_item") {
]
}
js_unittest("metadata_cache_item_unittest") {
deps = [
":metadata_cache_item",
"//ui/webui/resources/js:webui_resource_test",
]
}
js_library("metadata_cache_set") {
deps = [
":metadata_cache_item",
......@@ -214,6 +221,7 @@ js_unittest("thumbnail_model_unittest") {
js_unit_tests("unit_tests") {
deps = [
":image_orientation_unittest",
":metadata_cache_item_unittest",
":thumbnail_model_unittest",
]
}
......
<!DOCTYPE html>
<!-- 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.
-->
<script src="../../../../../webui/resources/js/assert.js"></script>
<script src="../../../../base/js/test_error_reporting.js"></script>
<script src="metadata_cache_item.js"></script>
<script src="metadata_item.js"></script>
<script src="metadata_request.js"></script>
<script src="metadata_cache_item_unittest.js"></script>
......@@ -2,106 +2,135 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @type {!MetadataItem}
*/
let metadataA = new MetadataItem();
metadataA.contentMimeType = 'value';
function testMetadataCacheItemBasic() {
var item = new MetadataCacheItem();
var loadRequested = item.createRequests(['propertyA']);
var loadRequested = item.createRequests(['contentMimeType']);
assertEquals(1, loadRequested.length);
assertEquals('propertyA', loadRequested[0]);
assertEquals('contentMimeType', loadRequested[0]);
item.startRequests(1, loadRequested);
assertTrue(item.storeProperties(1, {propertyA: 'value'}));
assertTrue(item.storeProperties(1, metadataA));
var result = item.get(['propertyA']);
assertEquals('value', result.propertyA);
var result = item.get(['contentMimeType']);
assertEquals('value', result.contentMimeType);
}
function testMetadataCacheItemAvoidDoubleLoad() {
var item = new MetadataCacheItem();
item.startRequests(1, ['propertyA']);
var loadRequested = item.createRequests(['propertyA']);
item.startRequests(1, ['contentMimeType']);
var loadRequested = item.createRequests(['contentMimeType']);
assertEquals(0, loadRequested.length);
item.startRequests(2, loadRequested);
assertTrue(item.storeProperties(1, {propertyA: 'value'}));
assertTrue(item.storeProperties(1, metadataA));
var result = item.get(['propertyA']);
assertEquals('value', result.propertyA);
var result = item.get(['contentMimeType']);
assertEquals('value', result.contentMimeType);
}
function testMetadataCacheItemInvalidate() {
var item = new MetadataCacheItem();
item.startRequests(1, item.createRequests(['propertyA']));
item.startRequests(1, item.createRequests(['contentMimeType']));
item.invalidate(2);
assertFalse(item.storeProperties(1, {propertyA: 'value'}));
assertFalse(item.storeProperties(1, metadataA));
var loadRequested = item.createRequests(['propertyA']);
var loadRequested = item.createRequests(['contentMimeType']);
assertEquals(1, loadRequested.length);
}
function testMetadataCacheItemStoreInReverseOrder() {
var item = new MetadataCacheItem();
item.startRequests(1, item.createRequests(['propertyA']));
item.startRequests(2, item.createRequests(['propertyA']));
item.startRequests(1, item.createRequests(['contentMimeType']));
item.startRequests(2, item.createRequests(['contentMimeType']));
let metadataB = new MetadataItem();
metadataB.contentMimeType = 'value2';
assertTrue(item.storeProperties(2, {propertyA: 'value2'}));
assertFalse(item.storeProperties(1, {propertyA: 'value1'}));
assertTrue(item.storeProperties(2, metadataB));
assertFalse(item.storeProperties(1, metadataA));
var result = item.get(['propertyA']);
assertEquals('value2', result.propertyA);
var result = item.get(['contentMimeType']);
assertEquals('value2', result.contentMimeType);
}
function testMetadataCacheItemClone() {
var itemA = new MetadataCacheItem();
itemA.startRequests(1, itemA.createRequests(['property']));
itemA.startRequests(1, itemA.createRequests(['contentMimeType']));
var itemB = itemA.clone();
itemA.storeProperties(1, {property: 'value'});
assertFalse(itemB.hasFreshCache(['property']));
itemA.storeProperties(1, metadataA);
assertFalse(itemB.hasFreshCache(['contentMimeType']));
itemB.storeProperties(1, {property: 'value'});
assertTrue(itemB.hasFreshCache(['property']));
itemB.storeProperties(1, metadataA);
assertTrue(itemB.hasFreshCache(['contentMimeType']));
itemA.invalidate(2);
assertTrue(itemB.hasFreshCache(['property']));
assertTrue(itemB.hasFreshCache(['contentMimeType']));
}
function testMetadataCacheItemHasFreshCache() {
var item = new MetadataCacheItem();
assertFalse(item.hasFreshCache(['propertyA', 'propertyB']));
assertFalse(item.hasFreshCache(['contentMimeType', 'externalFileUrl']));
item.startRequests(1, item.createRequests(['propertyA', 'propertyB']));
item.storeProperties(1, {propertyA: 'valueA', propertyB: 'valueB'});
assertTrue(item.hasFreshCache(['propertyA', 'propertyB']));
item.startRequests(
1, item.createRequests(['contentMimeType', 'externalFileUrl']));
let metadata = new MetadataItem();
metadata.contentMimeType = 'mime';
metadata.externalFileUrl = 'url';
item.storeProperties(1, metadata);
assertTrue(item.hasFreshCache(['contentMimeType', 'externalFileUrl']));
item.invalidate(2);
assertFalse(item.hasFreshCache(['propertyA', 'propertyB']));
assertFalse(item.hasFreshCache(['contentMimeType', 'externalFileUrl']));
item.startRequests(1, item.createRequests(['propertyA']));
item.storeProperties(1, {propertyA: 'valueA'});
assertFalse(item.hasFreshCache(['propertyA', 'propertyB']));
assertTrue(item.hasFreshCache(['propertyA']));
item.startRequests(1, item.createRequests(['contentMimeType']));
item.storeProperties(1, metadataA);
assertFalse(item.hasFreshCache(['contentMimeType', 'externalFileUrl']));
assertTrue(item.hasFreshCache(['contentMimeType']));
}
function testMetadataCacheItemShouldNotUpdateBeforeInvalidation() {
var item = new MetadataCacheItem();
item.startRequests(1, item.createRequests(['property']));
item.storeProperties(1, {property: 'value1'});
item.storeProperties(2, {property: 'value2'});
assertEquals('value1', item.get(['property']).property);
item.startRequests(1, item.createRequests(['contentMimeType']));
item.storeProperties(1, metadataA);
let metadataB = new MetadataItem();
metadataB.contentMimeType = 'value2';
item.storeProperties(2, metadataB);
assertEquals('value', item.get(['contentMimeType']).contentMimeType);
}
function testMetadataCacheItemError() {
var item = new MetadataCacheItem();
item.startRequests(1, item.createRequests(['property']));
item.storeProperties(
1, {property: 'value1', propertyError: new Error('Error')});
assertEquals(undefined, item.get(['property']).property);
assertEquals('Error', item.get(['property']).propertyError.message);
item.startRequests(1, item.createRequests(['contentThumbnailUrl']));
let metadataWithError = new MetadataItem();
metadataWithError.contentThumbnailUrlError = new Error('Error');
item.storeProperties(1, metadataWithError);
let property = item.get(['contentThumbnailUrl']);
assertEquals(undefined, property.contentThumbnailUrl);
assertEquals('Error', property.contentThumbnailUrlError.message);
}
function testMetadataCacheItemErrorShouldNotFetchedDirectly() {
var item = new MetadataCacheItem();
item.startRequests(1, item.createRequests(['property']));
item.storeProperties(
1, {property: 'value1', propertyError: new Error('Error')});
assertThrows(function() { item.get(['propertyError']); });
item.startRequests(1, item.createRequests(['contentThumbnailUrl']));
let metadataWithError = new MetadataItem();
metadataWithError.contentThumbnailUrlError = new Error('Error');
item.storeProperties(1, metadataWithError);
assertThrows(function() {
item.get(['contentThumbnailUrlError']);
});
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment