blob: 1fec3b5376ff39fd7c80a68acfd2b691ae76fd41 [file] [log] [blame]
// 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.
var model;
var fileSystem;
var item;
function setUp() {
// 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 MockGalleryItem(
new MockFileEntry(fileSystem, '/test.jpg'), null, {}, null,
false /* isOriginal */);
// Mocking the saveToFile method.
item.saveToFile = function(
volumeManager,
metadataModel,
fallbackDir,
canvas,
overwrite,
callback) {
callback(true);
};
model.push(item);
reportPromise(
model
.saveItem(
{}, item, document.createElement('canvas'), true /* overwrite */)
.then(function() {
assertEquals(1, model.length);
}),
callback);
}
function testSaveItemToNewFile(callback) {
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,
fallbackDir,
canvas,
overwrite,
callback) {
// Gallery item track new file.
item.entry_ = new MockFileEntry(fileSystem, '/test (1).png');
item.original_ = false;
callback(true);
};
model.push(item);
reportPromise(
model.saveItem({}, item, document.createElement('canvas'),
false /* not overwrite */).
then(function() {
assertEquals(2, model.length);
assertEquals('test (1).png', model.item(0).getFileName());
assertFalse(model.item(0).isOriginal());
assertEquals('test.webp', model.item(1).getFileName());
assertTrue(model.item(1).isOriginal());
}),
callback);
}