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