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
39bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        final Intent nextIntent = WizardManagerHelper.getNextIntent(intent, Activity.RESULT_OK, data);
40bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Next intent action should be NEXT", "com.android.wizard.NEXT",
41bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                nextIntent.getAction());
42bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Script URI should be the same as original intent",
43bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                "android-resource://test-script", nextIntent.getStringExtra("scriptUri"));
44bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Action ID should be the same as original intent", "test_action_id",
45bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                nextIntent.getStringExtra("actionId"));
46bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Theme extra should be the same as original intent", "test_theme",
47bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                nextIntent.getStringExtra("theme"));
48bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertFalse("ignoreExtra should not be in nextIntent", nextIntent.hasExtra("ignoreExtra"));
49bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Result code extra should be RESULT_OK", Activity.RESULT_OK,
50bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                nextIntent.getIntExtra("com.android.setupwizard.ResultCode", 0));
51bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertEquals("Extra data should surface as extra in nextIntent", "shazam",
52bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                nextIntent.getStringExtra("extraData"));
53bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    }
54bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
55bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    @SmallTest
56bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    public void testIsSetupWizardTrue() {
57bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        final Intent intent = new Intent();
58bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        intent.putExtra("firstRun", true);
59bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertTrue("Is setup wizard should be true",
60bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                WizardManagerHelper.isSetupWizardIntent(intent));
61bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    }
62bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam
63bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    @SmallTest
64bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    public void testIsSetupWizardFalse() {
65bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        final Intent intent = new Intent();
66bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        intent.putExtra("firstRun", false);
67bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam        assertFalse("Is setup wizard should be true",
68bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam                WizardManagerHelper.isSetupWizardIntent(intent));
69bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam    }
7056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
7156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
7256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testHoloIsNotLightTheme() {
7356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
7456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "holo");
7556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertFalse("Theme holo should not be light theme",
7656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, true));
7756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
7856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
7956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
8056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testHoloLightIsLightTheme() {
8156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
8256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "holo_light");
8356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertTrue("Theme holo_light should be light theme",
8456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, false));
8556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
8656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
8756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
8856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testMaterialIsNotLightTheme() {
8956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
9056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "material");
9156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertFalse("Theme material should not be light theme",
9256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, true));
9356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
9456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
9556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
9656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testMaterialLightIsLightTheme() {
9756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
9856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "material_light");
9956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertTrue("Theme material_light should be light theme",
10056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, false));
10156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
10256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
10356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
10456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testMaterialBlueIsNotLightTheme() {
10556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
10656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "material_blue");
10756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertFalse("Theme material_blue should not be light theme",
10856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, true));
10956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
11056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
11156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
11256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testMaterialBlueLightIsLightTheme() {
11356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
11456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "material_blue_light");
11556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertTrue("Theme material_blue_light should be light theme",
11656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, false));
11756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
11856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
11956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
12056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testIsLightThemeDefault() {
12156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
12256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        intent.putExtra("theme", "abracadabra");
12356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertTrue("isLightTheme should return default value true",
12456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, true));
12556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertFalse("isLightTheme should return default value false",
12656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, false));
12756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
12856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam
12956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    @SmallTest
13056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    public void testIsLightThemeUnspecified() {
13156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        final Intent intent = new Intent();
13256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertTrue("isLightTheme should return default value true",
13356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, true));
13456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam        assertFalse("isLightTheme should return default value false",
13556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam                WizardManagerHelper.isLightTheme(intent, false));
13656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam    }
137bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam}
138