1bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam/*
2bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam * Copyright (C) 2015 The Android Open Source Project
3bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam *
4bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam * Licensed under the Apache License, Version 2.0 (the "License");
5bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam * you may not use this file except in compliance with the License.
6bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam * You may obtain a copy of the License at
7bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam *
8bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam *      http://www.apache.org/licenses/LICENSE-2.0
9bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam *
10bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam * Unless required by applicable law or agreed to in writing, software
11bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam * distributed under the License is distributed on an "AS IS" BASIS,
12bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam * See the License for the specific language governing permissions and
14bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam * limitations under the License.
15bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam */
16bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
17bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lampackage com.android.setupwizardlib.test;
18bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
19bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lamimport android.app.Activity;
20bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lamimport android.content.Intent;
21bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lamimport android.test.AndroidTestCase;
22bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lamimport android.test.suitebuilder.annotation.SmallTest;
23bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
24bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lamimport com.android.setupwizardlib.util.WizardManagerHelper;
25bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
26bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lampublic class WizardManagerHelperTest extends AndroidTestCase {
27bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
28bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    @SmallTest
29bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    public void testGetNextIntent() {
30bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        final Intent intent = new Intent("test.intent.ACTION");
31bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        intent.putExtra("scriptUri", "android-resource://test-script");
32bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        intent.putExtra("actionId", "test_action_id");
33bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        intent.putExtra("theme", "test_theme");
34bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        intent.putExtra("ignoreExtra", "poof"); // extra is ignored because it's not known
35bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
36bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        final Intent data = new Intent();
37bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        data.putExtra("extraData", "shazam");
38bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
3935cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam        final Intent nextIntent =
4035cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam                WizardManagerHelper.getNextIntent(intent, Activity.RESULT_OK, data);
41bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Next intent action should be NEXT", "com.android.wizard.NEXT",
42bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                nextIntent.getAction());
43bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Script URI should be the same as original intent",
44bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                "android-resource://test-script", nextIntent.getStringExtra("scriptUri"));
45bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Action ID should be the same as original intent", "test_action_id",
46bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                nextIntent.getStringExtra("actionId"));
47bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Theme extra should be the same as original intent", "test_theme",
48bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                nextIntent.getStringExtra("theme"));
49bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertFalse("ignoreExtra should not be in nextIntent", nextIntent.hasExtra("ignoreExtra"));
50bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Result code extra should be RESULT_OK", Activity.RESULT_OK,
51bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                nextIntent.getIntExtra("com.android.setupwizard.ResultCode", 0));
52bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Extra data should surface as extra in nextIntent", "shazam",
53bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                nextIntent.getStringExtra("extraData"));
54bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    }
55bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
56bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    @SmallTest
57bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    public void testIsSetupWizardTrue() {
58bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        final Intent intent = new Intent();
59bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        intent.putExtra("firstRun", true);
60bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertTrue("Is setup wizard should be true",
61bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                WizardManagerHelper.isSetupWizardIntent(intent));
62bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    }
63bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
64bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    @SmallTest
65bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    public void testIsSetupWizardFalse() {
66bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        final Intent intent = new Intent();
67bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        intent.putExtra("firstRun", false);
68bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertFalse("Is setup wizard should be true",
69bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                WizardManagerHelper.isSetupWizardIntent(intent));
70bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    }
7156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
7256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
7356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testHoloIsNotLightTheme() {
7456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
7556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "holo");
7656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertFalse("Theme holo should not be light theme",
7756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, true));
7856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
7956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
8056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
8156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testHoloLightIsLightTheme() {
8256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
8356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "holo_light");
8456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertTrue("Theme holo_light should be light theme",
8556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, false));
8656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
8756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
8856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
8956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testMaterialIsNotLightTheme() {
9056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
9156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "material");
9256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertFalse("Theme material should not be light theme",
9356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, true));
9456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
9556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
9656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
9756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testMaterialLightIsLightTheme() {
9856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
9956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "material_light");
10056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertTrue("Theme material_light should be light theme",
10156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, false));
10256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
10356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
10456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
105647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam    public void testMaterialBlueIsNotLightTheme() {
106647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam        final Intent intent = new Intent();
107647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam        intent.putExtra("theme", "material_blue");
108647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam        assertFalse("Theme material_blue should not be light theme",
109647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam                WizardManagerHelper.isLightTheme(intent, true));
110647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam    }
111647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam
112647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam    @SmallTest
113647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam    public void testMaterialBlueLightIsLightTheme() {
114647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam        final Intent intent = new Intent();
115647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam        intent.putExtra("theme", "material_blue_light");
116647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam        assertTrue("Theme material_blue_light should be light theme",
117647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam                WizardManagerHelper.isLightTheme(intent, false));
118647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam    }
119647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam
120647dc702649512dc47f88eaf5e9058f8452537c7Maurice Lam    @SmallTest
121d6708911f6f2fa7dd060536a118b5efb3c5e174fMaurice Lam    public void testGlifIsDarkTheme() {
122d6708911f6f2fa7dd060536a118b5efb3c5e174fMaurice Lam        final Intent intent = new Intent();
123d6708911f6f2fa7dd060536a118b5efb3c5e174fMaurice Lam        intent.putExtra("theme", "glif");
124d6708911f6f2fa7dd060536a118b5efb3c5e174fMaurice Lam        assertFalse("Theme glif should be dark theme",
125d6708911f6f2fa7dd060536a118b5efb3c5e174fMaurice Lam                WizardManagerHelper.isLightTheme(intent, false));
126d6708911f6f2fa7dd060536a118b5efb3c5e174fMaurice Lam        assertFalse("Theme glif should be dark theme",
127d6708911f6f2fa7dd060536a118b5efb3c5e174fMaurice Lam                WizardManagerHelper.isLightTheme(intent, true));
128d6708911f6f2fa7dd060536a118b5efb3c5e174fMaurice Lam    }
129d6708911f6f2fa7dd060536a118b5efb3c5e174fMaurice Lam
130d6708911f6f2fa7dd060536a118b5efb3c5e174fMaurice Lam    @SmallTest
13135cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam    public void testGlifLightIsLightTheme() {
13235cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam        final Intent intent = new Intent();
13335cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam        intent.putExtra("theme", "glif_light");
13435cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam        assertTrue("Theme glif_light should be light theme",
13535cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam                WizardManagerHelper.isLightTheme(intent, false));
13635cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam        assertTrue("Theme glif_light should be light theme",
13735cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam                WizardManagerHelper.isLightTheme(intent, true));
13835cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam    }
13935cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam
14035cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam    @SmallTest
14156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testIsLightThemeDefault() {
14256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
14356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "abracadabra");
14456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertTrue("isLightTheme should return default value true",
14556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, true));
14656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertFalse("isLightTheme should return default value false",
14756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, false));
14856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
14956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
15056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
15156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testIsLightThemeUnspecified() {
15256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
15356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertTrue("isLightTheme should return default value true",
15456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, true));
15556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertFalse("isLightTheme should return default value false",
15656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, false));
15756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
158c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam
159c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam    @SmallTest
160c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam    public void testIsLightThemeString() {
161c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam        assertTrue("isLightTheme should return true for material_light",
162c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam                WizardManagerHelper.isLightTheme("material_light", false));
163c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam        assertFalse("isLightTheme should return false for material",
164c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam                WizardManagerHelper.isLightTheme("material", false));
165c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam        assertTrue("isLightTheme should return true for holo_light",
166c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam                WizardManagerHelper.isLightTheme("holo_light", false));
167c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam        assertFalse("isLightTheme should return false for holo",
168c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam                WizardManagerHelper.isLightTheme("holo", false));
169c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam        assertTrue("isLightTheme should return default value true",
170c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam                WizardManagerHelper.isLightTheme("abracadabra", true));
171c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam        assertFalse("isLightTheme should return default value false",
172c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam                WizardManagerHelper.isLightTheme("abracadabra", false));
173c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam    }
174bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam}
175