Do not show options if screen lock types is empty

Bug: 63311251
Test: Manually tested on device
Change-Id: Ia56a0791b89635efb4f8305f39b586b8054271cf
This commit is contained in:
Ajay Nadathur
2017-07-07 18:04:14 -07:00
parent 13a1a98bb9
commit 17d66bea42
2 changed files with 40 additions and 2 deletions

View File

@@ -24,6 +24,7 @@ import static org.robolectric.Shadows.shadowOf;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.android.settings.R;
@@ -42,11 +43,16 @@ import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowActivity.IntentForResult;
import org.robolectric.shadows.ShadowAlertDialog;
import org.robolectric.shadows.ShadowDialog;
import java.util.Collections;
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(
manifest = TestConfig.MANIFEST_PATH,
@@ -79,6 +85,15 @@ public class SetupChooseLockPasswordTest {
assertThat(ShadowDialog.getLatestDialog()).isNotNull();
}
@Test
@Config(shadows = ShadowChooseLockGenericController.class)
public void createActivity_withShowOptionsButtonExtra_buttonNotVisibleIfNoVisibleLockTypes() {
SetupChooseLockPassword activity = createSetupChooseLockPassword();
Button optionsButton = activity.findViewById(R.id.screen_lock_options);
assertThat(optionsButton).isNotNull();
assertThat(optionsButton.getVisibility()).isEqualTo(View.GONE);
}
@Test
public void allSecurityOptions_shouldBeShown_When_OptionsButtonIsClicked() {
SetupChooseLockPassword activity = createSetupChooseLockPassword();
@@ -122,4 +137,13 @@ public class SetupChooseLockPasswordTest {
intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
return Robolectric.buildActivity(SetupChooseLockPassword.class, intent).setup().get();
}
@Implements(ChooseLockGenericController.class)
public static class ShadowChooseLockGenericController {
@Implementation
public List<ScreenLockType> getVisibleScreenLockTypes(int quality,
boolean includeDisabled) {
return Collections.emptyList();
}
}
}