summaryrefslogtreecommitdiff
path: root/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
diff options
context:
space:
mode:
authorBrandon Maxwell <maxwelb@google.com>2015-11-11 16:36:16 -0800
committerBrandon Maxwell <maxwelb@google.com>2015-11-11 18:17:01 -0800
commit7d0a017b568ac0ca4133206872b503d4965e796e (patch)
tree17ca507ab56154de45e1897fbce5b09613fd539b /tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
parent474954932457a94a0bed8e4d48ab01c9b006dff4 (diff)
Blocking number suppresses voicemails in the same minute
~ Modified FilteredNumbersUtil to check if a voicemail needs to be blocked by checking if the voicemail date matches the block date to the minute, rather than millisecond ~ Modified FilteredNumbersUtil#shouldBlockVoicemail to improve readability + Added tests to verify FilteredNumbersUtil#shouldBlockVoicemail Bug: 25346075 Change-Id: I9851a574f0d13b7f09c99438810454770c88aa8b
Diffstat (limited to 'tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java')
-rw-r--r--tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java92
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java b/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
new file mode 100644
index 000000000..180295cba
--- /dev/null
+++ b/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2015 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 com.android.dialer.filterednumber;
+
+import android.test.AndroidTestCase;
+
+import com.android.contacts.common.test.mocks.ContactsMockContext;
+import com.android.contacts.common.test.mocks.MockContentProvider.Query;
+import com.android.dialer.database.FilteredNumberContract;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumber;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
+
+public class FilteredNumbersUtilTest extends AndroidTestCase {
+
+ private static final String COUNTRY_ISO = "US";
+
+ // Wed Nov 11 2015 15:00:00
+ private static final long EARLIER_TIME = 1447282800000l;
+
+ // Wed Nov 11 2015 15:01:40
+ private static final long LATER_TIME = 1447282900000l;
+
+ private static final String[] FILTERED_NUMBER_PROJECTION = new String[] {
+ FilteredNumberColumns.CREATION_TIME };
+
+ private static final String NORMALIZED_NUMBER = "+16503903411";
+
+ private static final long NULL_CREATION_TIME = -1;
+
+ private ContactsMockContext mContext;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ mContext = new ContactsMockContext(getContext(), FilteredNumberContract.AUTHORITY);
+ }
+
+ public void testShouldBlockVoicemail_NotBlocked() {
+ setupShouldBlockVoicemailQuery(NULL_CREATION_TIME);
+ assertFalse(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, EARLIER_TIME));
+ }
+
+ public void testShouldBlockVoicemail_BlockedBeforeVoicemail() {
+ setupShouldBlockVoicemailQuery(EARLIER_TIME);
+ assertTrue(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, LATER_TIME));
+ }
+
+ public void testShouldBlockVoicemail_BlockedAfterVoicemail() {
+ setupShouldBlockVoicemailQuery(LATER_TIME);
+ assertFalse(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, EARLIER_TIME));
+ }
+
+ public void testShouldBlockVoicemail_BlockedSameTimeAsVoicemail() {
+ setupShouldBlockVoicemailQuery(EARLIER_TIME);
+ assertTrue(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, EARLIER_TIME));
+ }
+
+ public void testShouldBlockVoicemail_BlockedInSameMinuteAsVoicemail() {
+ setupShouldBlockVoicemailQuery(EARLIER_TIME);
+ assertTrue(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, EARLIER_TIME + 30000));
+ }
+
+ private void setupShouldBlockVoicemailQuery(long creationTimeMs) {
+ Query query = mContext.getContactsProvider().expectQuery(FilteredNumber.CONTENT_URI)
+ .withProjection(FILTERED_NUMBER_PROJECTION)
+ .withAnySelection()
+ .withAnySortOrder();
+ if (creationTimeMs == NULL_CREATION_TIME) {
+ query.returnEmptyCursor();
+ return;
+ }
+ query.returnRow(creationTimeMs);
+ }
+}