Commit d110d84d authored by Trent Apted's avatar Trent Apted Committed by Commit Bot

Gallery: closure compile gallery_data_model_unittest.js

Creates shared unit test helpers for MockMetadata and MockGalleryItem
since these concepts are used in multiple unittest files. This means
updating the corresponding unittest.html files that are not yet auto-
generated.

Bug: 867700
Change-Id: Ia77bac5f9dc14abb1f92bb90a8c545d6998e0160
Reviewed-on: https://chromium-review.googlesource.com/1172170Reviewed-by: default avatarNoel Gordon <noel@chromium.org>
Commit-Queue: Trent Apted <tapted@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582746}
parent ebecd9c0
......@@ -43,8 +43,7 @@ IN_PROC_BROWSER_TEST_F(GalleryJsTest, GalleryItemTest) {
}
IN_PROC_BROWSER_TEST_F(GalleryJsTest, GalleryDataModelTest) {
RunTest(
base::FilePath(FILE_PATH_LITERAL("gallery_data_model_unittest.html")));
RunGeneratedTest("/gallery_data_model_unittest.html");
}
IN_PROC_BROWSER_TEST_F(GalleryJsTest, RibbonTest) {
......
......@@ -10,6 +10,8 @@
<script src="../../../../../ui/webui/resources/js/cr/ui/array_data_model.js"></script>
<script src="../../../../../ui/webui/resources/js/load_time_data.js"></script>
<script src="../../foreground/js/metadata/mock_metadata.js"></script>
<script src="../../common/js/mock_entry.js"></script>
<script src="../../common/js/unittest_util.js"></script>
<script src="../../common/js/util.js"></script>
......
......@@ -15,21 +15,6 @@ loadTimeData.data = {
DOWNLOADS_DIRECTORY_LABEL: ''
};
function MockMetadataModel() {
this.properties = null;
}
MockMetadataModel.prototype.get = function() {
return Promise.resolve([this.properties]);
};
MockMetadataModel.prototype.getCache = function() {
return [this.properties];
};
MockMetadataModel.prototype.notifyEntriesChanged = function() {
};
function MockFolderShortcutsModel() {
this.has = false;
}
......@@ -93,7 +78,7 @@ function setUp() {
providedFileSystem = volumeManager.getCurrentProfileVolumeInfo(
VolumeManagerCommon.VolumeType.PROVIDED).fileSystem;
metadataModel = new MockMetadataModel();
metadataModel = new MockMetadataModel(null);
shortcutsModel = new MockFolderShortcutsModel();
driveSyncHandler = new MockDriveSyncHandler();
ui = new MockUI();
......
......@@ -168,6 +168,12 @@ js_library("metadata_provider") {
js_library("metadata_request") {
}
js_library("mock_metadata") {
deps = [
":metadata_model",
]
}
js_library("mpeg_parser") {
deps = [
":metadata_parser",
......
// Copyright 2018 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.
/**
* Returns a mock of metadata model.
*
* @constructor
* @extends {MetadataModel}
* @param {Object} initial_properties
*/
function MockMetadataModel(initial_properties) {
/**
* Dummy properties, which can be overwritten by a test.
* @public {Object}
* @const
*/
this.properties = initial_properties;
}
/** @override */
MockMetadataModel.prototype.get = function() {
return Promise.resolve([this.properties]);
};
/** @override */
MockMetadataModel.prototype.getCache = function() {
return [this.properties];
};
/** @override */
MockMetadataModel.prototype.notifyEntriesChanged = function() {};
......@@ -12,6 +12,9 @@
<script src="../../../../../ui/webui/resources/js/cr/event_target.js"></script>
<script src="../../../../../ui/webui/resources/js/cr/ui.js"></script>
<script src="../../../../../ui/webui/resources/js/cr/ui/command.js"></script>
<script src="../../foreground/js/metadata/mock_metadata.js"></script>
<script src="../../common/js/file_type.js"></script>
<script src="../../common/js/mock_entry.js"></script>
<script src="../../common/js/unittest_util.js"></script>
......
......@@ -6,14 +6,6 @@ window.metrics = {
recordEnum: function() {}
};
function MockMetadataModel(properties) {
this.properties_ = properties;
}
MockMetadataModel.prototype.get = function() {
return Promise.resolve([this.properties_]);
};
function setUp() {
// Behavior of window.chrome depends on each test case. window.chrome should
// be initialized properly inside each test function.
......
......@@ -92,6 +92,14 @@ js_library("gallery_data_model") {
]
}
js_library("gallery_data_model_unittest") {
deps = [
":gallery_data_model",
":mock_gallery_item",
"../../file_manager/common/js:unittest_util",
]
}
js_library("gallery_item") {
deps = [
":gallery_util",
......@@ -127,6 +135,14 @@ js_library("gallery_util_unittest") {
js_library("metadata_worker") {
}
js_library("mock_gallery_item") {
deps = [
":gallery_item",
"../../file_manager/common/js:mock_entry",
"../../file_manager/foreground/js/metadata:mock_metadata",
]
}
js_library("ribbon") {
deps = [
":gallery_data_model",
......@@ -182,6 +198,7 @@ js_library("thumbnail_mode") {
js_unit_tests("unit_tests") {
deps = [
":dimmable_ui_controller_unittest",
":gallery_data_model_unittest",
":gallery_util_unittest",
":ribbon_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>
// Define mock Gallery class to define GalleryItem class.
var Gallery = function() {};
</script>
<script src="../../../webui/resources/js/assert.js"></script>
<script src="../../../webui/resources/js/cr.js"></script>
<script src="../../../webui/resources/js/cr/event_target.js"></script>
<script src="../../../webui/resources/js/cr/ui/array_data_model.js"></script>
<script src="../../file_manager/common/js/mock_entry.js"></script>
<script src="../../file_manager/common/js/unittest_util.js"></script>
<script src="../../file_manager/common/js/util.js"></script>
<script src="entry_list_watcher.js"></script>
<script src="gallery_data_model.js"></script>
<script src="gallery_item.js"></script>
<script src="gallery_data_model_unittest.js"></script>
......@@ -6,37 +6,20 @@ var model;
var fileSystem;
var item;
/**
* Mock thumbnail model.
*/
function ThumbnailModel() {
}
ThumbnailModel.prototype.get = function(entries) {
return Promise.resolve(entries.map(function() {
return {};
}));
};
function setUp() {
model = new GalleryDataModel(
/* Mock MetadataModel */{
get: function() {
return Promise.resolve([{}]);
}
},
/* Mock EntryListWatcher */{});
// Avoid creating the default EntryListWatcher, since it needs access to
// fileManagerPrivate, which is not in the unit test environment.
let mockEntryListWatcher = /** @type{!EntryListWatcher} */ ({});
model = new GalleryDataModel(new MockMetadataModel({}), mockEntryListWatcher);
fileSystem = new MockFileSystem('volumeId');
model.fallbackSaveDirectory = fileSystem.root;
}
function testSaveItemOverwrite(callback) {
var item = new GalleryItem(
new MockEntry(fileSystem, '/test.jpg'),
null,
/* metadataItem */ {},
/* thumbnailMetadataItem */ {},
/* original */ true);
var item = new MockGalleryItem(
new MockFileEntry(fileSystem, '/test.jpg'), null, {}, null,
false /* isOriginal */);
// Mocking the saveToFile method.
item.saveToFile = function(
......@@ -57,15 +40,13 @@ function testSaveItemOverwrite(callback) {
}
function testSaveItemToNewFile(callback) {
var item = new GalleryItem(
new MockEntry(fileSystem, '/test.webp'),
null,
/* metadataItem */ {},
/* thumbnailMetadataItem */ {},
/* original */ true);
var item = new MockGalleryItem(
new MockFileEntry(fileSystem, '/test.webp'), null, {}, null,
true /* isOriginal */);
// Mocking the saveToFile method. In this case, Gallery saves to a new file
// since it cannot overwrite to webp image file.
/** @suppress {accessControls} */
item.saveToFile = function(
volumeManager,
metadataModel,
......@@ -74,8 +55,8 @@ function testSaveItemToNewFile(callback) {
overwrite,
callback) {
// Gallery item track new file.
this.entry_ = new MockEntry(fileSystem, '/test (1).png');
this.original_ = false;
item.entry_ = new MockFileEntry(fileSystem, '/test (1).png');
item.original_ = false;
callback(true);
};
model.push(item);
......
......@@ -20,6 +20,7 @@ var Gallery = function() {};
<script src="../../file_manager/common/js/unittest_util.js"></script>
<script src="../../file_manager/common/js/util.js"></script>
<script src="../../file_manager/foreground/js/metadata/thumbnail_model.js"></script>
<script src="../../file_manager/foreground/js/metadata/mock_metadata.js"></script>
<script src="gallery_item.js"></script>
<script src="gallery_util.js"></script>
......
......@@ -35,21 +35,8 @@ function setUp() {
};
}
/**
* Returns a mock of metadata model.
* @private
* @return {!MetadataModel}
*/
function getMockMetadataModel() {
return {
get: function(entries, names) {
return Promise.resolve([
{size: 200}
]);
},
notifyEntriesChanged: function() {
}
};
return new MockMetadataModel({size: 200});
}
/**
......
......@@ -182,7 +182,7 @@ js_library("image_view") {
js_library("image_view_unittest") {
deps = [
":image_view",
"../../../file_manager/common/js:mock_entry",
"..:mock_gallery_item",
"//ui/webui/resources/js:webui_resource_test",
]
}
......
......@@ -2,30 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* Helper to construct testing GalleryItem objects.
*
* @param {!FileEntry} entry
* @param {EntryLocation} locationInfo
* @param {Object} metadataItem
* @param {ThumbnailMetadataItem=} opt_thumbnailMetadataItem
* @param {boolean=} opt_original Whether the entry is original or edited.
* @constructor
* @extends GalleryItem
*/
function MockGalleryItem(
entry, locationInfo, metadataItem, opt_thumbnailMetadataItem,
opt_original) {
let entryLocation = locationInfo || /** @type {!EntryLocation} */ ({});
GalleryItem.call(
this, entry, entryLocation, /** @type {MetadataItem} */ (metadataItem),
opt_thumbnailMetadataItem || null, opt_original || false);
}
MockGalleryItem.prototype = {
__proto__: GalleryItem.prototype
};
function testImageView() {
var mockFileSystem = new MockFileSystem('volumeId');
var mockEntry = new MockFileEntry(mockFileSystem, '/test.jpg');
......
// Copyright 2018 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.
/**
* Helper to construct testing GalleryItem objects.
*
* @param {!FileEntry} entry
* @param {EntryLocation} locationInfo
* @param {Object} metadataItem
* @param {ThumbnailMetadataItem=} opt_thumbnailMetadataItem
* @param {boolean=} opt_original Whether the entry is original or edited.
* @constructor
* @extends GalleryItem
*/
function MockGalleryItem(
entry, locationInfo, metadataItem, opt_thumbnailMetadataItem,
opt_original) {
let entryLocation = locationInfo || /** @type {!EntryLocation} */ ({});
GalleryItem.call(
this, entry, entryLocation, /** @type {MetadataItem} */ (metadataItem),
opt_thumbnailMetadataItem || null, opt_original || false);
}
MockGalleryItem.prototype = {
__proto__: GalleryItem.prototype
};
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