diff --git a/packages/SettingsLib/MainSwitchPreference/res/layout/main_switch_bar.xml b/packages/SettingsLib/MainSwitchPreference/res/layout/main_switch_bar.xml index 66bb2f376ec5b..a9e9f8cb9ca52 100644 --- a/packages/SettingsLib/MainSwitchPreference/res/layout/main_switch_bar.xml +++ b/packages/SettingsLib/MainSwitchPreference/res/layout/main_switch_bar.xml @@ -66,7 +66,7 @@ diff --git a/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchBar.java b/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchBar.java index 1db64e3b5c450..532c996824d46 100644 --- a/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchBar.java +++ b/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchBar.java @@ -28,6 +28,8 @@ import android.widget.LinearLayout; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.VisibleForTesting; + import com.android.settingslib.RestrictedLockUtils; import java.util.ArrayList; @@ -107,6 +109,20 @@ public class MainSwitchBar extends LinearLayout implements CompoundButton.OnChec } } + /** + * Return the status of the Switch + */ + public boolean isChecked() { + return mSwitch.isChecked(); + } + + /** + * Return the Switch + */ + public final Switch getSwitch() { + return mSwitch; + } + /** * Set the title text */ @@ -202,7 +218,8 @@ public class MainSwitchBar extends LinearLayout implements CompoundButton.OnChec protected void onRestrictedIconClick() { } - private View getDelegatingView() { + @VisibleForTesting + View getDelegatingView() { return mDisabledByAdmin ? mRestrictedIcon : mSwitch; } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java new file mode 100644 index 0000000000000..9347609aab4e0 --- /dev/null +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.widget; + +import static com.google.common.truth.Truth.assertThat; + +import android.content.Context; +import android.view.View; +import android.widget.Switch; +import android.widget.TextView; + +import com.android.settingslib.RestrictedLockUtils; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; + +@RunWith(RobolectricTestRunner.class) +public class MainSwitchBarTest { + + private Context mContext; + private MainSwitchBar mBar; + + @Before + public void setUp() { + mContext = RuntimeEnvironment.application; + mBar = new MainSwitchBar(mContext); + } + + @Test + public void setChecked_true_shouldChecked() { + mBar.setChecked(true); + + assertThat(mBar.isChecked()).isTrue(); + } + + @Test + public void setTitle_shouldUpdateTitle() { + final String title = "title"; + + mBar.setTitle(title); + final TextView textView = ((TextView) mBar.findViewById(R.id.switch_text)); + + assertThat(textView.getText()).isEqualTo(title); + } + + @Test + public void getSwitch_shouldNotNull() { + final Switch switchObj = mBar.getSwitch(); + + assertThat(switchObj).isNotNull(); + } + + @Test + public void show_shouldVisible() { + mBar.show(); + + assertThat(mBar.getVisibility()).isEqualTo(View.VISIBLE); + } + + @Test + public void hide_shouldNotVisible() { + mBar.hide(); + + assertThat(mBar.getVisibility()).isEqualTo(View.GONE); + } + + @Test + public void disabledByAdmin_shouldDelegateToRestrictedIcon() { + mBar.setDisabledByAdmin(new RestrictedLockUtils.EnforcedAdmin()); + + assertThat(mBar.getDelegatingView().getId()).isEqualTo(R.id.restricted_icon); + } +} diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchPreferenceTest.java index 635e3bd7bf0b0..2e77acaa08070 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchPreferenceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchPreferenceTest.java @@ -47,7 +47,7 @@ public class MainSwitchPreferenceTest { } @Test - public void setTitleText_shouldUpdateTitle() { + public void setTitle_shouldUpdateTitle() { final String defaultOnText = "Test title"; mPreference.onBindViewHolder(mHolder);