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 17d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lampackage com.android.setupwizardlib.util; 18bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam 192614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport static org.junit.Assert.assertEquals; 202614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport static org.junit.Assert.assertFalse; 212614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport static org.junit.Assert.assertTrue; 22d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lamimport static org.robolectric.RuntimeEnvironment.application; 232614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam 24d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lamimport android.annotation.TargetApi; 25bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lamimport android.app.Activity; 26bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lamimport android.content.Intent; 27d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lamimport android.os.Build.VERSION_CODES; 2853f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lamimport android.os.Bundle; 29d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lamimport android.provider.Settings; 30d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lamimport android.provider.Settings.Global; 31d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lamimport android.provider.Settings.Secure; 32e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lamimport android.support.annotation.StyleRes; 33bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam 34d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lamimport com.android.setupwizardlib.BuildConfig; 35e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lamimport com.android.setupwizardlib.R; 36d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lamimport com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner; 37bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam 382614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport org.junit.Test; 392614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport org.junit.runner.RunWith; 40d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lamimport org.robolectric.annotation.Config; 412614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam 42d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam@RunWith(SuwLibRobolectricTestRunner.class) 43d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam@Config(constants = BuildConfig.class, sdk = Config.NEWEST_SDK) 442614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lampublic class WizardManagerHelperTest { 45bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam 462614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 47bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam public void testGetNextIntent() { 48bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam final Intent intent = new Intent("test.intent.ACTION"); 49bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam intent.putExtra("scriptUri", "android-resource://test-script"); 50bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam intent.putExtra("actionId", "test_action_id"); 51bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam intent.putExtra("theme", "test_theme"); 52bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam intent.putExtra("ignoreExtra", "poof"); // extra is ignored because it's not known 53bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam 54bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam final Intent data = new Intent(); 55bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam data.putExtra("extraData", "shazam"); 56bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam 5735cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam final Intent nextIntent = 5835cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam WizardManagerHelper.getNextIntent(intent, Activity.RESULT_OK, data); 59bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam assertEquals("Next intent action should be NEXT", "com.android.wizard.NEXT", 60bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam nextIntent.getAction()); 61bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam assertEquals("Script URI should be the same as original intent", 62bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam "android-resource://test-script", nextIntent.getStringExtra("scriptUri")); 63bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam assertEquals("Action ID should be the same as original intent", "test_action_id", 64bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam nextIntent.getStringExtra("actionId")); 65bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam assertEquals("Theme extra should be the same as original intent", "test_theme", 66bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam nextIntent.getStringExtra("theme")); 67bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam assertFalse("ignoreExtra should not be in nextIntent", nextIntent.hasExtra("ignoreExtra")); 68bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam assertEquals("Result code extra should be RESULT_OK", Activity.RESULT_OK, 69bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam nextIntent.getIntExtra("com.android.setupwizard.ResultCode", 0)); 70bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam assertEquals("Extra data should surface as extra in nextIntent", "shazam", 71bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam nextIntent.getStringExtra("extraData")); 72bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam } 73bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam 742614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 75bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam public void testIsSetupWizardTrue() { 76bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam final Intent intent = new Intent(); 77bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam intent.putExtra("firstRun", true); 78bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam assertTrue("Is setup wizard should be true", 79bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam WizardManagerHelper.isSetupWizardIntent(intent)); 80bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam } 81bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam 822614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 83bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam public void testIsSetupWizardFalse() { 84bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam final Intent intent = new Intent(); 85bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam intent.putExtra("firstRun", false); 86bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam assertFalse("Is setup wizard should be true", 87bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam WizardManagerHelper.isSetupWizardIntent(intent)); 88bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam } 8956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam 902614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 9156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam public void testHoloIsNotLightTheme() { 9256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam final Intent intent = new Intent(); 9356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam intent.putExtra("theme", "holo"); 9456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam assertFalse("Theme holo should not be light theme", 9556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam WizardManagerHelper.isLightTheme(intent, true)); 9656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam } 9756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam 982614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 9956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam public void testHoloLightIsLightTheme() { 10056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam final Intent intent = new Intent(); 10156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam intent.putExtra("theme", "holo_light"); 10256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam assertTrue("Theme holo_light should be light theme", 10356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam WizardManagerHelper.isLightTheme(intent, false)); 10456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam } 10556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam 1062614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 10756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam public void testMaterialIsNotLightTheme() { 10856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam final Intent intent = new Intent(); 10956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam intent.putExtra("theme", "material"); 11056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam assertFalse("Theme material should not be light theme", 11156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam WizardManagerHelper.isLightTheme(intent, true)); 11256a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam } 11356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam 1142614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 11556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam public void testMaterialLightIsLightTheme() { 11656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam final Intent intent = new Intent(); 11756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam intent.putExtra("theme", "material_light"); 11856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam assertTrue("Theme material_light should be light theme", 11956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam WizardManagerHelper.isLightTheme(intent, false)); 12056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam } 12156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam 1222614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 1230c0f30d332afd782dd107ef11f7fa76fb2fdd165Maurice Lam public void testGlifIsDarkTheme() { 1240c0f30d332afd782dd107ef11f7fa76fb2fdd165Maurice Lam final Intent intent = new Intent(); 1250c0f30d332afd782dd107ef11f7fa76fb2fdd165Maurice Lam intent.putExtra("theme", "glif"); 1260c0f30d332afd782dd107ef11f7fa76fb2fdd165Maurice Lam assertFalse("Theme glif should be dark theme", 1270c0f30d332afd782dd107ef11f7fa76fb2fdd165Maurice Lam WizardManagerHelper.isLightTheme(intent, false)); 1280c0f30d332afd782dd107ef11f7fa76fb2fdd165Maurice Lam assertFalse("Theme glif should be dark theme", 1290c0f30d332afd782dd107ef11f7fa76fb2fdd165Maurice Lam WizardManagerHelper.isLightTheme(intent, true)); 1300c0f30d332afd782dd107ef11f7fa76fb2fdd165Maurice Lam } 1310c0f30d332afd782dd107ef11f7fa76fb2fdd165Maurice Lam 1322614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 13335cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam public void testGlifLightIsLightTheme() { 13435cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam final Intent intent = new Intent(); 13535cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam intent.putExtra("theme", "glif_light"); 13635cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam assertTrue("Theme glif_light should be light theme", 13735cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam WizardManagerHelper.isLightTheme(intent, false)); 13835cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam assertTrue("Theme glif_light should be light theme", 13935cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam WizardManagerHelper.isLightTheme(intent, true)); 14035cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam } 14135cc29c9f307191962cd7124db14eb7b78c9407eMaurice Lam 1422614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 143d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam public void testGlifPixelIsDarkTheme() { 144d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam final Intent intent = new Intent(); 145d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam intent.putExtra("theme", "glif_pixel"); 146d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertFalse("Theme glif_pixel should be dark theme", 147d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam WizardManagerHelper.isLightTheme(intent, false)); 148d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertFalse("Theme glif_pixel should be dark theme", 149d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam WizardManagerHelper.isLightTheme(intent, true)); 150d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam } 151d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam 152d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam @Test 153d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam public void testGlifPixelLightIsLightTheme() { 154d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam final Intent intent = new Intent(); 155d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam intent.putExtra("theme", "glif_pixel_light"); 156d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertTrue("Theme glif_pixel_light should be light theme", 157d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam WizardManagerHelper.isLightTheme(intent, false)); 158d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertTrue("Theme glif_pixel_light should be light theme", 159d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam WizardManagerHelper.isLightTheme(intent, true)); 160d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam } 161d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam 162d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam @Test 16356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam public void testIsLightThemeDefault() { 16456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam final Intent intent = new Intent(); 16556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam intent.putExtra("theme", "abracadabra"); 16656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam assertTrue("isLightTheme should return default value true", 16756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam WizardManagerHelper.isLightTheme(intent, true)); 16856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam assertFalse("isLightTheme should return default value false", 16956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam WizardManagerHelper.isLightTheme(intent, false)); 17056a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam } 17156a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam 1722614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 17356a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam public void testIsLightThemeUnspecified() { 17456a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam final Intent intent = new Intent(); 17556a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam assertTrue("isLightTheme should return default value true", 17656a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam WizardManagerHelper.isLightTheme(intent, true)); 17756a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam assertFalse("isLightTheme should return default value false", 17856a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam WizardManagerHelper.isLightTheme(intent, false)); 17956a19113d248d9ffdb462a0af6ba8a967635be66Maurice Lam } 180c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam 1812614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 182c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam public void testIsLightThemeString() { 183c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam assertTrue("isLightTheme should return true for material_light", 184c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam WizardManagerHelper.isLightTheme("material_light", false)); 185c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam assertFalse("isLightTheme should return false for material", 186c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam WizardManagerHelper.isLightTheme("material", false)); 187c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam assertTrue("isLightTheme should return true for holo_light", 188c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam WizardManagerHelper.isLightTheme("holo_light", false)); 189c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam assertFalse("isLightTheme should return false for holo", 190c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam WizardManagerHelper.isLightTheme("holo", false)); 191c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam assertTrue("isLightTheme should return default value true", 192c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam WizardManagerHelper.isLightTheme("abracadabra", true)); 193c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam assertFalse("isLightTheme should return default value false", 194c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam WizardManagerHelper.isLightTheme("abracadabra", false)); 195c3a4e07feacd7e9cff6d0fc6ddbe86c90d6f7087Maurice Lam } 196e0275b558e533bd0665b87e2e78267801c2472cdMaurice Lam 19753f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam @Test 198e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam public void testGetThemeResGlifPixelLight() { 199e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam assertEquals(R.style.SuwThemeGlifPixel_Light, 200e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam WizardManagerHelper.getThemeRes("glif_pixel_light", 0)); 201e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam } 202e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam 203e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @Test 204e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam public void testGetThemeResGlifPixel() { 205e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam assertEquals(R.style.SuwThemeGlifPixel, 206e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam WizardManagerHelper.getThemeRes("glif_pixel", 0)); 207e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam } 208e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam 209e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @Test 210e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam public void testGetThemeResGlifLight() { 211e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam assertEquals(R.style.SuwThemeGlif_Light, 212e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam WizardManagerHelper.getThemeRes("glif_light", 0)); 213e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam } 214e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam 215e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @Test 216e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam public void testGetThemeResGlif() { 217e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam assertEquals(R.style.SuwThemeGlif, 218e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam WizardManagerHelper.getThemeRes("glif", 0)); 219e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam } 220e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam 221e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @Test 222e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam public void testGetThemeResMaterialLight() { 223e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam assertEquals(R.style.SuwThemeMaterial_Light, 224e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam WizardManagerHelper.getThemeRes("material_light", 0)); 225e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam } 226e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam 227e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @Test 228e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam public void testGetThemeResMaterial() { 229e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam assertEquals(R.style.SuwThemeMaterial, 230e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam WizardManagerHelper.getThemeRes("material", 0)); 231e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam } 232e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam 233e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @Test 234e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam public void testGetThemeResDefault() { 235e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @StyleRes int def = 123; 236e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam assertEquals(def, WizardManagerHelper.getThemeRes("abracadabra", def)); 237e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam } 238e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam 239e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @Test 240e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam public void testGetThemeResNull() { 241e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @StyleRes int def = 123; 242e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam assertEquals(def, WizardManagerHelper.getThemeRes((String) null, def)); 243e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam } 244e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam 245e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @Test 246e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam public void testGetThemeResFromIntent() { 247e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam Intent intent = new Intent(); 248e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam intent.putExtra(WizardManagerHelper.EXTRA_THEME, "material"); 249e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam assertEquals(R.style.SuwThemeMaterial, WizardManagerHelper.getThemeRes(intent, 0)); 250e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam } 251e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam 252e749c2c1f2f664d2798ea9c482375f33f5371bf0Maurice Lam @Test 25353f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam public void testCopyWizardManagerIntent() { 25453f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam Bundle wizardBundle = new Bundle(); 25553f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam wizardBundle.putString("foo", "bar"); 25653f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam Intent originalIntent = new Intent() 25753f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam .putExtra(WizardManagerHelper.EXTRA_THEME, "test_theme") 25853f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam .putExtra(WizardManagerHelper.EXTRA_WIZARD_BUNDLE, wizardBundle) 25953f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam .putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, true) 26053f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam // Script URI and Action ID are kept for backwards compatibility 26153f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam .putExtra(WizardManagerHelper.EXTRA_SCRIPT_URI, "test_script_uri") 26253f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam .putExtra(WizardManagerHelper.EXTRA_ACTION_ID, "test_action_id"); 26353f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam 26453f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam Intent intent = new Intent("test.intent.action"); 26553f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam WizardManagerHelper.copyWizardManagerExtras(originalIntent, intent); 26653f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam 26753f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam assertEquals("Intent action should be kept", "test.intent.action", intent.getAction()); 26853f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam assertEquals("EXTRA_THEME should be copied", 26953f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam "test_theme", intent.getStringExtra(WizardManagerHelper.EXTRA_THEME)); 27053f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam Bundle copiedWizardBundle = 27153f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam intent.getParcelableExtra(WizardManagerHelper.EXTRA_WIZARD_BUNDLE); 27253f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam assertEquals("Wizard bundle should be copied", "bar", copiedWizardBundle.getString("foo")); 27353f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam 27453f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam assertTrue("EXTRA_IS_FIRST_RUN should be copied", 27553f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam intent.getBooleanExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, false)); 27653f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam 27753f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam // Script URI and Action ID are replaced by Wizard Bundle in M, but are kept for backwards 27853f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam // compatibility 27953f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam assertEquals("EXTRA_SCRIPT_URI should be copied", 28053f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam "test_script_uri", intent.getStringExtra(WizardManagerHelper.EXTRA_SCRIPT_URI)); 28153f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam assertEquals("EXTRA_ACTION_ID should be copied", 28253f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam "test_action_id", intent.getStringExtra(WizardManagerHelper.EXTRA_ACTION_ID)); 28353f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam } 28453f9de0cc4b08886f1636cde9db67728ae9464f2Maurice Lam 285d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam @TargetApi(VERSION_CODES.JELLY_BEAN_MR1) 2862614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 287e0275b558e533bd0665b87e2e78267801c2472cdMaurice Lam public void testIsUserSetupComplete() { 288d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam Settings.Secure.putInt(application.getContentResolver(), Global.DEVICE_PROVISIONED, 1); 289d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam Settings.Secure.putInt(application.getContentResolver(), "user_setup_complete", 1); 290d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertTrue(WizardManagerHelper.isUserSetupComplete(application)); 291d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam 292d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam Settings.Secure.putInt(application.getContentResolver(), "user_setup_complete", 0); 293d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertFalse(WizardManagerHelper.isUserSetupComplete(application)); 294d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam } 295d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam 296d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam @Test 297d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam @Config(sdk = VERSION_CODES.JELLY_BEAN) 298d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam public void testIsUserSetupCompleteCompat() { 299d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam Settings.Secure.putInt(application.getContentResolver(), Secure.DEVICE_PROVISIONED, 1); 300d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertTrue(WizardManagerHelper.isUserSetupComplete(application)); 301d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam 302d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam Settings.Secure.putInt(application.getContentResolver(), Secure.DEVICE_PROVISIONED, 0); 303d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertFalse(WizardManagerHelper.isUserSetupComplete(application)); 304e0275b558e533bd0665b87e2e78267801c2472cdMaurice Lam } 305e0275b558e533bd0665b87e2e78267801c2472cdMaurice Lam 306d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam @TargetApi(VERSION_CODES.JELLY_BEAN_MR1) 3072614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 308e0275b558e533bd0665b87e2e78267801c2472cdMaurice Lam public void testIsDeviceProvisioned() { 309d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam Settings.Secure.putInt(application.getContentResolver(), Global.DEVICE_PROVISIONED, 1); 310d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertTrue(WizardManagerHelper.isDeviceProvisioned(application)); 311d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam Settings.Secure.putInt(application.getContentResolver(), Global.DEVICE_PROVISIONED, 0); 312d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertFalse(WizardManagerHelper.isDeviceProvisioned(application)); 313d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam } 314d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam 315d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam @Test 316d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam @Config(sdk = VERSION_CODES.JELLY_BEAN) 317d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam public void testIsDeviceProvisionedCompat() { 318d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam Settings.Secure.putInt(application.getContentResolver(), Secure.DEVICE_PROVISIONED, 1); 319d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertTrue(WizardManagerHelper.isDeviceProvisioned(application)); 320d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam Settings.Secure.putInt(application.getContentResolver(), Secure.DEVICE_PROVISIONED, 0); 321d3ffc713be68823409d5dc6d2d44bb21bde5bfd0Maurice Lam assertFalse(WizardManagerHelper.isDeviceProvisioned(application)); 322e0275b558e533bd0665b87e2e78267801c2472cdMaurice Lam } 323bc60ae4e0ee0116facc9bdc21d6da8a470303ce3Maurice Lam} 324