Merge "Fix ZenModeScheduleRuleSettingsTest to test onAttach" into tm-dev
This commit is contained in:
@@ -18,31 +18,27 @@ package com.android.settings.notification.zen;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.Mockito.doReturn;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
import static org.robolectric.RuntimeEnvironment.application;
|
|
||||||
|
|
||||||
import android.app.NotificationManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Ignore;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.shadows.ShadowApplication;
|
|
||||||
import org.robolectric.shadows.ShadowToast;
|
import org.robolectric.shadows.ShadowToast;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@@ -54,42 +50,32 @@ public class ZenModeScheduleRuleSettingsTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private Intent mIntent;
|
private Intent mIntent;
|
||||||
|
|
||||||
@Mock
|
private ZenModeScheduleRuleSettings mFragment;
|
||||||
private NotificationManager mNotificationManager;
|
|
||||||
|
|
||||||
private TestFragment mFragment;
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
|
|
||||||
ShadowApplication shadowApplication = ShadowApplication.getInstance();
|
mContext = ApplicationProvider.getApplicationContext();
|
||||||
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
|
|
||||||
mContext = application;
|
|
||||||
|
|
||||||
mFragment = spy(new TestFragment());
|
Resources res = mContext.getResources();
|
||||||
mFragment.onAttach(application);
|
|
||||||
|
|
||||||
doReturn(mActivity).when(mFragment).getActivity();
|
|
||||||
|
|
||||||
Resources res = application.getResources();
|
|
||||||
|
|
||||||
doReturn(res).when(mFragment).getResources();
|
|
||||||
when(mActivity.getTheme()).thenReturn(res.newTheme());
|
when(mActivity.getTheme()).thenReturn(res.newTheme());
|
||||||
when(mActivity.getIntent()).thenReturn(mIntent);
|
when(mActivity.getIntent()).thenReturn(mIntent);
|
||||||
when(mActivity.getResources()).thenReturn(res);
|
when(mActivity.getResources()).thenReturn(res);
|
||||||
when(mActivity.getMainLooper()).thenReturn(mock(Looper.class));
|
when(mActivity.getMainLooper()).thenReturn(mock(Looper.class));
|
||||||
|
|
||||||
|
mFragment = spy(new ZenModeScheduleRuleSettings());
|
||||||
|
when(mFragment.getActivity()).thenReturn(mActivity);
|
||||||
when(mFragment.getContext()).thenReturn(mContext);
|
when(mFragment.getContext()).thenReturn(mContext);
|
||||||
|
when(mFragment.getResources()).thenReturn(res);
|
||||||
|
mFragment.onAttach(mContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Ignore
|
public void onAttach_noRuleId_shouldToastAndFinishAndNoCrash() {
|
||||||
public void onCreate_noRuleId_shouldToastAndFinishAndNoCrash() {
|
|
||||||
final String expected = mContext.getString(R.string.zen_mode_rule_not_found_text);
|
final String expected = mContext.getString(R.string.zen_mode_rule_not_found_text);
|
||||||
|
|
||||||
mFragment.onCreate(null);
|
|
||||||
|
|
||||||
// verify the toast
|
// verify the toast
|
||||||
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(expected);
|
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(expected);
|
||||||
|
|
||||||
@@ -98,12 +84,4 @@ public class ZenModeScheduleRuleSettingsTest {
|
|||||||
|
|
||||||
//should not crash
|
//should not crash
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TestFragment extends ZenModeScheduleRuleSettings {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Object getSystemService(final String name) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user