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

Closure compile file_manager/.../thumbnail_loader_unittest.js.

The //ui/file_manager/common/js:util target has a dependency on the
file_manager_private extern. Break out that extern to a separate target
to bundle its hidden dependencies together, since multiple things
depend on it.

Bug: 860355
Cq-Include-Trybots: luci.chromium.try:closure_compilation
Change-Id: Icfa65dff5c692b6bd415f9f2d5c67b14a0db0ef6
Reviewed-on: https://chromium-review.googlesource.com/1212706Reviewed-by: default avatarNoel Gordon <noel@chromium.org>
Commit-Queue: Trent Apted <tapted@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589437}
parent f3b67c85
......@@ -121,8 +121,7 @@ IN_PROC_BROWSER_TEST_F(FileManagerJsTest, FileTasks) {
}
IN_PROC_BROWSER_TEST_F(FileManagerJsTest, ThumbnailLoader) {
RunTest(base::FilePath(
FILE_PATH_LITERAL("foreground/js/thumbnail_loader_unittest.html")));
RunGeneratedTest("/foreground/js/thumbnail_loader_unittest.html");
}
IN_PROC_BROWSER_TEST_F(FileManagerJsTest, MetadataCacheItem) {
......
......@@ -50,6 +50,7 @@ group("closure_compile") {
group("unit_test_data") {
deps = [
"file_manager/foreground/js:unit_tests",
"gallery/js:unit_tests",
"gallery/js/image_editor:unit_tests",
"image_loader:unit_tests",
......
......@@ -15,3 +15,16 @@ js_library("webview_tag") {
"webview_tag.js",
]
}
js_library("file_manager_private") {
sources = []
# The file_manager_private extern depends on file_system_provider and
# extension APIs. Ensure they're pulled in together.
externs_list = [
"$externs_path/chrome.js",
"$externs_path/chrome_extensions.js",
"$externs_path/file_manager_private.js",
"$externs_path/file_system_provider.js",
]
}
......@@ -40,8 +40,6 @@ js_library("closure_compile_externs") {
sources = []
externs_list = [
"$externs_path/command_line_private.js",
"$externs_path/file_manager_private.js",
"$externs_path/file_system_provider.js",
"$externs_path/metrics_private.js",
"../../../externs/background/file_browser_background.js",
"../../../externs/background/file_browser_background_full.js",
......
......@@ -58,13 +58,10 @@ js_library("lru_cache") {
js_library("metrics") {
deps = [
":metrics_base",
"../../../externs:file_manager_private",
"//ui/webui/resources/js:assert",
]
externs_list = [
"$externs_path/chrome.js",
"$externs_path/chrome_extensions.js",
"$externs_path/file_manager_private.js",
"$externs_path/file_system_provider.js",
"$externs_path/metrics_private.js",
"//third_party/analytics/externs.js",
]
......@@ -99,14 +96,13 @@ js_library("util") {
deps = [
":files_app_entry_types",
":volume_manager_common",
"../../../externs:file_manager_private",
"//ui/webui/resources/js:load_time_data",
"//ui/webui/resources/js:util",
"//ui/webui/resources/js/cr:event_target",
"//ui/webui/resources/js/cr:ui",
]
externs_list = [
"$externs_path/chrome.js",
"$externs_path/chrome_extensions.js",
"$externs_path/command_line_private.js",
"../../../externs/app_window_common.js",
"../../../externs/entry_location.js",
......
......@@ -3,8 +3,9 @@
# found in the LICENSE file.
import("//third_party/closure_compiler/compile_js.gni")
import("//ui/file_manager/js_unit_tests.gni")
js_type_check("closure_compile") {
js_type_check("closure_compile_module") {
deps = [
":actions_controller",
":actions_model",
......@@ -586,6 +587,15 @@ js_library("thumbnail_loader") {
]
}
js_library("thumbnail_loader_unittest") {
deps = [
":thumbnail_loader",
"../../common/js:mock_entry",
"../../common/js:unittest_util",
"//ui/webui/resources/js:webui_resource_test",
]
}
js_library("toolbar_controller") {
deps = [
":file_selection",
......@@ -598,6 +608,7 @@ js_library("toolbar_controller") {
js_library("volume_manager_wrapper") {
deps = [
"../../../externs:file_manager_private",
"../../common/js:async_util",
"../../common/js:volume_manager_common",
"//ui/webui/resources/js:cr",
......@@ -605,11 +616,6 @@ js_library("volume_manager_wrapper") {
"//ui/webui/resources/js/cr/ui:array_data_model",
]
externs_list = [
# Note: volume_info has a dependency on chrome.fileManagerPrivate.IconSet.
# Also, fileManagerPrivate depends on chrome.fileSystemProvider, so these
# must be introduced together.
"$externs_path/file_manager_private.js",
"$externs_path/file_system_provider.js",
"../../../externs/background/volume_manager_factory.js",
"../../../externs/volume_info.js",
"../../../externs/volume_info_list.js",
......@@ -629,3 +635,16 @@ js_library("webui_command_extender") {
"//ui/webui/resources/js/cr/ui:command",
]
}
js_unit_tests("unit_tests") {
deps = [
":thumbnail_loader_unittest",
]
}
group("closure_compile") {
deps = [
":closure_compile_module",
":unit_tests_type_check",
]
}
......@@ -36,8 +36,6 @@ js_library("closure_compile_externs") {
sources = []
externs_list = [
"$externs_path/command_line_private.js",
"$externs_path/file_manager_private.js",
"$externs_path/file_system_provider.js",
"../../../../externs/app_window_common.js",
"../../../../externs/entry_location.js",
"../../../../externs/platform.js",
......
<!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="../../common/js/file_type.js"></script>
<script src="../../common/js/mock_entry.js"></script>
<script src="../../common/js/unittest_util.js"></script>
<script src="../../../image_loader/image_loader_client.js"></script>
<script src="thumbnail_loader.js"></script>
<script src="thumbnail_loader_unittest.js"></script>
......@@ -3,7 +3,8 @@
// found in the LICENSE file.
function getLoadTarget(entry, metadata) {
return new ThumbnailLoader(entry, null, metadata).getLoadTarget();
return new ThumbnailLoader(entry, ThumbnailLoader.LoaderType.CANVAS, metadata)
.getLoadTarget();
}
/**
......@@ -26,6 +27,17 @@ function generateSampleImageDataUrl(width, height) {
return canvas.toDataURL('image/png');
}
/**
* Installs a mock ImageLoader with a compatible load method.
*
* @param {function(string, function(!Object), Object=)} mockLoad
*/
function installMockLoad(mockLoad) {
ImageLoaderClient.getInstance = function() {
return /** @type {!ImageLoaderClient} */ ({load: mockLoad});
};
}
function testShouldUseMetadataThumbnail() {
var mockFileSystem = new MockFileSystem('volumeId');
var imageEntry = new MockEntry(mockFileSystem, '/test.jpg');
......@@ -55,14 +67,9 @@ function testShouldUseMetadataThumbnail() {
}
function testLoadAsDataUrlFromImageClient(callback) {
ImageLoaderClient.getInstance = function() {
return {
load: function(url, callback, opt_option) {
callback({
status: 'success', data: 'imageDataUrl', width: 32, height: 32});
}
};
};
installMockLoad(function(url, callback, opt_option) {
callback({status: 'success', data: 'imageDataUrl', width: 32, height: 32});
});
var fileSystem = new MockFileSystem('volume-id');
var entry = new MockEntry(fileSystem, '/Test1.jpg');
......@@ -75,15 +82,11 @@ function testLoadAsDataUrlFromImageClient(callback) {
}
function testLoadAsDataUrlFromExifThumbnail(callback) {
ImageLoaderClient.getInstance = function() {
return {
load: function(url, callback, opt_option) {
// Assert that data url is passed.
assertTrue(/^data:/i.test(url));
callback({status: 'success', data: url, width: 32, height: 32});
}
};
};
installMockLoad(function(url, callback, opt_option) {
// Assert that data url is passed.
assertTrue(/^data:/i.test(url));
callback({status: 'success', data: url, width: 32, height: 32});
});
var metadata = {
thumbnail: {
......@@ -102,17 +105,17 @@ function testLoadAsDataUrlFromExifThumbnail(callback) {
}
function testLoadAsDataUrlFromExifThumbnailPropagatesTransform(callback) {
ImageLoaderClient.getInstance = function() {
return {
load: function(url, callback, opt_option) {
// Assert that data url and transform info is passed.
assertTrue(/^data:/i.test(url));
assertEquals(1, opt_option.orientation.rotate90);
callback({status: 'success', data: generateSampleImageDataUrl(32, 64),
width: 32, height: 64});
}
};
};
installMockLoad(function(url, callback, opt_option) {
// Assert that data url and transform info is passed.
assertTrue(/^data:/i.test(url));
assertEquals(1, opt_option.orientation.rotate90);
callback({
status: 'success',
data: generateSampleImageDataUrl(32, 64),
width: 32,
height: 64
});
});
var metadata = {
thumbnail: {
......@@ -142,15 +145,15 @@ function testLoadAsDataUrlFromExternal(callback) {
var externalCroppedThumbnailUrl = 'https://external-cropped-thumbnail-url/';
var externalThumbnailDataUrl = generateSampleImageDataUrl(32, 32);
ImageLoaderClient.getInstance = function() {
return {
load: function(url, callback, opt_option) {
assertEquals(externalCroppedThumbnailUrl, url);
callback({status: 'success', data: externalThumbnailDataUrl,
width: 32, height: 32});
}
};
};
installMockLoad(function(url, callback, opt_option) {
assertEquals(externalCroppedThumbnailUrl, url);
callback({
status: 'success',
data: externalThumbnailDataUrl,
width: 32,
height: 32
});
});
var metadata = {
external: {
......@@ -170,19 +173,19 @@ function testLoadAsDataUrlFromExternal(callback) {
}
function testLoadDetachedFromExifInCavnasModeThumbnailDoesNotRotate(callback) {
ImageLoaderClient.getInstance = function() {
return {
load: function(url, callback, opt_option) {
// Assert that data url is passed.
assertTrue(/^data:/i.test(url));
// Assert that the rotation is propagated to ImageLoader.
assertEquals(1, opt_option.orientation.rotate90);
// ImageLoader returns rotated image.
callback({status: 'success', data: generateSampleImageDataUrl(32, 64),
width: 32, height: 64});
}
};
};
installMockLoad(function(url, callback, opt_option) {
// Assert that data url is passed.
assertTrue(/^data:/i.test(url));
// Assert that the rotation is propagated to ImageLoader.
assertEquals(1, opt_option.orientation.rotate90);
// ImageLoader returns rotated image.
callback({
status: 'success',
data: generateSampleImageDataUrl(32, 64),
width: 32,
height: 64
});
});
var metadata = {
thumbnail: {
......
......@@ -50,8 +50,6 @@ js_library("closure_compile_externs") {
externs_list = [
"js/externs.js",
"$externs_path/command_line_private.js",
"$externs_path/file_manager_private.js",
"$externs_path/file_system_provider.js",
"$externs_path/metrics_private.js",
"../../externs/app_window_common.js",
"../../externs/background/file_browser_background.js",
......
......@@ -52,13 +52,10 @@ js_library("dimmable_ui_controller_unittest") {
js_library("entry_list_watcher") {
deps = [
"../../externs:file_manager_private",
"//ui/webui/resources/js:assert",
"//ui/webui/resources/js/cr/ui:array_data_model",
]
externs_list = [
"$externs_path/file_system_provider.js",
"$externs_path/file_manager_private.js",
]
}
js_library("entry_list_watcher_unittest") {
......
......@@ -40,10 +40,7 @@ js_library("image_loader") {
":piex_loader",
":request",
":scheduler",
]
externs_list = [
"$externs_path/file_manager_private.js",
"$externs_path/file_system_provider.js",
"../externs:file_manager_private",
]
}
......
......@@ -19,8 +19,6 @@ js_library("closure_compile_externs") {
externs_list = [
"$externs_path/chrome_extensions.js",
"$externs_path/command_line_private.js",
"$externs_path/file_manager_private.js",
"$externs_path/file_system_provider.js",
"$externs_path/media_player_private.js",
"$externs_path/metrics_private.js",
"../../../externs/app_window_common.js",
......
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