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) { ...@@ -43,8 +43,7 @@ IN_PROC_BROWSER_TEST_F(GalleryJsTest, GalleryItemTest) {
} }
IN_PROC_BROWSER_TEST_F(GalleryJsTest, GalleryDataModelTest) { IN_PROC_BROWSER_TEST_F(GalleryJsTest, GalleryDataModelTest) {
RunTest( RunGeneratedTest("/gallery_data_model_unittest.html");
base::FilePath(FILE_PATH_LITERAL("gallery_data_model_unittest.html")));
} }
IN_PROC_BROWSER_TEST_F(GalleryJsTest, RibbonTest) { IN_PROC_BROWSER_TEST_F(GalleryJsTest, RibbonTest) {
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
<script src="../../../../../ui/webui/resources/js/cr/ui/array_data_model.js"></script> <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="../../../../../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/mock_entry.js"></script>
<script src="../../common/js/unittest_util.js"></script> <script src="../../common/js/unittest_util.js"></script>
<script src="../../common/js/util.js"></script> <script src="../../common/js/util.js"></script>
......
...@@ -15,21 +15,6 @@ loadTimeData.data = { ...@@ -15,21 +15,6 @@ loadTimeData.data = {
DOWNLOADS_DIRECTORY_LABEL: '' 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() { function MockFolderShortcutsModel() {
this.has = false; this.has = false;
} }
...@@ -93,7 +78,7 @@ function setUp() { ...@@ -93,7 +78,7 @@ function setUp() {
providedFileSystem = volumeManager.getCurrentProfileVolumeInfo( providedFileSystem = volumeManager.getCurrentProfileVolumeInfo(
VolumeManagerCommon.VolumeType.PROVIDED).fileSystem; VolumeManagerCommon.VolumeType.PROVIDED).fileSystem;
metadataModel = new MockMetadataModel(); metadataModel = new MockMetadataModel(null);
shortcutsModel = new MockFolderShortcutsModel(); shortcutsModel = new MockFolderShortcutsModel();
driveSyncHandler = new MockDriveSyncHandler(); driveSyncHandler = new MockDriveSyncHandler();
ui = new MockUI(); ui = new MockUI();
......
...@@ -168,6 +168,12 @@ js_library("metadata_provider") { ...@@ -168,6 +168,12 @@ js_library("metadata_provider") {
js_library("metadata_request") { js_library("metadata_request") {
} }
js_library("mock_metadata") {
deps = [
":metadata_model",
]
}
js_library("mpeg_parser") { js_library("mpeg_parser") {
deps = [ deps = [
":metadata_parser", ":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 @@ ...@@ -12,6 +12,9 @@
<script src="../../../../../ui/webui/resources/js/cr/event_target.js"></script> <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.js"></script>
<script src="../../../../../ui/webui/resources/js/cr/ui/command.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/file_type.js"></script>
<script src="../../common/js/mock_entry.js"></script> <script src="../../common/js/mock_entry.js"></script>
<script src="../../common/js/unittest_util.js"></script> <script src="../../common/js/unittest_util.js"></script>
......
...@@ -6,14 +6,6 @@ window.metrics = { ...@@ -6,14 +6,6 @@ window.metrics = {
recordEnum: function() {} recordEnum: function() {}
}; };
function MockMetadataModel(properties) {
this.properties_ = properties;
}
MockMetadataModel.prototype.get = function() {
return Promise.resolve([this.properties_]);
};
function setUp() { function setUp() {
// Behavior of window.chrome depends on each test case. window.chrome should // Behavior of window.chrome depends on each test case. window.chrome should
// be initialized properly inside each test function. // be initialized properly inside each test function.
......
...@@ -92,6 +92,14 @@ js_library("gallery_data_model") { ...@@ -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") { js_library("gallery_item") {
deps = [ deps = [
":gallery_util", ":gallery_util",
...@@ -127,6 +135,14 @@ js_library("gallery_util_unittest") { ...@@ -127,6 +135,14 @@ js_library("gallery_util_unittest") {
js_library("metadata_worker") { 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") { js_library("ribbon") {
deps = [ deps = [
":gallery_data_model", ":gallery_data_model",
...@@ -182,6 +198,7 @@ js_library("thumbnail_mode") { ...@@ -182,6 +198,7 @@ js_library("thumbnail_mode") {
js_unit_tests("unit_tests") { js_unit_tests("unit_tests") {
deps = [ deps = [
":dimmable_ui_controller_unittest", ":dimmable_ui_controller_unittest",
":gallery_data_model_unittest",
":gallery_util_unittest", ":gallery_util_unittest",
":ribbon_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; ...@@ -6,37 +6,20 @@ var model;
var fileSystem; var fileSystem;
var item; var item;
/**
* Mock thumbnail model.
*/
function ThumbnailModel() {
}
ThumbnailModel.prototype.get = function(entries) {
return Promise.resolve(entries.map(function() {
return {};
}));
};
function setUp() { function setUp() {
model = new GalleryDataModel( // Avoid creating the default EntryListWatcher, since it needs access to
/* Mock MetadataModel */{ // fileManagerPrivate, which is not in the unit test environment.
get: function() { let mockEntryListWatcher = /** @type{!EntryListWatcher} */ ({});
return Promise.resolve([{}]); model = new GalleryDataModel(new MockMetadataModel({}), mockEntryListWatcher);
}
},
/* Mock EntryListWatcher */{});
fileSystem = new MockFileSystem('volumeId'); fileSystem = new MockFileSystem('volumeId');
model.fallbackSaveDirectory = fileSystem.root; model.fallbackSaveDirectory = fileSystem.root;
} }
function testSaveItemOverwrite(callback) { function testSaveItemOverwrite(callback) {
var item = new GalleryItem( var item = new MockGalleryItem(
new MockEntry(fileSystem, '/test.jpg'), new MockFileEntry(fileSystem, '/test.jpg'), null, {}, null,
null, false /* isOriginal */);
/* metadataItem */ {},
/* thumbnailMetadataItem */ {},
/* original */ true);
// Mocking the saveToFile method. // Mocking the saveToFile method.
item.saveToFile = function( item.saveToFile = function(
...@@ -57,15 +40,13 @@ function testSaveItemOverwrite(callback) { ...@@ -57,15 +40,13 @@ function testSaveItemOverwrite(callback) {
} }
function testSaveItemToNewFile(callback) { function testSaveItemToNewFile(callback) {
var item = new GalleryItem( var item = new MockGalleryItem(
new MockEntry(fileSystem, '/test.webp'), new MockFileEntry(fileSystem, '/test.webp'), null, {}, null,
null, true /* isOriginal */);
/* metadataItem */ {},
/* thumbnailMetadataItem */ {},
/* original */ true);
// Mocking the saveToFile method. In this case, Gallery saves to a new file // Mocking the saveToFile method. In this case, Gallery saves to a new file
// since it cannot overwrite to webp image file. // since it cannot overwrite to webp image file.
/** @suppress {accessControls} */
item.saveToFile = function( item.saveToFile = function(
volumeManager, volumeManager,
metadataModel, metadataModel,
...@@ -74,8 +55,8 @@ function testSaveItemToNewFile(callback) { ...@@ -74,8 +55,8 @@ function testSaveItemToNewFile(callback) {
overwrite, overwrite,
callback) { callback) {
// Gallery item track new file. // Gallery item track new file.
this.entry_ = new MockEntry(fileSystem, '/test (1).png'); item.entry_ = new MockFileEntry(fileSystem, '/test (1).png');
this.original_ = false; item.original_ = false;
callback(true); callback(true);
}; };
model.push(item); model.push(item);
......
...@@ -20,6 +20,7 @@ var Gallery = function() {}; ...@@ -20,6 +20,7 @@ var Gallery = function() {};
<script src="../../file_manager/common/js/unittest_util.js"></script> <script src="../../file_manager/common/js/unittest_util.js"></script>
<script src="../../file_manager/common/js/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/thumbnail_model.js"></script>
<script src="../../file_manager/foreground/js/metadata/mock_metadata.js"></script>
<script src="gallery_item.js"></script> <script src="gallery_item.js"></script>
<script src="gallery_util.js"></script> <script src="gallery_util.js"></script>
......
...@@ -35,21 +35,8 @@ function setUp() { ...@@ -35,21 +35,8 @@ function setUp() {
}; };
} }
/**
* Returns a mock of metadata model.
* @private
* @return {!MetadataModel}
*/
function getMockMetadataModel() { function getMockMetadataModel() {
return { return new MockMetadataModel({size: 200});
get: function(entries, names) {
return Promise.resolve([
{size: 200}
]);
},
notifyEntriesChanged: function() {
}
};
} }
/** /**
......
...@@ -182,7 +182,7 @@ js_library("image_view") { ...@@ -182,7 +182,7 @@ js_library("image_view") {
js_library("image_view_unittest") { js_library("image_view_unittest") {
deps = [ deps = [
":image_view", ":image_view",
"../../../file_manager/common/js:mock_entry", "..:mock_gallery_item",
"//ui/webui/resources/js:webui_resource_test", "//ui/webui/resources/js:webui_resource_test",
] ]
} }
......
...@@ -2,30 +2,6 @@ ...@@ -2,30 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // 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() { function testImageView() {
var mockFileSystem = new MockFileSystem('volumeId'); var mockFileSystem = new MockFileSystem('volumeId');
var mockEntry = new MockFileEntry(mockFileSystem, '/test.jpg'); 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