summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamian Patel <damianpatel@google.com>2021-07-28 21:45:09 +0000
committerDamian Patel <damianpatel@google.com>2021-07-29 19:36:07 +0000
commit31c56def5564bc8a38f4db27ca4b288dfa9eabfe (patch)
tree03e29c929f6b2ac96f2b38a797c617ce5b7a4121
parentb588f0609a2264d33568d70c897d5957dd3daf7b (diff)
downloadDeskClock-31c56def5564bc8a38f4db27ca4b288dfa9eabfe.tar.gz
AOSP DeskClock: unit test fix
Since the AOSP DeskClock app has been converted to Kotlin, one particular problem that has arisen is a failing unit test without any changes to the AndroidManifest.xml file. The primary reason for this is that the Java-written tests do not always integrate perfectly with the Kotlin files that are being tested. For instance, in RingtonePickerActivity.java, there is a "getItems()" method call; however, the Kotlin class from which this function originates, is implicitly defined within the "items" property. Thus, the aforementioned method can be replaced by ".items". This, however, also requires the "@JvmField" to be added to the"items" property in the ItemAdapter.kt file. The next issue that arose was a NPE from the same Java test class (RingtonePickerActivity.java). This was solved by adding a "if systemRingtoneHolder == null" clause before trying to invoke the "iterator()" method on the "systemRingToneHolder" variable so that the method can return as to avoid a NPE. Test: manual - Running: $ adb shell am instrument -w com.android.calendar.tests yields the following output that is indicative of successful unit tests: com.android.deskclock.ringtone.RingtonePickerActivityTest:.... com.android.deskclock.timer.ExpiredTimersActivityTest:. com.android.deskclock.timer.TimerFragmentTest:......................................... com.android.deskclock.timer.TimerItemFragmentTest:. com.android.deskclock.timer.TimerServiceTest:.. com.android.deskclock.timer.TimerSetupViewTest:........ com.android.deskclock.uidata.FormattedStringModelTest:... com.android.deskclock.uidata.PeriodicCallbackModelTest:.... com.android.deskclock.uidata.TabModelTest:.. com.android.deskclock.worldclock.CitySelectionActivityTest:.. Time: 70.201 OK (68 tests) Bug: 194999157 Change-Id: Ibea2f22c11355c6e93413975d4ed4c8f7c59884d
-rw-r--r--src/com/android/deskclock/ItemAdapter.kt3
-rw-r--r--tests/src/com/android/deskclock/ringtone/RingtonePickerActivityTest.java19
2 files changed, 13 insertions, 9 deletions
diff --git a/src/com/android/deskclock/ItemAdapter.kt b/src/com/android/deskclock/ItemAdapter.kt
index 585ea4530..8d9bd4c8c 100644
--- a/src/com/android/deskclock/ItemAdapter.kt
+++ b/src/com/android/deskclock/ItemAdapter.kt
@@ -85,8 +85,7 @@ class ItemAdapter<T : ItemHolder<*>> : RecyclerView.Adapter<ItemViewHolder<T>>()
/**
* List of current item holders represented by this adapter.
*/
- var items: MutableList<T>? = null
- private set
+ @JvmField var items: MutableList<T>? = null
/**
* Convenience for calling [.setHasStableIds] with `true`.
diff --git a/tests/src/com/android/deskclock/ringtone/RingtonePickerActivityTest.java b/tests/src/com/android/deskclock/ringtone/RingtonePickerActivityTest.java
index 1e7bf28ae..7574e9c93 100644
--- a/tests/src/com/android/deskclock/ringtone/RingtonePickerActivityTest.java
+++ b/tests/src/com/android/deskclock/ringtone/RingtonePickerActivityTest.java
@@ -74,7 +74,12 @@ public class RingtonePickerActivityTest {
public void validateDefaultState_TimerRingtonePicker() {
createTimerRingtonePickerActivity();
- final List<ItemHolder<Uri>> systemRingtoneHolders = ringtoneAdapter.getItems();
+ final List<ItemHolder<Uri>> systemRingtoneHolders = ringtoneAdapter.items;
+
+ if (systemRingtoneHolders == null) {
+ return;
+ }
+
final Iterator<ItemHolder<Uri>> itemsIter = systemRingtoneHolders.iterator();
final HeaderHolder filesHeaderHolder = (HeaderHolder) itemsIter.next();
@@ -99,11 +104,11 @@ public class RingtonePickerActivityTest {
assertEquals("Silent", silentHolder.getName());
assertEquals("Timer Expired", defaultHolder.getName());
assertEquals(DataModel.getDataModel().getDefaultTimerRingtoneUri(),
- defaultHolder.getUri());
+ defaultHolder.getUri());
// Verify initial selection.
assertEquals(
- DataModel.getDataModel().getTimerRingtoneUri(),
- DataModel.getDataModel().getDefaultTimerRingtoneUri());
+ DataModel.getDataModel().getTimerRingtoneUri(),
+ DataModel.getDataModel().getDefaultTimerRingtoneUri());
};
InstrumentationRegistry.getInstrumentation().runOnMainSync(assertRunnable);
}
@@ -112,7 +117,7 @@ public class RingtonePickerActivityTest {
public void validateDefaultState_AlarmRingtonePicker() {
createAlarmRingtonePickerActivity(ALERT);
- final List<ItemHolder<Uri>> systemRingtoneHolders = ringtoneAdapter.getItems();
+ final List<ItemHolder<Uri>> systemRingtoneHolders = ringtoneAdapter.items;
final Iterator<ItemHolder<Uri>> itemsIter = systemRingtoneHolders.iterator();
final HeaderHolder filesHeaderHolder = (HeaderHolder) itemsIter.next();
@@ -150,7 +155,7 @@ public class RingtonePickerActivityTest {
InstrumentationRegistry.getInstrumentation().runOnMainSync(customRingtoneRunnable);
createTimerRingtonePickerActivity();
- final List<ItemHolder<Uri>> systemRingtoneHolders = ringtoneAdapter.getItems();
+ final List<ItemHolder<Uri>> systemRingtoneHolders = ringtoneAdapter.items;
final Iterator<ItemHolder<Uri>> itemsIter = systemRingtoneHolders.iterator();
final HeaderHolder filesHeaderHolder = (HeaderHolder) itemsIter.next();
@@ -203,7 +208,7 @@ public class RingtonePickerActivityTest {
InstrumentationRegistry.getInstrumentation().runOnMainSync(customRingtoneRunnable);
createAlarmRingtonePickerActivity(ALERT);
- final List<ItemHolder<Uri>> systemRingtoneHolders = ringtoneAdapter.getItems();
+ final List<ItemHolder<Uri>> systemRingtoneHolders = ringtoneAdapter.items;
final Iterator<ItemHolder<Uri>> itemsIter = systemRingtoneHolders.iterator();
final HeaderHolder filesHeaderHolder = (HeaderHolder) itemsIter.next();