Populate new fields in modes created via Settings
Type and trigger description on creation; trigger description on update. Bug: 317370174 Bug: 320997361 Test: atest ZenModeScheduleRuleSettingsTest ZenModeEventRuleSettingsTest Change-Id: Idb1edcc8829b54ec85494966eb391e52012a5348
This commit is contained in:
@@ -16,17 +16,26 @@
|
||||
|
||||
package com.android.settings.notification.zen;
|
||||
|
||||
import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.AutomaticZenRule;
|
||||
import android.app.Flags;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.net.Uri;
|
||||
import android.os.Looper;
|
||||
import android.platform.test.annotations.EnableFlags;
|
||||
import android.platform.test.flag.junit.SetFlagsRule;
|
||||
import android.service.notification.ZenModeConfig;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
@@ -34,6 +43,7 @@ import androidx.test.core.app.ApplicationProvider;
|
||||
import com.android.settings.R;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
@@ -51,11 +61,15 @@ import java.util.List;
|
||||
})
|
||||
public class ZenModeEventRuleSettingsTest {
|
||||
|
||||
@Mock
|
||||
private FragmentActivity mActivity;
|
||||
@Rule
|
||||
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
|
||||
|
||||
@Mock
|
||||
private FragmentActivity mActivity;
|
||||
@Mock
|
||||
private Intent mIntent;
|
||||
@Mock
|
||||
private ZenModeBackend mBackend;
|
||||
|
||||
private ZenModeEventRuleSettings mFragment;
|
||||
private Context mContext;
|
||||
@@ -92,6 +106,26 @@ public class ZenModeEventRuleSettingsTest {
|
||||
//should not crash
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI})
|
||||
public void updateEventRule_updatesConditionAndTriggerDescription() {
|
||||
mFragment.setBackend(mBackend);
|
||||
mFragment.mId = "id";
|
||||
mFragment.mRule = new AutomaticZenRule.Builder("name", Uri.parse("condition")).build();
|
||||
|
||||
ZenModeConfig.EventInfo eventInfo = new ZenModeConfig.EventInfo();
|
||||
eventInfo.calendarId = 1L;
|
||||
eventInfo.calName = "My events";
|
||||
mFragment.updateEventRule(eventInfo);
|
||||
|
||||
verify(mBackend).updateZenRule(eq("id"),
|
||||
eq(new AutomaticZenRule.Builder(
|
||||
"name",
|
||||
ZenModeConfig.toEventConditionId(eventInfo))
|
||||
.setTriggerDescription("My events")
|
||||
.build()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoDuplicateCalendars() {
|
||||
List<ZenModeEventRuleSettings.CalendarInfo> calendarsList = new ArrayList<>();
|
||||
|
@@ -16,17 +16,26 @@
|
||||
|
||||
package com.android.settings.notification.zen;
|
||||
|
||||
import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.AutomaticZenRule;
|
||||
import android.app.Flags;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.net.Uri;
|
||||
import android.os.Looper;
|
||||
import android.platform.test.annotations.EnableFlags;
|
||||
import android.platform.test.flag.junit.SetFlagsRule;
|
||||
import android.service.notification.ZenModeConfig;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
@@ -34,25 +43,33 @@ import androidx.test.core.app.ApplicationProvider;
|
||||
import com.android.settings.R;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowToast;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {
|
||||
com.android.settings.testutils.shadow.ShadowFragment.class,
|
||||
})
|
||||
public class ZenModeScheduleRuleSettingsTest {
|
||||
|
||||
@Mock
|
||||
private FragmentActivity mActivity;
|
||||
@Rule
|
||||
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
|
||||
|
||||
@Mock
|
||||
private FragmentActivity mActivity;
|
||||
@Mock
|
||||
private Intent mIntent;
|
||||
@Mock
|
||||
private ZenModeBackend mBackend;
|
||||
|
||||
private ZenModeScheduleRuleSettings mFragment;
|
||||
private Context mContext;
|
||||
@@ -88,4 +105,25 @@ public class ZenModeScheduleRuleSettingsTest {
|
||||
|
||||
//should not crash
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI})
|
||||
public void updateScheduleRule_updatesConditionAndTriggerDescription() {
|
||||
mFragment.setBackend(mBackend);
|
||||
mFragment.mId = "id";
|
||||
mFragment.mRule = new AutomaticZenRule.Builder("name", Uri.parse("condition")).build();
|
||||
|
||||
ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
|
||||
scheduleInfo.days = new int[] { Calendar.MONDAY };
|
||||
scheduleInfo.startHour = 1;
|
||||
scheduleInfo.endHour = 2;
|
||||
mFragment.updateScheduleRule(scheduleInfo);
|
||||
|
||||
ArgumentCaptor<AutomaticZenRule> updatedRuleCaptor = ArgumentCaptor.forClass(
|
||||
AutomaticZenRule.class);
|
||||
verify(mBackend).updateZenRule(eq("id"), updatedRuleCaptor.capture());
|
||||
assertThat(updatedRuleCaptor.getValue().getConditionId())
|
||||
.isEqualTo(ZenModeConfig.toScheduleConditionId(scheduleInfo));
|
||||
assertThat(updatedRuleCaptor.getValue().getTriggerDescription()).isNotEmpty();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user