summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYiqun Wu <yiqunw@google.com>2019-05-21 15:07:51 -0700
committerYiqun Wu <yiqunw@google.com>2019-05-28 11:52:35 -0700
commit160cdab1bdbdba37ef0be3f8e4cf0a3739cb49f5 (patch)
tree2b74f442c9e4c6203504ff6380b20a5c6ab1a874
parent2a27cbe11dcf3f5dd18208587e61618571c3e6d4 (diff)
downloadplatform_packages_apps_Car_Dialer-160cdab1bdbdba37ef0be3f8e4cf0a3739cb49f5.tar.gz
platform_packages_apps_Car_Dialer-160cdab1bdbdba37ef0be3f8e4cf0a3739cb49f5.tar.bz2
platform_packages_apps_Car_Dialer-160cdab1bdbdba37ef0be3f8e4cf0a3739cb49f5.zip
DO NOT MERGE: Shadow the AndroidViewModelFactory
Instead of shadowing the ViewModelProvider which may affect fragment manager, we will just shadow the AndroidViewModelFactory. Bug: 133147749 Test: mma Change-Id: I2faaf40d622b23dcc1ca64081b6f64c717437885
-rw-r--r--tests/robotests/AndroidManifest.xml22
-rw-r--r--tests/robotests/config/robolectric.properties1
-rw-r--r--tests/robotests/src/com/android/car/dialer/FragmentTestActivity.java1
-rw-r--r--tests/robotests/src/com/android/car/dialer/TestDialerApplication.java2
-rw-r--r--tests/robotests/src/com/android/car/dialer/telecom/UiCallManagerTest.java4
-rw-r--r--tests/robotests/src/com/android/car/dialer/testutils/ShadowAndroidViewModelFactory.java (renamed from tests/robotests/src/com/android/car/dialer/testutils/ShadowViewModelProvider.java)13
-rw-r--r--tests/robotests/src/com/android/car/dialer/ui/activecall/OnGoingCallControllerBarFragmentTest.java6
-rw-r--r--tests/robotests/src/com/android/car/dialer/ui/activecall/RingingCallControllerBarFragmentTest.java6
-rw-r--r--tests/robotests/src/com/android/car/dialer/ui/calllog/CallHistoryFragmentTest.java6
-rw-r--r--tests/robotests/src/com/android/car/dialer/ui/contact/ContactDetailsFragmentTest.java7
-rw-r--r--tests/robotests/src/com/android/car/dialer/ui/contact/ContactListFragmentTest.java9
-rw-r--r--tests/robotests/src/com/android/car/dialer/ui/favorite/FavoriteFragmentTest.java6
12 files changed, 32 insertions, 51 deletions
diff --git a/tests/robotests/AndroidManifest.xml b/tests/robotests/AndroidManifest.xml
deleted file mode 100644
index c20780c6..00000000
--- a/tests/robotests/AndroidManifest.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2018 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.
- -->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.car.dialer.robotests">
- <application/>
-
-</manifest>
diff --git a/tests/robotests/config/robolectric.properties b/tests/robotests/config/robolectric.properties
index 12e47bc3..fc4f8ca0 100644
--- a/tests/robotests/config/robolectric.properties
+++ b/tests/robotests/config/robolectric.properties
@@ -11,5 +11,4 @@
# 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.
-manifest=packages/apps/Car/Dialer/AndroidManifest.xml
sdk=NEWEST_SDK
diff --git a/tests/robotests/src/com/android/car/dialer/FragmentTestActivity.java b/tests/robotests/src/com/android/car/dialer/FragmentTestActivity.java
index 23441e3d..d4401264 100644
--- a/tests/robotests/src/com/android/car/dialer/FragmentTestActivity.java
+++ b/tests/robotests/src/com/android/car/dialer/FragmentTestActivity.java
@@ -34,6 +34,7 @@ public class FragmentTestActivity extends FragmentActivity implements
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setTheme(R.style.Theme_Dialer);
setContentView(R.layout.test_activity);
}
diff --git a/tests/robotests/src/com/android/car/dialer/TestDialerApplication.java b/tests/robotests/src/com/android/car/dialer/TestDialerApplication.java
index 1b2b31a1..4b3a4702 100644
--- a/tests/robotests/src/com/android/car/dialer/TestDialerApplication.java
+++ b/tests/robotests/src/com/android/car/dialer/TestDialerApplication.java
@@ -16,8 +16,8 @@
package com.android.car.dialer;
-import static org.robolectric.Shadows.shadowOf;
import static org.mockito.Mockito.mock;
+import static org.robolectric.Shadows.shadowOf;
import android.app.Application;
import android.app.NotificationManager;
diff --git a/tests/robotests/src/com/android/car/dialer/telecom/UiCallManagerTest.java b/tests/robotests/src/com/android/car/dialer/telecom/UiCallManagerTest.java
index e9c24d4d..3fd93e8b 100644
--- a/tests/robotests/src/com/android/car/dialer/telecom/UiCallManagerTest.java
+++ b/tests/robotests/src/com/android/car/dialer/telecom/UiCallManagerTest.java
@@ -31,6 +31,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.telecom.TelecomManager;
+import com.android.car.dialer.CarDialerRobolectricTestRunner;
import com.android.car.dialer.R;
import com.android.car.dialer.TestDialerApplication;
@@ -41,13 +42,12 @@ import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowContextImpl;
import org.robolectric.shadows.ShadowToast;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(CarDialerRobolectricTestRunner.class)
public class UiCallManagerTest {
private static final String TEL_SCHEME = "tel";
diff --git a/tests/robotests/src/com/android/car/dialer/testutils/ShadowViewModelProvider.java b/tests/robotests/src/com/android/car/dialer/testutils/ShadowAndroidViewModelFactory.java
index b1a27bb3..b1f3d688 100644
--- a/tests/robotests/src/com/android/car/dialer/testutils/ShadowViewModelProvider.java
+++ b/tests/robotests/src/com/android/car/dialer/testutils/ShadowAndroidViewModelFactory.java
@@ -16,6 +16,7 @@
package com.android.car.dialer.testutils;
+import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
@@ -28,23 +29,23 @@ import java.util.Map;
/**
* Shadow class for {@link ViewModelProvider}.
*/
-@Implements(ViewModelProvider.class)
-public class ShadowViewModelProvider {
+@Implements(ViewModelProvider.AndroidViewModelFactory.class)
+public class ShadowAndroidViewModelFactory {
- private static Map<Class, ViewModel> viewModelMap = new HashMap<>();
+ private static final Map<Class, ViewModel> VIEW_MODEL_MAP = new HashMap<>();
/**
* Adds class and view model pairs to the map.
*/
public static <T extends ViewModel> void add(Class<T> modelClass, T viewModel) {
- viewModelMap.put(modelClass, viewModel);
+ VIEW_MODEL_MAP.put(modelClass, viewModel);
}
/**
* Returns a ViewModel from the map.
*/
@Implementation
- public <T extends ViewModel> T get(Class<T> modelClass) {
- return (T) viewModelMap.get(modelClass);
+ public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
+ return (T) VIEW_MODEL_MAP.get(modelClass);
}
}
diff --git a/tests/robotests/src/com/android/car/dialer/ui/activecall/OnGoingCallControllerBarFragmentTest.java b/tests/robotests/src/com/android/car/dialer/ui/activecall/OnGoingCallControllerBarFragmentTest.java
index b046fe74..9eb10a76 100644
--- a/tests/robotests/src/com/android/car/dialer/ui/activecall/OnGoingCallControllerBarFragmentTest.java
+++ b/tests/robotests/src/com/android/car/dialer/ui/activecall/OnGoingCallControllerBarFragmentTest.java
@@ -40,7 +40,7 @@ import com.android.car.dialer.FragmentTestActivity;
import com.android.car.dialer.R;
import com.android.car.dialer.telecom.InCallServiceImpl;
import com.android.car.dialer.telecom.UiCallManager;
-import com.android.car.dialer.testutils.ShadowViewModelProvider;
+import com.android.car.dialer.testutils.ShadowAndroidViewModelFactory;
import org.junit.Before;
import org.junit.Test;
@@ -57,7 +57,7 @@ import org.robolectric.shadows.ShadowLooper;
import java.util.ArrayList;
import java.util.List;
-@Config(shadows = {ShadowViewModelProvider.class})
+@Config(shadows = {ShadowAndroidViewModelFactory.class})
@RunWith(CarDialerRobolectricTestRunner.class)
public class OnGoingCallControllerBarFragmentTest {
private static final String CALL_STATE = "CALL_STATE";
@@ -214,7 +214,7 @@ public class OnGoingCallControllerBarFragmentTest {
when(mMockInCallViewModel.getPrimaryCallDetail()).thenReturn(mock(LiveData.class));
when(mMockInCallViewModel.getCallStateDescription()).thenReturn(mock(LiveData.class));
when(mMockInCallViewModel.getPrimaryCallState()).thenReturn(mock(LiveData.class));
- ShadowViewModelProvider.add(InCallViewModel.class, mMockInCallViewModel);
+ ShadowAndroidViewModelFactory.add(InCallViewModel.class, mMockInCallViewModel);
FragmentTestActivity fragmentTestActivity = Robolectric.buildActivity(
FragmentTestActivity.class).create().start().resume().get();
diff --git a/tests/robotests/src/com/android/car/dialer/ui/activecall/RingingCallControllerBarFragmentTest.java b/tests/robotests/src/com/android/car/dialer/ui/activecall/RingingCallControllerBarFragmentTest.java
index d1ce0d0a..1d03a51a 100644
--- a/tests/robotests/src/com/android/car/dialer/ui/activecall/RingingCallControllerBarFragmentTest.java
+++ b/tests/robotests/src/com/android/car/dialer/ui/activecall/RingingCallControllerBarFragmentTest.java
@@ -32,7 +32,7 @@ import androidx.lifecycle.MutableLiveData;
import com.android.car.dialer.CarDialerRobolectricTestRunner;
import com.android.car.dialer.FragmentTestActivity;
import com.android.car.dialer.R;
-import com.android.car.dialer.testutils.ShadowViewModelProvider;
+import com.android.car.dialer.testutils.ShadowAndroidViewModelFactory;
import org.junit.Before;
import org.junit.Test;
@@ -43,7 +43,7 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
-@Config(shadows = {ShadowViewModelProvider.class})
+@Config(shadows = {ShadowAndroidViewModelFactory.class})
@RunWith(CarDialerRobolectricTestRunner.class)
public class RingingCallControllerBarFragmentTest {
@@ -63,7 +63,7 @@ public class RingingCallControllerBarFragmentTest {
when(mMockInCallViewModel.getPrimaryCallDetail()).thenReturn(mock(LiveData.class));
when(mMockInCallViewModel.getCallStateDescription()).thenReturn(mock(LiveData.class));
when(mMockInCallViewModel.getPrimaryCallState()).thenReturn(mock(LiveData.class));
- ShadowViewModelProvider.add(InCallViewModel.class, mMockInCallViewModel);
+ ShadowAndroidViewModelFactory.add(InCallViewModel.class, mMockInCallViewModel);
FragmentTestActivity fragmentTestActivity = Robolectric.buildActivity(
FragmentTestActivity.class).create().start().resume().get();
diff --git a/tests/robotests/src/com/android/car/dialer/ui/calllog/CallHistoryFragmentTest.java b/tests/robotests/src/com/android/car/dialer/ui/calllog/CallHistoryFragmentTest.java
index 4d5a482d..8463f573 100644
--- a/tests/robotests/src/com/android/car/dialer/ui/calllog/CallHistoryFragmentTest.java
+++ b/tests/robotests/src/com/android/car/dialer/ui/calllog/CallHistoryFragmentTest.java
@@ -33,7 +33,7 @@ import com.android.car.dialer.FragmentTestActivity;
import com.android.car.dialer.R;
import com.android.car.dialer.livedata.CallHistoryLiveData;
import com.android.car.dialer.telecom.UiCallManager;
-import com.android.car.dialer.testutils.ShadowViewModelProvider;
+import com.android.car.dialer.testutils.ShadowAndroidViewModelFactory;
import com.android.car.dialer.ui.common.entity.UiCallLog;
import com.android.car.dialer.widget.CallTypeIconsView;
import com.android.car.telephony.common.InMemoryPhoneBook;
@@ -53,7 +53,7 @@ import org.robolectric.annotation.Config;
import java.util.Arrays;
import java.util.List;
-@Config(shadows = {ShadowViewModelProvider.class})
+@Config(shadows = {ShadowAndroidViewModelFactory.class})
@RunWith(CarDialerRobolectricTestRunner.class)
public class CallHistoryFragmentTest {
private static final String PHONE_NUMBER = "6502530000";
@@ -86,7 +86,7 @@ public class CallHistoryFragmentTest {
MutableLiveData<List<UiCallLog>> callLog = new MutableLiveData<>();
callLog.setValue(Arrays.asList(uiCallLog));
- ShadowViewModelProvider.add(CallHistoryViewModel.class, mMockCallHistoryViewModel);
+ ShadowAndroidViewModelFactory.add(CallHistoryViewModel.class, mMockCallHistoryViewModel);
when(mMockCallHistoryViewModel.getCallHistory()).thenReturn(callLog);
CallHistoryFragment callHistoryFragment = CallHistoryFragment.newInstance();
diff --git a/tests/robotests/src/com/android/car/dialer/ui/contact/ContactDetailsFragmentTest.java b/tests/robotests/src/com/android/car/dialer/ui/contact/ContactDetailsFragmentTest.java
index 26350686..ac15afea 100644
--- a/tests/robotests/src/com/android/car/dialer/ui/contact/ContactDetailsFragmentTest.java
+++ b/tests/robotests/src/com/android/car/dialer/ui/contact/ContactDetailsFragmentTest.java
@@ -33,7 +33,7 @@ import com.android.car.dialer.CarDialerRobolectricTestRunner;
import com.android.car.dialer.FragmentTestActivity;
import com.android.car.dialer.R;
import com.android.car.dialer.telecom.UiCallManager;
-import com.android.car.dialer.testutils.ShadowViewModelProvider;
+import com.android.car.dialer.testutils.ShadowAndroidViewModelFactory;
import com.android.car.telephony.common.Contact;
import com.android.car.telephony.common.PhoneNumber;
@@ -48,7 +48,7 @@ import org.robolectric.annotation.Config;
import java.util.Arrays;
-@Config(shadows = {ShadowViewModelProvider.class}, qualifiers = "h610dp")
+@Config(shadows = {ShadowAndroidViewModelFactory.class}, qualifiers = "h610dp")
@RunWith(CarDialerRobolectricTestRunner.class)
public class ContactDetailsFragmentTest {
private static final String DISPLAY_NAME = "NAME";
@@ -84,7 +84,8 @@ public class ContactDetailsFragmentTest {
MutableLiveData<Contact> contactDetails = new MutableLiveData<>();
contactDetails.setValue(mMockContact);
- ShadowViewModelProvider.add(ContactDetailsViewModel.class, mMockContactDetailsViewModel);
+ ShadowAndroidViewModelFactory.add(ContactDetailsViewModel.class,
+ mMockContactDetailsViewModel);
when(mMockContactDetailsViewModel.getContactDetails(mMockContactLookupUri)).thenReturn(
contactDetails);
}
diff --git a/tests/robotests/src/com/android/car/dialer/ui/contact/ContactListFragmentTest.java b/tests/robotests/src/com/android/car/dialer/ui/contact/ContactListFragmentTest.java
index 40131b59..d40a50bc 100644
--- a/tests/robotests/src/com/android/car/dialer/ui/contact/ContactListFragmentTest.java
+++ b/tests/robotests/src/com/android/car/dialer/ui/contact/ContactListFragmentTest.java
@@ -35,7 +35,7 @@ import com.android.car.dialer.CarDialerRobolectricTestRunner;
import com.android.car.dialer.FragmentTestActivity;
import com.android.car.dialer.R;
import com.android.car.dialer.telecom.UiCallManager;
-import com.android.car.dialer.testutils.ShadowViewModelProvider;
+import com.android.car.dialer.testutils.ShadowAndroidViewModelFactory;
import com.android.car.telephony.common.Contact;
import com.android.car.telephony.common.PhoneNumber;
@@ -52,7 +52,7 @@ import org.robolectric.shadows.ShadowAlertDialog;
import java.util.Arrays;
import java.util.List;
-@Config(shadows = {ShadowViewModelProvider.class})
+@Config(shadows = {ShadowAndroidViewModelFactory.class})
@RunWith(CarDialerRobolectricTestRunner.class)
public class ContactListFragmentTest {
private static final String RAW_NUMBNER = "6502530000";
@@ -81,12 +81,13 @@ public class ContactListFragmentTest {
MutableLiveData<List<Contact>> contactList = new MutableLiveData<>();
contactList.setValue(Arrays.asList(mMockContact1, mMockContact2, mMockContact3));
- ShadowViewModelProvider.add(ContactListViewModel.class, mMockContactListViewModel);
+ ShadowAndroidViewModelFactory.add(ContactListViewModel.class, mMockContactListViewModel);
when(mMockContactListViewModel.getAllContacts()).thenReturn(contactList);
MutableLiveData<Contact> contactDetail = new MutableLiveData<>();
contactDetail.setValue(mMockContact1);
- ShadowViewModelProvider.add(ContactDetailsViewModel.class, mMockContactDetailsViewModel);
+ ShadowAndroidViewModelFactory.add(ContactDetailsViewModel.class,
+ mMockContactDetailsViewModel);
when(mMockContactDetailsViewModel.getContactDetails(any())).thenReturn(contactDetail);
}
diff --git a/tests/robotests/src/com/android/car/dialer/ui/favorite/FavoriteFragmentTest.java b/tests/robotests/src/com/android/car/dialer/ui/favorite/FavoriteFragmentTest.java
index 947dcc02..04b2327b 100644
--- a/tests/robotests/src/com/android/car/dialer/ui/favorite/FavoriteFragmentTest.java
+++ b/tests/robotests/src/com/android/car/dialer/ui/favorite/FavoriteFragmentTest.java
@@ -31,7 +31,7 @@ import com.android.car.dialer.CarDialerRobolectricTestRunner;
import com.android.car.dialer.FragmentTestActivity;
import com.android.car.dialer.R;
import com.android.car.dialer.telecom.UiCallManager;
-import com.android.car.dialer.testutils.ShadowViewModelProvider;
+import com.android.car.dialer.testutils.ShadowAndroidViewModelFactory;
import com.android.car.telephony.common.Contact;
import com.android.car.telephony.common.PhoneNumber;
@@ -47,7 +47,7 @@ import org.robolectric.annotation.Config;
import java.util.Arrays;
import java.util.List;
-@Config(shadows = {ShadowViewModelProvider.class})
+@Config(shadows = {ShadowAndroidViewModelFactory.class})
@RunWith(CarDialerRobolectricTestRunner.class)
public class FavoriteFragmentTest {
private static final String RAW_NUMBER = "6502530000";
@@ -72,7 +72,7 @@ public class FavoriteFragmentTest {
when(mMockPhoneNumber.getRawNumber()).thenReturn(RAW_NUMBER);
MutableLiveData<List<Contact>> favoriteContacts = new MutableLiveData<>();
favoriteContacts.setValue(Arrays.asList(mMockContact));
- ShadowViewModelProvider.add(FavoriteViewModel.class, mMockFavoriteViewModel);
+ ShadowAndroidViewModelFactory.add(FavoriteViewModel.class, mMockFavoriteViewModel);
when(mMockFavoriteViewModel.getFavoriteContacts()).thenReturn(favoriteContacts);
mFavoriteFragment = FavoriteFragment.newInstance();