| Index: ui/android/javatests/src/org/chromium/ui/resources/sprites/CrushedSpriteResourceTest.java
|
| diff --git a/ui/android/javatests/src/org/chromium/ui/resources/sprites/CrushedSpriteResourceTest.java b/ui/android/javatests/src/org/chromium/ui/resources/sprites/CrushedSpriteResourceTest.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2635a487e2061d2dc1341086dbb0217c1dab1d0a
|
| --- /dev/null
|
| +++ b/ui/android/javatests/src/org/chromium/ui/resources/sprites/CrushedSpriteResourceTest.java
|
| @@ -0,0 +1,98 @@
|
| +// 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.
|
| +
|
| +package org.chromium.ui.resources.sprites;
|
| +
|
| +import android.test.InstrumentationTestCase;
|
| +import android.test.mock.MockResources;
|
| +import android.test.suitebuilder.annotation.MediumTest;
|
| +import android.util.DisplayMetrics;
|
| +
|
| +import java.io.ByteArrayInputStream;
|
| +import java.io.IOException;
|
| +import java.io.InputStream;
|
| +
|
| +/**
|
| + * Tests for CrushedSpriteResource.
|
| + */
|
| +public class CrushedSpriteResourceTest extends InstrumentationTestCase {
|
| + private static final int METADATA_RESOURCE_ID = 1;
|
| +
|
| + /**
|
| + * Tests that the metadata is parsed correctly for a dummy CrushedSpriteResource.
|
| + */
|
| + @MediumTest
|
| + public void testParseMetadata() {
|
| + MockCrushedSpriteResources mockResources = new MockCrushedSpriteResources();
|
| + CrushedSpriteResource crushedSpriteResource = new CrushedSpriteResource(
|
| + 0, METADATA_RESOURCE_ID, mockResources);
|
| + try {
|
| + crushedSpriteResource.parseMetadata(METADATA_RESOURCE_ID, DisplayMetrics.DENSITY_XXHIGH,
|
| + mockResources);
|
| +
|
| + int[][] expectedRectangles = {{35, 30, 38, 165, 18, 12, 0, 70, 0, 146, 72, 2},
|
| + {}, {0, 0, 73, 0, 72, 72}};
|
| + int[][] actualRectangles = crushedSpriteResource.getFrameRectangles();
|
| +
|
| + assertEquals(108, crushedSpriteResource.getSpriteWidth());
|
| + assertEquals(108, crushedSpriteResource.getSpriteHeight());
|
| + assertEquals(expectedRectangles.length, actualRectangles.length);
|
| + for (int i = 0; i < expectedRectangles.length; i++) {
|
| + assertEquals(expectedRectangles[i].length, actualRectangles[i].length);
|
| + for (int j = 0; j < expectedRectangles[i].length; j++) {
|
| + assertEquals(expectedRectangles[i][j], actualRectangles[i][j]);
|
| + }
|
| + }
|
| + } catch (IOException e) {
|
| + e.printStackTrace();
|
| + fail();
|
| + }
|
| + }
|
| +
|
| + private static class MockCrushedSpriteResources extends MockResources {
|
| +
|
| + @Override
|
| + public InputStream openRawResource(int id) {
|
| + if (id == METADATA_RESOURCE_ID) {
|
| + return new ByteArrayInputStream(METADATA.getBytes());
|
| + } else {
|
| + return null;
|
| + }
|
| + }
|
| +
|
| + private static final String METADATA = "{\"apiVersion\": \"1.0\", \"densities\": ["
|
| + + "{"
|
| + + " \"density\": 160,"
|
| + + " \"width\": 36,"
|
| + + " \"height\": 36,"
|
| + + " \"rectangles\": ["
|
| + + " [17, 14, 47, 69, 10, 8, 0, 34, 37, 0, 36, 2],"
|
| + + " [],"
|
| + + " [0, 0, 0, 0, 36, 36]"
|
| + + " ]"
|
| + + "},"
|
| + + "{"
|
| + + " \"density\": 480,"
|
| + + " \"width\": 108,"
|
| + + " \"height\": 108,"
|
| + + " \"rectangles\": ["
|
| + + " [35, 30, 38, 165, 18, 12, 0, 70, 0, 146, 72, 2],"
|
| + + " [],"
|
| + + " [0, 0, 73, 0, 72, 72]"
|
| + + " ]"
|
| + + "},"
|
| + + "{"
|
| + + " \"density\": 640,"
|
| + + " \"width\": 144,"
|
| + + " \"height\": 144,"
|
| + + " \"rectangles\": ["
|
| + + " [71, 62, 820, 3, 34, 21, 0, 142, 725, 0, 144, 2],"
|
| + + " [],"
|
| + + " [0, 0, 145, 0, 144, 144]"
|
| + + " ]"
|
| + + "}"
|
| + + "]}";
|
| + }
|
| +
|
| +}
|
|
|