aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java914
1 files changed, 0 insertions, 914 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java
deleted file mode 100644
index 72c929618..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java
+++ /dev/null
@@ -1,914 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.ide.eclipse.adt.internal.editors.draw9patch.graphics;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-
-import com.android.ide.eclipse.adt.internal.editors.draw9patch.graphics.NinePatchedImage.Chunk;
-import com.android.ide.eclipse.adt.internal.editors.draw9patch.graphics.NinePatchedImage.Projection;
-import com.android.ide.eclipse.adt.internal.editors.draw9patch.graphics.NinePatchedImage.Tick;
-
-public class NinePatchedImageTest extends TestCase {
-
- private static final String DIR = "/com/android/ide/eclipse/testdata/draw9patch/";
-
- public void testReadNoPatchedImage() throws Exception {
- String fileName = DIR + "no-patched.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- ImageData data = image.getImageData();
- int width = data.width;
- int height = data.height;
-
- assertEquals(72, width);
- assertEquals(50, height);
-
- assertFalse(image.hasNinePatchExtension());
- }
-
- public void testReadNoPatchedInteraceImage() throws Exception {
- String fileName = DIR + "no-patched-interlace.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- ImageData data = image.getImageData();
- int width = data.width;
- int height = data.height;
-
- assertEquals(72, width);
- assertEquals(50, height);
-
- assertFalse(image.hasNinePatchExtension());
- }
-
- public void testConvert9PatchedImage() throws Exception {
- String fileName = DIR + "no-patched.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- ImageData data = image.getImageData();
- int width = data.width;
- int height = data.height;
-
- assertEquals(72, width);
- assertEquals(50, height);
-
- assertFalse(image.hasNinePatchExtension());
-
- image.convertToNinePatch();
-
- data = image.getImageData();
- width = data.width;
- height = data.height;
-
- // increased patch size
- assertEquals(72 + 2, width);
- assertEquals(50 + 2, height);
-
- assertTrue(image.hasNinePatchExtension());
- assertFalse(image.isDirty());
-
- // initialized patches
- List<Tick> horizontalPatches = image.getHorizontalPatches();
- List<Tick> verticalPatches = image.getVerticalPatches();
- assertEquals(1, horizontalPatches.size());
- assertEquals(1, verticalPatches.size());
-
- // initialized contents area
- List<Tick> horizontalContentsArea = image.getHorizontalContents();
- List<Tick> verticalContentsArea = image.getVerticalContents();
- assertEquals(1, horizontalContentsArea.size());
- assertEquals(1, verticalContentsArea.size());
-
- // content area rectangle
- Rectangle contentsArea = image.getContentArea();
- assertEquals(new Rectangle(1, 1, width - 2, height - 2), contentsArea);
- }
-
- public void testReadInvalidPatchedImageCorners() throws Exception {
-
- // top-left
- String fileName = DIR + "invalid-patched1.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
- assertTrue(image.hasNinePatchExtension());
- assertFalse(image.ensure9Patch());
-
- // top-right
- fileName = DIR + "invalid-patched2.9.png";
- image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
- assertTrue(image.hasNinePatchExtension());
- assertFalse(image.ensure9Patch());
-
- // bottom-left
- fileName = DIR + "invalid-patched3.9.png";
- image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
- assertTrue(image.hasNinePatchExtension());
- assertFalse(image.ensure9Patch());
-
- // bottom-right
- fileName = DIR + "invalid-patched4.9.png";
- image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
- assertTrue(image.hasNinePatchExtension());
- assertFalse(image.ensure9Patch());
- }
-
- public void testReadInvalidPatchedImageLine() throws Exception {
-
- // top
- String fileName = DIR + "invalid-patched5.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
- assertTrue(image.hasNinePatchExtension());
- assertFalse(image.ensure9Patch());
-
- // right
- fileName = DIR + "invalid-patched6.9.png";
- image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
- assertTrue(image.hasNinePatchExtension());
- assertFalse(image.ensure9Patch());
-
- // bottom
- fileName = DIR + "invalid-patched7.9.png";
- image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
- assertTrue(image.hasNinePatchExtension());
- assertFalse(image.ensure9Patch());
-
- // left
- fileName = DIR + "invalid-patched8.9.png";
- image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
- assertTrue(image.hasNinePatchExtension());
- assertFalse(image.ensure9Patch());
- }
-
- public void testEnsure9PatchIgnoreInvalidPixels() throws Exception {
- // top
- String fileName = DIR + "invalid-patched5.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- // invalid pixel
- int invalidPixel = image.getImageData().getPixel(33, 0);
- assertTrue(0x0 != invalidPixel);
-
- assertTrue(image.hasNinePatchExtension());
- assertFalse(image.ensure9Patch());
-
- // ensure9path() ignored invalid pixels
- int invalidPixelAlpha = image.getImageData().getAlpha(33, 0);
- assertEquals(0x00, invalidPixelAlpha);
- }
-
- public void test9Patch1() throws Exception {
- String fileName = DIR + "patched1.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- assertTrue(image.hasNinePatchExtension());
- assertTrue(image.ensure9Patch());
-
- // patches
- List<Tick> horizontalPatches = image.getHorizontalPatches();
- List<Tick> verticalPatches = image.getVerticalPatches();
- assertEquals(3, horizontalPatches.size());
- assertEquals(3, verticalPatches.size());
-
- Chunk[][] chunks = null;
- chunks = image.getChunks(chunks);
-
- // vertical chunk size
- assertEquals(3, chunks.length);
-
- // horizontal chunk size
- for (int i = 0; i < chunks.length; i++) {
- assertEquals(3, chunks[i].length);
- }
-
- Chunk c = null;
- Rectangle rect = null;
-
- // Row 1
- c = chunks[0][0];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(1, rect.x);
- assertEquals(1, rect.y);
- assertEquals(1, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[0][1];
- rect = c.rect;
- assertEquals(Chunk.TYPE_VERTICAL, c.type);
- assertEquals(2, rect.x);
- assertEquals(1, rect.y);
- assertEquals(70, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[0][2];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(72, rect.x);
- assertEquals(1, rect.y);
- assertEquals(1, rect.width);
- assertEquals(1, rect.height);
-
- // Row 2
- c = chunks[1][0];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(1, rect.x);
- assertEquals(2, rect.y);
- assertEquals(1, rect.width);
- assertEquals(48, rect.height);
-
- c = chunks[1][1];
- rect = c.rect;
- assertEquals(Chunk.TYPE_FIXED, c.type);
- assertEquals(2, rect.x);
- assertEquals(2, rect.y);
- assertEquals(70, rect.width);
- assertEquals(48, rect.height);
-
- c = chunks[1][2];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(72, rect.x);
- assertEquals(2, rect.y);
- assertEquals(1, rect.width);
- assertEquals(48, rect.height);
-
- // Row 3
- c = chunks[2][0];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(1, rect.x);
- assertEquals(50, rect.y);
- assertEquals(1, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[2][1];
- rect = c.rect;
- assertEquals(Chunk.TYPE_VERTICAL, c.type);
- assertEquals(2, rect.x);
- assertEquals(50, rect.y);
- assertEquals(70, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[2][2];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(72, rect.x);
- assertEquals(50, rect.y);
- assertEquals(1, rect.width);
- assertEquals(1, rect.height);
- }
-
- public void test9Patch2() throws Exception {
- String fileName = DIR + "patched2.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- assertTrue(image.hasNinePatchExtension());
- assertTrue(image.ensure9Patch());
-
- // patches
- List<Tick> horizontalPatches = image.getHorizontalPatches();
- List<Tick> verticalPatches = image.getVerticalPatches();
- assertEquals(5, horizontalPatches.size());
- assertEquals(7, verticalPatches.size());
-
- NinePatchedImage.Chunk[][] chunks = null;
- chunks = image.getChunks(chunks);
-
- // vertical chunk size
- assertEquals(7, chunks.length);
-
- // horizontal chunk size
- for (int i = 0; i < chunks.length; i++) {
- assertEquals(5, chunks[i].length);
- }
-
- NinePatchedImage.Chunk c = null;
- Rectangle rect = null;
-
- // Row 1
- c = chunks[0][0];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(1, rect.x);
- assertEquals(1, rect.y);
- assertEquals(1, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[0][1];
- rect = c.rect;
- assertEquals(Chunk.TYPE_VERTICAL, c.type);
- assertEquals(2, rect.x);
- assertEquals(1, rect.y);
- assertEquals(34, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[0][2];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(36, rect.x);
- assertEquals(1, rect.y);
- assertEquals(1, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[0][3];
- rect = c.rect;
- assertEquals(Chunk.TYPE_VERTICAL, c.type);
- assertEquals(37, rect.x);
- assertEquals(1, rect.y);
- assertEquals(35, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[0][4];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(72, rect.x);
- assertEquals(1, rect.y);
- assertEquals(1, rect.width);
- assertEquals(1, rect.height);
-
- // Row 2
- c = chunks[1][0];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(1, rect.x);
- assertEquals(2, rect.y);
- assertEquals(1, rect.width);
- assertEquals(7, rect.height);
-
- c = chunks[1][1];
- rect = c.rect;
- assertEquals(Chunk.TYPE_FIXED, c.type);
- assertEquals(2, rect.x);
- assertEquals(2, rect.y);
- assertEquals(34, rect.width);
- assertEquals(7, rect.height);
-
- c = chunks[1][2];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(36, rect.x);
- assertEquals(2, rect.y);
- assertEquals(1, rect.width);
- assertEquals(7, rect.height);
-
- c = chunks[1][3];
- rect = c.rect;
- assertEquals(Chunk.TYPE_FIXED, c.type);
- assertEquals(37, rect.x);
- assertEquals(2, rect.y);
- assertEquals(35, rect.width);
- assertEquals(7, rect.height);
-
- c = chunks[1][4];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(72, rect.x);
- assertEquals(2, rect.y);
- assertEquals(1, rect.width);
- assertEquals(7, rect.height);
-
- // Row 3
- c = chunks[2][0];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(1, rect.x);
- assertEquals(9, rect.y);
- assertEquals(1, rect.width);
- assertEquals(4, rect.height);
-
- c = chunks[2][1];
- rect = c.rect;
- assertEquals(Chunk.TYPE_VERTICAL, c.type);
- assertEquals(2, rect.x);
- assertEquals(9, rect.y);
- assertEquals(34, rect.width);
- assertEquals(4, rect.height);
-
- c = chunks[2][2];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(36, rect.x);
- assertEquals(9, rect.y);
- assertEquals(1, rect.width);
- assertEquals(4, rect.height);
-
- c = chunks[2][3];
- rect = c.rect;
- assertEquals(Chunk.TYPE_VERTICAL, c.type);
- assertEquals(37, rect.x);
- assertEquals(9, rect.y);
- assertEquals(35, rect.width);
- assertEquals(4, rect.height);
-
- c = chunks[2][4];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(72, rect.x);
- assertEquals(9, rect.y);
- assertEquals(1, rect.width);
- assertEquals(4, rect.height);
-
- // Row 4
- c = chunks[3][0];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(1, rect.x);
- assertEquals(13, rect.y);
- assertEquals(1, rect.width);
- assertEquals(13, rect.height);
-
- c = chunks[3][1];
- rect = c.rect;
- assertEquals(Chunk.TYPE_FIXED, c.type);
- assertEquals(2, rect.x);
- assertEquals(13, rect.y);
- assertEquals(34, rect.width);
- assertEquals(13, rect.height);
-
- c = chunks[3][2];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(36, rect.x);
- assertEquals(13, rect.y);
- assertEquals(1, rect.width);
- assertEquals(13, rect.height);
-
- c = chunks[3][3];
- rect = c.rect;
- assertEquals(Chunk.TYPE_FIXED, c.type);
- assertEquals(37, rect.x);
- assertEquals(13, rect.y);
- assertEquals(35, rect.width);
- assertEquals(13, rect.height);
-
- c = chunks[3][4];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(72, rect.x);
- assertEquals(13, rect.y);
- assertEquals(1, rect.width);
- assertEquals(13, rect.height);
-
- // Row 5
- c = chunks[4][0];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(1, rect.x);
- assertEquals(26, rect.y);
- assertEquals(1, rect.width);
- assertEquals(12, rect.height);
-
- c = chunks[4][1];
- rect = c.rect;
- assertEquals(Chunk.TYPE_VERTICAL, c.type);
- assertEquals(2, rect.x);
- assertEquals(26, rect.y);
- assertEquals(34, rect.width);
- assertEquals(12, rect.height);
-
- c = chunks[4][2];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(36, rect.x);
- assertEquals(26, rect.y);
- assertEquals(1, rect.width);
- assertEquals(12, rect.height);
-
- c = chunks[4][3];
- rect = c.rect;
- assertEquals(Chunk.TYPE_VERTICAL, c.type);
- assertEquals(37, rect.x);
- assertEquals(26, rect.y);
- assertEquals(35, rect.width);
- assertEquals(12, rect.height);
-
- c = chunks[4][4];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(72, rect.x);
- assertEquals(26, rect.y);
- assertEquals(1, rect.width);
- assertEquals(12, rect.height);
-
- // Row 6
- c = chunks[5][0];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(1, rect.x);
- assertEquals(38, rect.y);
- assertEquals(1, rect.width);
- assertEquals(12, rect.height);
-
- c = chunks[5][1];
- rect = c.rect;
- assertEquals(Chunk.TYPE_FIXED, c.type);
- assertEquals(2, rect.x);
- assertEquals(38, rect.y);
- assertEquals(34, rect.width);
- assertEquals(12, rect.height);
-
- c = chunks[5][2];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(36, rect.x);
- assertEquals(38, rect.y);
- assertEquals(1, rect.width);
- assertEquals(12, rect.height);
-
- c = chunks[5][3];
- rect = c.rect;
- assertEquals(Chunk.TYPE_FIXED, c.type);
- assertEquals(37, rect.x);
- assertEquals(38, rect.y);
- assertEquals(35, rect.width);
- assertEquals(12, rect.height);
-
- c = chunks[5][4];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL, c.type);
- assertEquals(72, rect.x);
- assertEquals(38, rect.y);
- assertEquals(1, rect.width);
- assertEquals(12, rect.height);
-
- // Row 7
- c = chunks[6][0];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(1, rect.x);
- assertEquals(50, rect.y);
- assertEquals(1, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[6][1];
- rect = c.rect;
- assertEquals(Chunk.TYPE_VERTICAL, c.type);
- assertEquals(2, rect.x);
- assertEquals(50, rect.y);
- assertEquals(34, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[6][2];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(36, rect.x);
- assertEquals(50, rect.y);
- assertEquals(1, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[6][3];
- rect = c.rect;
- assertEquals(Chunk.TYPE_VERTICAL, c.type);
- assertEquals(37, rect.x);
- assertEquals(50, rect.y);
- assertEquals(35, rect.width);
- assertEquals(1, rect.height);
-
- c = chunks[6][4];
- rect = c.rect;
- assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type);
- assertEquals(72, rect.x);
- assertEquals(50, rect.y);
- assertEquals(1, rect.width);
- assertEquals(1, rect.height);
- }
-
- public void testContentArea() throws Exception {
- String fileName = DIR + "content-area.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- assertTrue(image.hasNinePatchExtension());
- assertTrue(image.ensure9Patch());
-
- // contents area
- List<Tick> horizontalContentsArea = image.getHorizontalContents();
- List<Tick> verticalContentsArea = image.getVerticalContents();
- assertEquals(3, horizontalContentsArea.size());
- assertEquals(3, verticalContentsArea.size());
-
- // content area rectangle
- Rectangle contentsArea = image.getContentArea();
- assertEquals(new Rectangle(19, 13, 35, 25), contentsArea);
- }
-
- public void testContentAreaOneDot() throws Exception {
- String fileName = DIR + "content-area-one-dot.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- assertTrue(image.hasNinePatchExtension());
- assertTrue(image.ensure9Patch());
-
- // contents area
- List<Tick> horizontalContentsArea = image.getHorizontalContents();
- List<Tick> verticalContentsArea = image.getVerticalContents();
- assertEquals(3, horizontalContentsArea.size());
- assertEquals(3, verticalContentsArea.size());
-
- // content area rectangle
- Rectangle contentsArea = image.getContentArea();
- assertEquals(new Rectangle(19, 13, 1, 1), contentsArea);
- }
-
- public void testContentAreaTwoDots() throws Exception {
- String fileName = DIR + "content-area-two-dots.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- assertTrue(image.hasNinePatchExtension());
- assertTrue(image.ensure9Patch());
-
- // contents area
- List<Tick> horizontalContentsArea = image.getHorizontalContents();
- List<Tick> verticalContentsArea = image.getVerticalContents();
- assertEquals(5, horizontalContentsArea.size());
- assertEquals(5, verticalContentsArea.size());
-
- // content area rectangle
- Rectangle contentsArea = image.getContentArea();
- assertEquals(new Rectangle(19, 13, 35, 25), contentsArea);
-
- String fileName2 = DIR + "content-area.9.png";
- NinePatchedImage image2 = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName2), fileName2);
- assertNotNull(image2);
-
- assertTrue(image2.hasNinePatchExtension());
- assertTrue(image2.ensure9Patch());
-
- // content area rectangle
- Rectangle contentsArea2 = image2.getContentArea();
- assertEquals(contentsArea2, contentsArea);
- }
-
- public void testBadPatches() throws Exception {
- String fileName = DIR + "patched-with-badpatches.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- assertTrue(image.hasNinePatchExtension());
- assertTrue(image.ensure9Patch());
-
- Chunk[][] chunks = null;
- chunks = image.getChunks(chunks);
-
- // vertical chunk size
- assertEquals(5, chunks.length);
-
- // horizontal chunk size
- for (int i = 0; i < chunks.length; i++) {
- assertEquals(7, chunks[i].length);
- }
-
- chunks = image.getCorruptedChunks(chunks);
-
- Chunk c = null;
-
- // collect bad patches
- List<Point> badPatches = new ArrayList<Point>(5 * 7);
- for (int y = 0; y < chunks.length; y++) {
- for (int x = 0; x < chunks[0].length; x++) {
- c = chunks[y][x];
- if ((c.type & Chunk.TYPE_CORRUPT) != 0x0) {
- badPatches.add(new Point(y, x));
- }
- }
- }
-
- assertEquals(15, badPatches.size());
-
- assertTrue(badPatches.contains(new Point(0, 3)));
-
- assertTrue(badPatches.contains(new Point(1, 1)));
- assertTrue(badPatches.contains(new Point(1, 2)));
- assertTrue(badPatches.contains(new Point(1, 3)));
- assertTrue(badPatches.contains(new Point(1, 4)));
- assertTrue(badPatches.contains(new Point(1, 5)));
-
- assertTrue(badPatches.contains(new Point(2, 1)));
- assertTrue(badPatches.contains(new Point(2, 5)));
-
- assertTrue(badPatches.contains(new Point(3, 0)));
- assertTrue(badPatches.contains(new Point(3, 1)));
- assertTrue(badPatches.contains(new Point(3, 5)));
- assertTrue(badPatches.contains(new Point(3, 6)));
-
- assertTrue(badPatches.contains(new Point(4, 1)));
- assertTrue(badPatches.contains(new Point(4, 3)));
- assertTrue(badPatches.contains(new Point(4, 5)));
- }
-
- public void testProjection() throws Exception {
- // top
- String fileName = DIR + "patched3.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- assertTrue(image.hasNinePatchExtension());
- assertTrue(image.ensure9Patch());
-
- ImageData data = image.getImageData();
- assertEquals(72 + 2, data.width);
- assertEquals(50 + 2, data.height);
-
- int width = 72 * 2;
- int height = 50 * 2;
-
- Chunk[][] chunks = null;
- chunks = image.getChunks(chunks);
-
- Projection[][] projections = null;
- projections = image.getProjections(width, height, projections);
-
- assertEquals(chunks.length, projections.length);
- for (int i = 0; i < chunks.length; i++) {
- assertEquals(chunks[i].length, projections[i].length);
- }
-
- for (int y = 0; y < projections.length; y++) {
- for (int x = 0; x < projections[y].length; x++) {
- assertEquals(projections[y][x].src, chunks[y][x].rect);
-
- // If chunk type is FIXED. Same projection size as original
- // chunk.
- if (projections[y][x].chunk.type == Chunk.TYPE_FIXED) {
- assertEquals(projections[y][x].dest.width, chunks[y][x].rect.width);
- assertEquals(projections[y][x].dest.height, chunks[y][x].rect.height);
- }
- }
- }
-
- Projection p = null;
- Rectangle rect = null;
-
- // Check start position
- p = projections[0][0];
-
- // src position start from 1, 9-patch row and column included.
- assertEquals(1, p.src.x);
- assertEquals(1, p.src.y);
-
- // dest position start from 0, 9-patch row and column ignored.
- assertEquals(0, p.dest.x);
- assertEquals(0, p.dest.y);
-
- // row 1
- p = projections[0][0];
- rect = p.dest;
- assertEquals(0, rect.x);
- assertEquals(0, rect.y);
- assertEquals(74, rect.width);
- assertEquals(5, rect.height);
-
- p = projections[0][1];
- rect = p.dest;
- assertEquals(74, rect.x);
- assertEquals(0, rect.y);
- assertEquals(62, rect.width);
- assertEquals(5, rect.height);
-
- p = projections[0][2];
- rect = p.dest;
- assertEquals(136, rect.x);
- assertEquals(0, rect.y);
- assertEquals(8, rect.width);
- assertEquals(5, rect.height);
-
- // row 2
- p = projections[1][0];
- rect = p.dest;
- assertEquals(0, rect.x);
- assertEquals(5, rect.y);
- assertEquals(74, rect.width);
- assertEquals(24, rect.height);
-
- p = projections[1][1];
- rect = p.dest;
- assertEquals(74, rect.x);
- assertEquals(5, rect.y);
- assertEquals(62, rect.width);
- assertEquals(24, rect.height);
-
- p = projections[1][2];
- rect = p.dest;
- assertEquals(136, rect.x);
- assertEquals(5, rect.y);
- assertEquals(8, rect.width);
- assertEquals(24, rect.height);
-
- // row 3
- p = projections[2][0];
- rect = p.dest;
- assertEquals(0, rect.x);
- assertEquals(29, rect.y);
- assertEquals(74, rect.width);
- assertEquals(58, rect.height);
-
- p = projections[2][1];
- rect = p.dest;
- assertEquals(74, rect.x);
- assertEquals(29, rect.y);
- assertEquals(62, rect.width);
- assertEquals(58, rect.height);
-
- p = projections[2][2];
- rect = p.dest;
- assertEquals(136, rect.x);
- assertEquals(29, rect.y);
- assertEquals(8, rect.width);
- assertEquals(58, rect.height);
-
- // row 4
- p = projections[3][0];
- rect = p.dest;
- assertEquals(0, rect.x);
- assertEquals(87, rect.y);
- assertEquals(74, rect.width);
- assertEquals(13, rect.height);
-
- p = projections[3][1];
- rect = p.dest;
- assertEquals(74, rect.x);
- assertEquals(87, rect.y);
- assertEquals(62, rect.width);
- assertEquals(13, rect.height);
-
- p = projections[3][2];
- rect = p.dest;
- assertEquals(136, rect.x);
- assertEquals(87, rect.y);
- assertEquals(8, rect.width);
- assertEquals(13, rect.height);
- }
-
- public void testReadLayoutBoundsOnlyImage() throws Exception {
- String fileName = DIR + "layout-bounds-only.9.png";
- NinePatchedImage image = new NinePatchedImage(getClass()
- .getResourceAsStream(fileName), fileName);
- assertNotNull(image);
-
- ImageData data = image.getImageData();
- int width = data.width;
- int height = data.height;
-
- assertEquals(74, width);
- assertEquals(52, height);
-
- assertTrue(image.hasNinePatchExtension());
- assertTrue(image.ensure9Patch());
- }
-}