Home | History | Annotate | Download | only in settings
      1 /*
      2  * Copyright (C) 2016 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.settings;
     18 
     19 import static com.android.settings.testutils.ResIdSubject.assertResId;
     20 
     21 import static com.google.common.truth.Truth.assertThat;
     22 
     23 import android.content.Intent;
     24 
     25 import com.android.settings.testutils.shadow.SettingsShadowSystemProperties;
     26 import com.android.settings.testutils.SettingsRobolectricTestRunner;
     27 import com.android.setupwizardlib.util.WizardManagerHelper;
     28 
     29 import org.junit.After;
     30 import org.junit.Test;
     31 import org.junit.runner.RunWith;
     32 import org.robolectric.annotation.Config;
     33 
     34 @RunWith(SettingsRobolectricTestRunner.class)
     35 @Config(
     36         manifest = TestConfig.MANIFEST_PATH,
     37         sdk = TestConfig.SDK_VERSION,
     38         shadows = {
     39                 SettingsShadowSystemProperties.class
     40         })
     41 public class SetupWizardUtilsTest {
     42 
     43     @After
     44     public void tearDown() {
     45         SettingsShadowSystemProperties.clear();
     46     }
     47 
     48     @Test
     49     public void testCopySetupExtras() throws Throwable {
     50         Intent fromIntent = new Intent();
     51         final String theme = "TEST_THEME";
     52         fromIntent.putExtra(WizardManagerHelper.EXTRA_THEME, theme);
     53         fromIntent.putExtra(WizardManagerHelper.EXTRA_USE_IMMERSIVE_MODE, true);
     54         Intent toIntent = new Intent();
     55         SetupWizardUtils.copySetupExtras(fromIntent, toIntent);
     56 
     57         assertThat(theme).isEqualTo(toIntent.getStringExtra(WizardManagerHelper.EXTRA_THEME));
     58         assertThat(toIntent.getBooleanExtra(WizardManagerHelper.EXTRA_USE_IMMERSIVE_MODE, false))
     59                 .isTrue();
     60     }
     61 
     62     @Test
     63     public void testGetTheme_withIntentExtra_shouldReturnExtraTheme() {
     64         SettingsShadowSystemProperties.set(SetupWizardUtils.SYSTEM_PROP_SETUPWIZARD_THEME,
     65                 WizardManagerHelper.THEME_GLIF);
     66         Intent intent = new Intent();
     67         intent.putExtra(WizardManagerHelper.EXTRA_THEME, WizardManagerHelper.THEME_GLIF_V2);
     68 
     69         assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme);
     70     }
     71 
     72     @Test
     73     public void testGetTheme_withEmptyIntent_shouldReturnSystemProperty() {
     74         SettingsShadowSystemProperties.set(SetupWizardUtils.SYSTEM_PROP_SETUPWIZARD_THEME,
     75                 WizardManagerHelper.THEME_GLIF_V2_LIGHT);
     76         Intent intent = new Intent();
     77 
     78         assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme_Light);
     79     }
     80 
     81 }
     82