blob: c1ddd0da0da24c0e1b61d68c7d3f13f396368c43 [file] [log] [blame]
/*
* Copyright (C) 2016 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 android.app.cts;
import android.app.AutomaticZenRule;
import android.app.NotificationManager;
import android.content.ComponentName;
import android.net.Uri;
import android.os.Parcel;
import android.service.notification.ZenPolicy;
import android.test.AndroidTestCase;
public class AutomaticZenRuleTest extends AndroidTestCase {
private final String mName = "name";
private final ComponentName mOwner = new ComponentName("pkg", "cls");
private final ComponentName mConfigActivity = new ComponentName("pkg", "act");
private final ZenPolicy mPolicy = new ZenPolicy.Builder().allowAlarms(true).build();
private final Uri mConditionId = new Uri.Builder().scheme("scheme")
.authority("authority")
.appendPath("path")
.appendPath("test")
.build();
private final int mInterruptionFilter = NotificationManager.INTERRUPTION_FILTER_NONE;
private final boolean mEnabled = true;
@Override
protected void setUp() throws Exception {
super.setUp();
}
public void testDescribeContents() {
final int expected = 0;
AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConditionId,
mInterruptionFilter, mEnabled);
assertEquals(expected, rule.describeContents());
}
public void testWriteToParcel() {
AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigActivity, mConditionId,
mPolicy, mInterruptionFilter, mEnabled);
Parcel parcel = Parcel.obtain();
rule.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
AutomaticZenRule rule1 = new AutomaticZenRule(parcel);
assertEquals(mName, rule1.getName());
assertEquals(mOwner, rule1.getOwner());
assertEquals(mConditionId, rule1.getConditionId());
assertEquals(mInterruptionFilter, rule1.getInterruptionFilter());
assertEquals(mEnabled, rule1.isEnabled());
assertEquals(mPolicy, rule1.getZenPolicy());
assertEquals(mConfigActivity, rule1.getConfigurationActivity());
rule.setName(null);
parcel = Parcel.obtain();
rule.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
rule1 = new AutomaticZenRule(parcel);
assertNull(rule1.getName());
}
public void testSetConditionId() {
final Uri newConditionId = new Uri.Builder().scheme("scheme")
.authority("authority2")
.appendPath("3path")
.appendPath("test4")
.build();
AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigActivity, mConditionId,
mPolicy, mInterruptionFilter, mEnabled);
rule.setConditionId(newConditionId);
assertEquals(newConditionId, rule.getConditionId());
}
public void testSetEnabled() {
AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigActivity, mConditionId,
mPolicy, mInterruptionFilter, mEnabled);
rule.setEnabled(!mEnabled);
assertEquals(!mEnabled, rule.isEnabled());
}
public void testSetInterruptionFilter() {
AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigActivity, mConditionId,
mPolicy, mInterruptionFilter, mEnabled);
for (int i = NotificationManager.INTERRUPTION_FILTER_UNKNOWN;
i <= NotificationManager.INTERRUPTION_FILTER_ALARMS; i++) {
rule.setInterruptionFilter(i);
assertEquals(i, rule.getInterruptionFilter());
}
}
public void testSetName() {
AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigActivity, mConditionId,
mPolicy, mInterruptionFilter, mEnabled);
rule.setName(mName + "new");
assertEquals(mName + "new", rule.getName());
}
public void testSetConfigurationActivity() {
ComponentName newConfigActivity = new ComponentName("pkg", "new!");
AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigActivity, mConditionId,
mPolicy, mInterruptionFilter, mEnabled);
rule.setConfigurationActivity(newConfigActivity);
assertEquals(newConfigActivity, rule.getConfigurationActivity());
}
public void testCreateRuleWithZenPolicy() {
ZenPolicy.Builder builder = new ZenPolicy.Builder();
ZenPolicy policy = builder.build();
builder.allowAlarms(true);
AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigActivity, mConditionId,
policy, mInterruptionFilter, mEnabled);
assertEquals(mInterruptionFilter, rule.getInterruptionFilter());
assertEquals(rule.getZenPolicy(), policy);
}
}