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