diff options
Diffstat (limited to 'org.eclipse.tips.tests/src/org/eclipse/tips/util/ImageUtilTest.java')
-rw-r--r-- | org.eclipse.tips.tests/src/org/eclipse/tips/util/ImageUtilTest.java | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/org.eclipse.tips.tests/src/org/eclipse/tips/util/ImageUtilTest.java b/org.eclipse.tips.tests/src/org/eclipse/tips/util/ImageUtilTest.java new file mode 100644 index 000000000..d98699d89 --- /dev/null +++ b/org.eclipse.tips.tests/src/org/eclipse/tips/util/ImageUtilTest.java @@ -0,0 +1,142 @@ +/******************************************************************************* + * Copyright (c) 2018 Remain Software + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * wim.jongman@remainsoftware.com - initial API and implementation + *******************************************************************************/ +package org.eclipse.tips.util; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Image; +import org.eclipse.tips.ui.internal.util.ImageUtil; +import org.junit.Test; + +public class ImageUtilTest { + + private static String fImageBase64 = "" // + + "iVBORw0KGgoAAAANSUhEUgAAACIAAAAkCAYAAADsHujfAAAAAXNSR0IArs4c6QAAAARnQU1BAACx" + + "jwv8YQUAAAAJcEhZcwAAJOgAACToAYJjBRwAAAEcSURBVFhH7dZBCsIwEIXh3MkbuPJubtwI0kOIK" + + "IJuddseo+eIPORBDZM0MyPaRQr/IiRtP9osEoa+j0uoQdKykPVtiLunPKdtcx/i9iHPMRECRDi+82K" + + "A4LNKGBHCG5kVM0UgjKV1SITgxdMHIC1Gg0DZPeLBaBEoC0EWjAWBihCkwVgRaBaCajAeBKqCoBLGi0" + + "DVECRhVtfPsQWBVBAkYZgVgdQQlPsy0traTJB0TzDuGUtqSA7BrBgVJEVgLP0mC6YaIiE49w1MFaSEYF" + + "7MLKQGwTyYIkSDYFZMFmJBMAtGhHgQTIsRIdObLQiWYnAWltYhEYJDrhfBiCkhUHGz/rIGSWuQtAZJC+M" + + "4xn93Ol9iiAu49oduKZAuvgC5R8NSTiN3qAAAAABJRU5ErkJggg=="; + + private static String fImageBase64HTML = "data:image/png;base64," // + + "iVBORw0KGgoAAAANSUhEUgAAACIAAAAkCAYAAADsHujfAAAAAXNSR0IArs4c6QAAAARnQU1BAACx" + + "jwv8YQUAAAAJcEhZcwAAJOgAACToAYJjBRwAAAEcSURBVFhH7dZBCsIwEIXh3MkbuPJubtwI0kOIK" + + "IJuddseo+eIPORBDZM0MyPaRQr/IiRtP9osEoa+j0uoQdKykPVtiLunPKdtcx/i9iHPMRECRDi+82K" + + "A4LNKGBHCG5kVM0UgjKV1SITgxdMHIC1Gg0DZPeLBaBEoC0EWjAWBihCkwVgRaBaCajAeBKqCoBLGi0" + + "DVECRhVtfPsQWBVBAkYZgVgdQQlPsy0traTJB0TzDuGUtqSA7BrBgVJEVgLP0mC6YaIiE49w1MFaSEYF" + + "7MLKQGwTyYIkSDYFZMFmJBMAtGhHgQTIsRIdObLQiWYnAWltYhEYJDrhfBiCkhUHGz/rIGSWuQtAZJC+M" + + "4xn93Ol9iiAu49oduKZAuvgC5R8NSTiN3qAAAAABJRU5ErkJggg=="; + + @Test + public void decodeImageToBase64Test() throws IOException { + Image image = new Image(null, ImageUtil.decodeToImage(fImageBase64)); + String base64Image = ImageUtil.decodeFromImage(image, SWT.IMAGE_PNG); + image.dispose(); + image = new Image(null, ImageUtil.decodeToImage(base64Image)); + String base64Image2 = ImageUtil.decodeFromImage(image, SWT.IMAGE_PNG); + assertTrue(base64Image, base64Image.equals(base64Image2)); + image.dispose(); + + Image image2 = new Image(null, ImageUtil.decodeToImage(fImageBase64HTML)); + String base64Image3 = ImageUtil.decodeFromImage(image2, SWT.IMAGE_PNG); + image2.dispose(); + image2 = new Image(null, ImageUtil.decodeToImage(base64Image3)); + String base64Image4 = ImageUtil.decodeFromImage(image2, SWT.IMAGE_PNG); + assertTrue(base64Image3, base64Image3.equals(base64Image4)); + image2.dispose(); + } + + @Test + public void testGetWidth() { + assertTrue(ImageUtil.getWidth(1, 1000, 100) == 100); + assertTrue(ImageUtil.getWidth(1, 100, 1000) == 100); + assertTrue(ImageUtil.getWidth(1, 100, 99) == 99); + assertTrue(ImageUtil.getWidth(1, 100, 98) == 98); + assertTrue(ImageUtil.getWidth(1, 100, 100) == 100); + assertTrue(ImageUtil.getWidth(1, 99, 100) == 99); + assertTrue(ImageUtil.getWidth(1, 77, 77) == 77); + assertTrue(ImageUtil.getWidth(1, 101, 100) == 100); + assertTrue(ImageUtil.getWidth(1, 149, 100) == 100); + assertTrue(ImageUtil.getWidth(1, 200, 300) == 200); + assertTrue(ImageUtil.getWidth(1, 11, 10) == 10); + + assertTrue(ImageUtil.getWidth(0.5, 1000, 100) == 50); + assertTrue(ImageUtil.getWidth(0.5, 100, 1000) == 100); + assertTrue(ImageUtil.getWidth(0.5, 100, 99) == 49); + assertTrue(ImageUtil.getWidth(0.5, 100, 98) == 49); + assertTrue(ImageUtil.getWidth(0.5, 100, 100) == 50); + assertTrue(ImageUtil.getWidth(0.5, 99, 100) == 50); + assertTrue(ImageUtil.getWidth(0.5, 77, 77) == 38); + assertTrue(ImageUtil.getWidth(0.5, 101, 100) == 50); + assertTrue(ImageUtil.getWidth(0.5, 149, 100) == 50); + assertTrue(ImageUtil.getWidth(0.5, 200, 300) == 150); + assertTrue(ImageUtil.getWidth(0.5, 11, 10) == 5); + + assertTrue(ImageUtil.getWidth(2, 1000, 100) == 200); + assertTrue(ImageUtil.getWidth(2, 100, 1000) == 100); + assertTrue(ImageUtil.getWidth(2, 100, 99) == 100); + assertTrue(ImageUtil.getWidth(2, 100, 50) == 100); + assertTrue(ImageUtil.getWidth(2, 100, 49) == 98); + assertTrue(ImageUtil.getWidth(2, 100, 98) == 100); + assertTrue(ImageUtil.getWidth(2, 100, 100) == 100); + assertTrue(ImageUtil.getWidth(2, 99, 100) == 99); + assertTrue(ImageUtil.getWidth(2, 77, 77) == 77); + assertTrue(ImageUtil.getWidth(2, 101, 100) == 101); + assertTrue(ImageUtil.getWidth(2, 149, 100) == 149); + assertTrue(ImageUtil.getWidth(2, 200, 300) == 200); + assertTrue(ImageUtil.getWidth(2, 11, 10) == 11); + } + + @Test + public void testGetHeight() { + assertTrue(ImageUtil.getHeight(1, 1000, 100) == 100); + assertTrue(ImageUtil.getHeight(1, 100, 1000) == 100); + assertTrue(ImageUtil.getHeight(1, 100, 99) == 99); + assertTrue(ImageUtil.getHeight(1, 100, 98) == 98); + assertTrue(ImageUtil.getHeight(1, 100, 100) == 100); + assertTrue(ImageUtil.getHeight(1, 99, 100) == 99); + assertTrue(ImageUtil.getHeight(1, 77, 77) == 77); + assertTrue(ImageUtil.getHeight(1, 101, 100) == 100); + assertTrue(ImageUtil.getHeight(1, 149, 100) == 100); + assertTrue(ImageUtil.getHeight(1, 200, 300) == 200); + assertTrue(ImageUtil.getHeight(1, 11, 10) == 10); + + assertTrue(ImageUtil.getHeight(0.5, 1000, 100) == 100); + assertTrue(ImageUtil.getHeight(0.5, 100, 1000) == 200); + assertTrue(ImageUtil.getHeight(0.5, 100, 99) == 99); + assertTrue(ImageUtil.getHeight(0.5, 100, 98) == 98); + assertTrue(ImageUtil.getHeight(0.5, 100, 100) == 100); + assertTrue(ImageUtil.getHeight(0.5, 99, 100) == 100); + assertTrue(ImageUtil.getHeight(0.5, 77, 77) == 77); + assertTrue(ImageUtil.getHeight(0.5, 101, 100) == 100); + assertTrue(ImageUtil.getHeight(0.5, 149, 100) == 100); + assertTrue(ImageUtil.getHeight(0.5, 200, 300) == 300); + assertTrue(ImageUtil.getHeight(0.5, 11, 10) == 10); + + assertTrue(ImageUtil.getHeight(2, 1000, 100) == 100); + assertTrue(ImageUtil.getHeight(2, 100, 1000) == 50); + assertTrue(ImageUtil.getHeight(2, 100, 99) == 50); + assertTrue(ImageUtil.getHeight(2, 100, 50) == 50); + assertTrue(ImageUtil.getHeight(2, 100, 49) == 49); + assertTrue(ImageUtil.getHeight(2, 100, 98) == 50); + assertTrue(ImageUtil.getHeight(2, 100, 100) == 50); + assertTrue(ImageUtil.getHeight(2, 99, 100) == 49); + assertTrue(ImageUtil.getHeight(2, 77, 77) == 38); + assertTrue(ImageUtil.getHeight(2, 101, 100) == 50); + assertTrue(ImageUtil.getHeight(2, 149, 100) == 74); + assertTrue(ImageUtil.getHeight(2, 200, 300) == 100); + assertTrue(ImageUtil.getHeight(2, 11, 10) == 5); + } +} |