Fixes SelectLongPressTimeoutPreferenceControllerTest summary check.
This preference was updated in
commit 6c3805288b15ae27d115cc89f50a672cd923870e
to use "%s" summary and remove the controller's getSummary()
implementation so the old test that checked the controller summary
was failing.
This new version checks the preference's summary directly, but that
seems to require running using the robotest runner instead of unit test
so this test was moved there and now follows patterns used by other
similar tests there.
Fix: 278110568
Test: SelectLongPressTimeoutPreferenceControllerTest
Change-Id: Ib65c823a568ad200ebeae74ad443f32441e5cb73
diff --git a/tests/robotests/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java
new file mode 100644
index 0000000..7482e24
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2023 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.settings.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.ListPreference;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link SelectLongPressTimeoutPreferenceController}. */
+@RunWith(RobolectricTestRunner.class)
+public class SelectLongPressTimeoutPreferenceControllerTest {
+ private static final int SHORT_VALUE = 400;
+ private static final int MEDIUM_VALUE = 1000;
+ private static final int LONG_VALUE = 1500;
+ private static final int INVALID_VALUE = 0;
+
+ private final Context mContext = ApplicationProvider.getApplicationContext();
+ private SelectLongPressTimeoutPreferenceController mController;
+ private ListPreference mPreference;
+
+ @Before
+ public void setUp() {
+ mController = new SelectLongPressTimeoutPreferenceController(mContext, "press_timeout");
+ mPreference = new ListPreference(mContext);
+ mPreference.setEntries(R.array.long_press_timeout_selector_titles);
+ mPreference.setEntryValues(R.array.long_press_timeout_selector_values);
+ mPreference.setSummary("%s");
+ }
+
+ @Test
+ public void getAvailabilityStatus_shouldReturnAvailable() {
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.AVAILABLE);
+ }
+
+ @Test
+ public void updateState_toShortTimeout_shouldReturnShortSummary() {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.LONG_PRESS_TIMEOUT, SHORT_VALUE);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getSummary().toString()).isEqualTo("Short");
+ }
+
+ @Test
+ public void updateState_toMediumTimeout_shouldReturnMediumSummary() {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.LONG_PRESS_TIMEOUT, MEDIUM_VALUE);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getSummary().toString()).isEqualTo("Medium");
+ }
+
+ @Test
+ public void updateState_toLongTimeout_shouldReturnLongSummary() {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.LONG_PRESS_TIMEOUT, LONG_VALUE);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getSummary().toString()).isEqualTo("Long");
+ }
+
+ @Test
+ public void updateState_toInvalidTimeout_shouldReturnEmptySummary() {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.LONG_PRESS_TIMEOUT, INVALID_VALUE);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getSummary().toString()).isEmpty();
+ }
+}
diff --git a/tests/unit/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java
deleted file mode 100644
index 899fc09..0000000
--- a/tests/unit/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.settings.accessibility;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.core.BasePreferenceController;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class SelectLongPressTimeoutPreferenceControllerTest {
- private static final int VALID_VALUE = 1500;
- private static final int INVALID_VALUE = 0;
- private static final int DEFAULT_VALUE = 400;
-
- private Context mContext;
- private SelectLongPressTimeoutPreferenceController mController;
-
- @Before
- public void setUp() {
- mContext = ApplicationProvider.getApplicationContext();
- mController = new SelectLongPressTimeoutPreferenceController(mContext, "press_timeout");
- }
-
- @Test
- public void getAvailabilityStatus_byDefault_shouldReturnAvailable() {
- assertThat(mController.getAvailabilityStatus())
- .isEqualTo(BasePreferenceController.AVAILABLE);
- }
-
- @Test
- public void getSummary_byDefault_shouldReturnShort() {
- Settings.Secure.putInt(mContext.getContentResolver(),
- Settings.Secure.LONG_PRESS_TIMEOUT, DEFAULT_VALUE);
- final String expected = "Short";
-
- assertThat(mController.getSummary()).isEqualTo(expected);
- }
-
- @Test
- public void getSummary_validValue_shouldReturnLong() {
- Settings.Secure.putInt(mContext.getContentResolver(),
- Settings.Secure.LONG_PRESS_TIMEOUT, VALID_VALUE);
- final String expected = "Long";
-
- assertThat(mController.getSummary()).isEqualTo(expected);
- }
-
- @Test
- public void getSummary_invalidValue_shouldReturnNull() {
- Settings.Secure.putInt(mContext.getContentResolver(),
- Settings.Secure.LONG_PRESS_TIMEOUT, INVALID_VALUE);
-
- assertThat(mController.getSummary()).isNull();
- }
-}