| OLD | NEW |
| (Empty) |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 package org.chromium.ui.resources.sprites; | |
| 6 | |
| 7 import android.support.test.filters.MediumTest; | |
| 8 import android.test.InstrumentationTestCase; | |
| 9 import android.test.mock.MockResources; | |
| 10 import android.util.DisplayMetrics; | |
| 11 | |
| 12 import java.io.ByteArrayInputStream; | |
| 13 import java.io.IOException; | |
| 14 import java.io.InputStream; | |
| 15 | |
| 16 /** | |
| 17 * Tests for CrushedSpriteResource. | |
| 18 */ | |
| 19 public class CrushedSpriteResourceTest extends InstrumentationTestCase { | |
| 20 private static final int METADATA_RESOURCE_ID = 1; | |
| 21 | |
| 22 /** | |
| 23 * Tests that the metadata is parsed correctly for a dummy CrushedSpriteReso
urce. | |
| 24 */ | |
| 25 @MediumTest | |
| 26 public void testParseMetadata() { | |
| 27 MockCrushedSpriteResources mockResources = new MockCrushedSpriteResource
s(); | |
| 28 CrushedSpriteResource crushedSpriteResource = new CrushedSpriteResource( | |
| 29 0, METADATA_RESOURCE_ID, mockResources); | |
| 30 try { | |
| 31 crushedSpriteResource.parseMetadata(METADATA_RESOURCE_ID, DisplayMet
rics.DENSITY_XXHIGH, | |
| 32 mockResources); | |
| 33 | |
| 34 int[][] expectedRectangles = {{35, 30, 38, 165, 18, 12, 0, 70, 0, 14
6, 72, 2}, | |
| 35 {}, {0, 0, 73, 0, 72, 72}}; | |
| 36 int[][] actualRectangles = crushedSpriteResource.getFrameRectangles(
); | |
| 37 float dpToPx = mockResources.getDisplayMetrics().density; | |
| 38 | |
| 39 assertEquals(108, crushedSpriteResource.getUnscaledSpriteWidth()); | |
| 40 assertEquals(108, crushedSpriteResource.getUnscaledSpriteHeight()); | |
| 41 assertEquals(36 * dpToPx, crushedSpriteResource.getScaledSpriteWidth
()); | |
| 42 assertEquals(36 * dpToPx, crushedSpriteResource.getScaledSpriteHeigh
t()); | |
| 43 assertEquals(expectedRectangles.length, actualRectangles.length); | |
| 44 for (int i = 0; i < expectedRectangles.length; i++) { | |
| 45 assertEquals(expectedRectangles[i].length, actualRectangles[i].l
ength); | |
| 46 for (int j = 0; j < expectedRectangles[i].length; j++) { | |
| 47 assertEquals(expectedRectangles[i][j], actualRectangles[i][j
]); | |
| 48 } | |
| 49 } | |
| 50 } catch (IOException e) { | |
| 51 e.printStackTrace(); | |
| 52 fail(); | |
| 53 } | |
| 54 } | |
| 55 | |
| 56 private static class MockCrushedSpriteResources extends MockResources { | |
| 57 | |
| 58 @Override | |
| 59 public InputStream openRawResource(int id) { | |
| 60 if (id == METADATA_RESOURCE_ID) { | |
| 61 return new ByteArrayInputStream(METADATA.getBytes()); | |
| 62 } else { | |
| 63 return null; | |
| 64 } | |
| 65 } | |
| 66 | |
| 67 @Override | |
| 68 public DisplayMetrics getDisplayMetrics() { | |
| 69 DisplayMetrics metrics = new DisplayMetrics(); | |
| 70 metrics.density = 2; | |
| 71 return metrics; | |
| 72 } | |
| 73 | |
| 74 private static final String METADATA = | |
| 75 "{" | |
| 76 + "\"apiVersion\": \"1.0\"," | |
| 77 + "\"scaledSpriteWidthDp\": 36," | |
| 78 + "\"scaledSpriteHeightDp\": 36," | |
| 79 + "\"densities\":" | |
| 80 + "[" | |
| 81 + " {" | |
| 82 + " \"density\": 160," | |
| 83 + " \"width\": 36," | |
| 84 + " \"height\": 36," | |
| 85 + " \"rectangles\": [" | |
| 86 + " [17, 14, 47, 69, 10, 8, 0, 34, 37, 0, 36, 2]," | |
| 87 + " []," | |
| 88 + " [0, 0, 0, 0, 36, 36]" | |
| 89 + " ]" | |
| 90 + " }," | |
| 91 + " {" | |
| 92 + " \"density\": 480," | |
| 93 + " \"width\": 108," | |
| 94 + " \"height\": 108," | |
| 95 + " \"rectangles\": [" | |
| 96 + " [35, 30, 38, 165, 18, 12, 0, 70, 0, 146, 72, 2]," | |
| 97 + " []," | |
| 98 + " [0, 0, 73, 0, 72, 72]" | |
| 99 + " ]" | |
| 100 + " }," | |
| 101 + " {" | |
| 102 + " \"density\": 640," | |
| 103 + " \"width\": 144," | |
| 104 + " \"height\": 144," | |
| 105 + " \"rectangles\": [" | |
| 106 + " [71, 62, 820, 3, 34, 21, 0, 142, 725, 0, 144, 2]," | |
| 107 + " []," | |
| 108 + " [0, 0, 145, 0, 144, 144]" | |
| 109 + " ]" | |
| 110 + " }" | |
| 111 + "]}"; | |
| 112 } | |
| 113 | |
| 114 } | |
| OLD | NEW |