157f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstadpackage com.android.overlaytest;
257f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
357f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstadimport android.content.res.Configuration;
457f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstadimport android.content.res.Resources;
5ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstadimport android.content.res.XmlResourceParser;
657f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstadimport android.test.AndroidTestCase;
7ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstadimport android.util.AttributeSet;
8ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstadimport android.util.Xml;
9ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstadimport java.io.BufferedReader;
1057f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstadimport java.io.InputStream;
11ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstadimport java.io.InputStreamReader;
1257f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstadimport java.util.Locale;
1357f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
1457f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstadpublic abstract class OverlayBaseTest extends AndroidTestCase {
1557f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    private Resources mResources;
16ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    protected int mMode; // will be set by subclasses
17ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    static final protected int MODE_NO_OVERLAY = 0;
18ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    static final protected int MODE_SINGLE_OVERLAY = 1;
19ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    static final protected int MODE_MULTIPLE_OVERLAYS = 2;
2057f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
2157f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    protected void setUp() {
2257f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        mResources = getContext().getResources();
2357f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
2457f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
2557f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    private int calculateRawResourceChecksum(int resId) throws Throwable {
2657f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        InputStream input = null;
2757f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        try {
2857f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad            input = mResources.openRawResource(resId);
2957f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad            int ch, checksum = 0;
3057f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad            while ((ch = input.read()) != -1) {
3157f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad                checksum = (checksum + ch) % 0xffddbb00;
3257f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad            }
3357f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad            return checksum;
3457f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        } finally {
3557f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad            input.close();
3657f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        }
3757f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
3857f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
39e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski    private void setLocale(Locale locale) {
4057f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        Locale.setDefault(locale);
4157f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        Configuration config = new Configuration();
4257f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        config.locale = locale;
4357f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        mResources.updateConfiguration(config, mResources.getDisplayMetrics());
4457f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
4557f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
46ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    private boolean getExpected(boolean no, boolean so, boolean mo) {
47ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        switch (mMode) {
48ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_NO_OVERLAY:
49ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return no;
50ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_SINGLE_OVERLAY:
51ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return so;
52ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_MULTIPLE_OVERLAYS:
53ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return mo;
54ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            default:
55ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                fail("Unknown mode!");
56ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return no;
57ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        }
58ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
59ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
60ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    private String getExpected(String no, String so, String mo) {
61ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        switch (mMode) {
62ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_NO_OVERLAY:
63ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return no;
64ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_SINGLE_OVERLAY:
65ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return so;
66ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_MULTIPLE_OVERLAYS:
67ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return mo;
68ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            default:
69ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                fail("Unknown mode!");
70ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return no;
71ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        }
72ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
73ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
74ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    private int getExpected(int no, int so, int mo) {
75ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        switch (mMode) {
76ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_NO_OVERLAY:
77ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return no;
78ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_SINGLE_OVERLAY:
79ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return so;
80ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_MULTIPLE_OVERLAYS:
81ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return mo;
82ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            default:
83ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                fail("Unknown mode!");
84ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return no;
85ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        }
86ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
87ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
88ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    private int[] getExpected(int[] no, int[] so, int[] mo) {
89ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        switch (mMode) {
90ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_NO_OVERLAY:
91ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return no;
92ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_SINGLE_OVERLAY:
93ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return so;
94ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_MULTIPLE_OVERLAYS:
95ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return mo;
96ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            default:
97ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                fail("Unknown mode!");
98ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                return no;
99ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        }
100ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
101ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
102ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    private void assertResource(int resId, boolean no, boolean so, boolean mo) throws Throwable {
103ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        boolean expected = getExpected(no, so, mo);
10457f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        boolean actual = mResources.getBoolean(resId);
10557f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        assertEquals(expected, actual);
10657f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
10757f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
108ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    private void assertResource(int resId, int no, int so, int mo) throws Throwable {
109ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        int expected = getExpected(no, so, mo);
110ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        int actual = mResources.getInteger(resId);
111ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertEquals(expected, actual);
112ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
113ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
114ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    private void assertResource(int resId, String no, String so, String mo) throws Throwable {
115ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        String expected = getExpected(no, so, mo);
11657f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        String actual = mResources.getString(resId);
11757f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        assertEquals(expected, actual);
11857f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
11957f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
120ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    private void assertResource(int resId, int[] no, int[] so, int[] mo) throws Throwable {
121ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        int[] expected = getExpected(no, so, mo);
12257f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        int[] actual = mResources.getIntArray(resId);
12357f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        assertEquals("length:", expected.length, actual.length);
12457f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        for (int i = 0; i < actual.length; ++i) {
12557f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad            assertEquals("index " + i + ":", actual[i], expected[i]);
12657f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad        }
12757f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
12857f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
129ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testFrameworkBooleanOverlay() throws Throwable {
130ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // config_annoy_dianne has the value:
131ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // - true when no overlay exists (MODE_NO_OVERLAY)
132ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // - false when a single overlay exists (MODE_SINGLE_OVERLAY)
133ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // - false when multiple overlays exists (MODE_MULTIPLE_OVERLAYS)
134ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = com.android.internal.R.bool.config_annoy_dianne;
135ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, true, false, false);
136ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
137ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
13857f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    public void testBooleanOverlay() throws Throwable {
139ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // usually_false has the value:
140ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // - false when no overlay exists (MODE_NO_OVERLAY)
141ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // - true when a single overlay exists (MODE_SINGLE_OVERLAY)
142ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // - false when multiple overlays exists (MODE_MULTIPLE_OVERLAYS)
143ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.bool.usually_false;
144ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, false, true, false);
14557f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
14657f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
14757f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    public void testBoolean() throws Throwable {
148ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // always_true has no overlay
149ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.bool.always_true;
150ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, true, true, true);
151ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
152ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
153ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testIntegerArrayOverlay() throws Throwable {
154ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // fibonacci has values:
155ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // - eight first values of Fibonacci sequence, when no overlay exists (MODE_NO_OVERLAY)
156ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // - eight first values of Fibonacci sequence (reversed), for single and multiple overlays
157ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        //   (MODE_SINGLE_OVERLAY, MODE_MULTIPLE_OVERLAYS)
158ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.array.fibonacci;
159ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId,
160ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                new int[]{1, 1, 2, 3, 5, 8, 13, 21},
161ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                new int[]{21, 13, 8, 5, 3, 2, 1, 1},
162ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                new int[]{21, 13, 8, 5, 3, 2, 1, 1});
163ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
164ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
165ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testIntegerArray() throws Throwable {
166ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // prime_numbers has no overlay
167ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.array.prime_numbers;
168ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int[] expected = {2, 3, 5, 7, 11, 13, 17, 19};
169ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, expected, expected, expected);
170ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
171ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
172ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testDrawable() throws Throwable {
173ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        // drawable-nodpi/drawable has overlay (default config)
174ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.drawable.drawable;
175ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        int actual = calculateRawResourceChecksum(resId);
176ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        int expected = 0;
177ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        switch (mMode) {
178ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_NO_OVERLAY:
179ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                expected = 0x00005665;
180ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                break;
181ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_SINGLE_OVERLAY:
182ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            case MODE_MULTIPLE_OVERLAYS:
183ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                expected = 0x000051da;
184ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                break;
185ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            default:
186ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                fail("Unknown mode " + mMode);
187ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        }
188ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertEquals(expected, actual);
189ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
190ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
191ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testAppString() throws Throwable {
192ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.string.str;
193ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, "none", "single", "multiple");
194ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
195ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
196ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testApp2() throws Throwable {
197ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.string.str2; // only in base package and first app overlay
198ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, "none", "single", "single");
19957f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
20057f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
201ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testAppXml() throws Throwable {
202ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        int expected = getExpected(0, 1, 2);
203ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        int actual = -1;
204ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        XmlResourceParser parser = mResources.getXml(R.xml.integer);
205ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        int type = parser.getEventType();
206ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        while (type != XmlResourceParser.END_DOCUMENT && actual == -1) {
207ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            if (type == XmlResourceParser.START_TAG && "integer".equals(parser.getName())) {
208ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                AttributeSet as = Xml.asAttributeSet(parser);
209ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad                actual = as.getAttributeIntValue(null, "value", -1);
210ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            }
211ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            type = parser.next();
212ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        }
213ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        parser.close();
214ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertEquals(expected, actual);
215ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
216ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
217ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testAppRaw() throws Throwable {
218ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.raw.lorem_ipsum;
219ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
220ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        InputStream input = null;
221ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        BufferedReader reader = null;
222ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        String actual = "";
223ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        try {
224ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            input = mResources.openRawResource(resId);
225ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            reader = new BufferedReader(new InputStreamReader(input));
226ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            actual = reader.readLine();
227ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        } finally {
228840796a3c29183a6f9bcf3d50ecae45405b63d88Mårten Kongstad            if (reader != null) {
229840796a3c29183a6f9bcf3d50ecae45405b63d88Mårten Kongstad                reader.close();
230840796a3c29183a6f9bcf3d50ecae45405b63d88Mårten Kongstad            }
231840796a3c29183a6f9bcf3d50ecae45405b63d88Mårten Kongstad            if (input != null) {
232840796a3c29183a6f9bcf3d50ecae45405b63d88Mårten Kongstad                input.close();
233840796a3c29183a6f9bcf3d50ecae45405b63d88Mårten Kongstad            }
234ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        }
235ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
236ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final String no = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " +
237ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
238ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip " +
239ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            "ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit " +
240ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            "esse cillum dolore eu fugiat nulla pariatur. " +
241ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            "Excepteur sint occaecat cupidatat non proident, " +
242ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad            "sunt in culpa qui officia deserunt mollit anim id est laborum.";
243ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final String so = "Lorem ipsum: single overlay.";
244ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final String mo = "Lorem ipsum: multiple overlays.";
245ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
246ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertEquals(getExpected(no, so, mo), actual);
247ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
248ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
249ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    /*
250ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * testMatrix* tests
251ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     *
252ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * The naming convention textMatrixABCDEF refers to in which packages and
253ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * which configurations a resource is defined (1 if the resource is
254ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * defined). If defined, a slot is always given the same value.
255ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     *
256ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * SLOT  PACKAGE           CONFIGURATION  VALUE
257ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * A     target package    (default)      100
258ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * B     target package    -sv            200
259ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * C     OverlayAppFirst   (default)      300
260ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * D     OverlayAppFirst   -sv            400
261ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * E     OverlayAppSecond  (default)      500
262ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * F     OverlayAppSecond  -sv            600
263ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     *
264ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * Example: in testMatrix101110, the base package defines the
265ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * R.integer.matrix101110 resource for the default configuration (value
266ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * 100), OverlayAppFirst defines it for both default and Swedish
267ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * configurations (values 300 and 400, respectively), and OverlayAppSecond
268ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * defines it for the default configuration (value 500). If both overlays
269ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * are loaded, the expected value after setting the language to Swedish is
270ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     * 400.
271ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad     */
272ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix100000() throws Throwable {
273ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_100000;
274e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
275ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 100, 100);
27657f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
27757f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
278ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix100001() throws Throwable {
279ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_100001;
280e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
281ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 100, 600);
28257f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
28357f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
284ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix100010() throws Throwable {
285ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_100010;
286e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
287ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 100, 500);
28857f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
28957f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
290ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix100011() throws Throwable {
291ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_100011;
292e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
293ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 100, 600);
29457f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
29557f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
296ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix100100() throws Throwable {
297ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_100100;
298e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
299ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 400, 400);
30057f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
30157f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad
302ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix100101() throws Throwable {
303ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_100101;
304e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
305ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 400, 600);
306ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
307ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
308ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix100110() throws Throwable {
309ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_100110;
310e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
311ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 400, 400);
312ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
313ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
314ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix100111() throws Throwable {
315ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_100111;
316e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
317ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 400, 600);
318ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
319ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
320ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix101000() throws Throwable {
321ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_101000;
322e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
323ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 300, 300);
324ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
325ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
326ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix101001() throws Throwable {
327ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_101001;
328e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
329ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 300, 600);
330ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
331ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
332ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix101010() throws Throwable {
333ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_101010;
334e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
335ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 300, 500);
336ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
337ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
338ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix101011() throws Throwable {
339ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_101011;
340e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
341ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 300, 600);
342ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
343ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
344ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix101100() throws Throwable {
345ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_101100;
346e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
347ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 400, 400);
348ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
349ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
350ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix101101() throws Throwable {
351ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_101101;
352e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
353ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 400, 600);
354ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
355ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
356ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix101110() throws Throwable {
357ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_101110;
358e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
359ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 400, 400);
360ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
361ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
362ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix101111() throws Throwable {
363ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_101111;
364e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
365ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 100, 400, 600);
366ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
367ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
368ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix110000() throws Throwable {
369ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_110000;
370e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
371ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 200, 200);
372ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
373ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
374ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix110001() throws Throwable {
375ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_110001;
376e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
377ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 200, 600);
378ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
379ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
380ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix110010() throws Throwable {
381ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_110010;
382e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
383ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 200, 200);
384ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
385ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
386ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix110011() throws Throwable {
387ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_110011;
388e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
389ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 200, 600);
390ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
391ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
392ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix110100() throws Throwable {
393ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_110100;
394e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
395ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 400, 400);
396ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
397ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
398ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix110101() throws Throwable {
399ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_110101;
400e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
401ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 400, 600);
402ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
403ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
404ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix110110() throws Throwable {
405ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_110110;
406e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
407ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 400, 400);
408ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
409ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
410ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix110111() throws Throwable {
411ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_110111;
412e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
413ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 400, 600);
414ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
415ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
416ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix111000() throws Throwable {
417ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_111000;
418e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
419ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 200, 200);
420ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
421ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
422ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix111001() throws Throwable {
423ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_111001;
424e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
425ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 200, 600);
426ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
427ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
428ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix111010() throws Throwable {
429ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_111010;
430e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
431ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 200, 200);
432ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
433ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
434ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix111011() throws Throwable {
435ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_111011;
436e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
437ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 200, 600);
438ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
439ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
440ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix111100() throws Throwable {
441ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_111100;
442e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
443ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 400, 400);
444ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
445ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
446ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix111101() throws Throwable {
447ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_111101;
448e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
449ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 400, 600);
450ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
451ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
452ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix111110() throws Throwable {
453ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_111110;
454e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
455ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 400, 400);
456ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    }
457ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad
458ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad    public void testMatrix111111() throws Throwable {
459ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        final int resId = R.integer.matrix_111111;
460e75b2c267761be6f7d762930b980f435c1789eeaAdam Lesinski        setLocale(new Locale("sv", "SE"));
461ad6ed950dbfa152c193dd7e49c369d9e831f1591Mårten Kongstad        assertResource(resId, 200, 400, 600);
46257f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad    }
46357f4b77c89bafedf9468f9a636561c0c193405c9Mårten Kongstad}
464