Index: ui/file_manager/image_loader/image_loader_unittest.js |
diff --git a/ui/file_manager/image_loader/image_loader_unittest.js b/ui/file_manager/image_loader/image_loader_unittest.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..091736464a3ae10af65278487dc243e8d190485d |
--- /dev/null |
+++ b/ui/file_manager/image_loader/image_loader_unittest.js |
@@ -0,0 +1,165 @@ |
+// 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. |
+ |
+/** |
+ * Test case: |
+ * - Source image: 200x50 |
+ * - Target: max size is 100x100 |
+ */ |
+function testNormalImage() { |
+ var source = new Image(); |
+ source.width = 200; |
+ source.height = 50; |
+ var options = { |
+ maxWidth: 100, |
+ maxHeight: 100 |
+ }; |
+ var result = ImageLoader.calculateCopyParameters(source, options); |
+ assertEquals(0, result.source.x); |
+ assertEquals(0, result.source.y); |
+ assertEquals(200, result.source.width); |
+ assertEquals(50, result.source.height); |
+ assertEquals(0, result.target.x); |
+ assertEquals(0, result.target.y); |
+ assertEquals(100, result.target.width); |
+ assertEquals(25, result.target.height); |
+ assertEquals(100, result.canvas.width); |
+ assertEquals(25, result.canvas.height); |
+}; |
+ |
+/** |
+ * Test case: |
+ * - Source image: 50x200 90 deg clock-wise rotated image. |
+ * - Target: max size is 100x100 |
+ */ |
+function testRotatedImage() { |
+ var source = new Image(); |
+ source.width = 50; |
+ source.height = 200; |
+ var options = { |
+ maxWidth: 100, |
+ maxHeight: 100, |
+ orientation: 1 |
+ }; |
+ var result = ImageLoader.calculateCopyParameters(source, options); |
+ assertEquals(0, result.source.x); |
+ assertEquals(0, result.source.y); |
+ assertEquals(50, result.source.width); |
+ assertEquals(200, result.source.height); |
+ assertEquals(0, result.target.x); |
+ assertEquals(0, result.target.y); |
+ assertEquals(25, result.target.width); |
+ assertEquals(100, result.target.height); |
+ assertEquals(100, result.canvas.width); |
+ assertEquals(25, result.canvas.height); |
+} |
+ |
+/** |
+ * Test case: |
+ * - Source image: 800x100 |
+ * - Target: 50x50 cropped image. |
+ */ |
+function testCroppedImage() { |
+ var source = new Image(); |
+ source.width = 800; |
+ source.height = 100; |
+ var options = { |
+ width: 50, |
+ height: 50, |
+ crop: true |
+ }; |
+ var result = ImageLoader.calculateCopyParameters(source, options); |
+ assertEquals(350, result.source.x); |
+ assertEquals(0, result.source.y); |
+ assertEquals(100, result.source.width); |
+ assertEquals(100, result.source.height); |
+ assertEquals(0, result.target.x); |
+ assertEquals(0, result.target.y); |
+ assertEquals(50, result.target.width); |
+ assertEquals(50, result.target.height); |
+ assertEquals(50, result.canvas.width); |
+ assertEquals(50, result.canvas.height); |
+} |
+ |
+/** |
+ * Test case: |
+ * - Source image: 200x25 |
+ * - Target: 50x50 cropped image. |
+ */ |
+function testCroppedImageWithResize() { |
+ var source = new Image(); |
+ source.width = 200; |
+ source.height = 25; |
+ var options = { |
+ width: 50, |
+ height: 50, |
+ crop: true |
+ }; |
+ var result = ImageLoader.calculateCopyParameters(source, options); |
+ assertEquals(87, result.source.x); |
+ assertEquals(0, result.source.y); |
+ assertEquals(25, result.source.width); |
+ assertEquals(25, result.source.height); |
+ assertEquals(0, result.target.x); |
+ assertEquals(0, result.target.y); |
+ assertEquals(50, result.target.width); |
+ assertEquals(50, result.target.height); |
+ assertEquals(50, result.canvas.width); |
+ assertEquals(50, result.canvas.height); |
+} |
+ |
+/** |
+ * Test case: |
+ * - Source image: 20x10 |
+ * - Target: 50x50 cropped image. |
+ */ |
+function testCroppedTinyImage() { |
+ var source = new Image(); |
+ source.width = 20; |
+ source.height = 10; |
+ var options = { |
+ width: 50, |
+ height: 50, |
+ crop: true |
+ }; |
+ var result = ImageLoader.calculateCopyParameters(source, options); |
+ assertEquals(5, result.source.x); |
+ assertEquals(0, result.source.y); |
+ assertEquals(10, result.source.width); |
+ assertEquals(10, result.source.height); |
+ assertEquals(0, result.target.x); |
+ assertEquals(0, result.target.y); |
+ assertEquals(50, result.target.width); |
+ assertEquals(50, result.target.height); |
+ assertEquals(50, result.canvas.width); |
+ assertEquals(50, result.canvas.height); |
+} |
+ |
+/** |
+ * Test case: |
+ * - Source image: 100x400 90 degree clock-wise rotated. |
+ * - Target: 50x50 cropped image |
+ */ |
+function testCroppedRotatedImage() { |
+ var source = new Image(); |
+ source.width = 100; |
+ source.height = 400; |
+ var options = { |
+ width: 50, |
+ height: 50, |
+ crop: true, |
+ orientation: 1 |
+ }; |
+ var result = ImageLoader.calculateCopyParameters(source, options); |
+ assertEquals(0, result.source.x); |
+ assertEquals(150, result.source.y); |
+ assertEquals(100, result.source.width); |
+ assertEquals(100, result.source.height); |
+ assertEquals(0, result.target.x); |
+ assertEquals(0, result.target.y); |
+ assertEquals(50, result.target.width); |
+ assertEquals(50, result.target.height); |
+ assertEquals(50, result.canvas.width); |
+ assertEquals(50, result.canvas.height); |
+} |