summaryrefslogtreecommitdiff
path: root/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/com/android/dialer/calllog/CallLogAdapterTest.java')
-rw-r--r--tests/src/com/android/dialer/calllog/CallLogAdapterTest.java62
1 files changed, 52 insertions, 10 deletions
diff --git a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
index a5a61ad46..13ca0fd76 100644
--- a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
@@ -64,6 +64,7 @@ public class CallLogAdapterTest extends AndroidTestCase {
private static final String TEST_NUMBER_1 = "12345678";
private static final String TEST_NUMBER_2 = "87654321";
private static final String TEST_NUMBER_3 = "18273645";
+ private static final String TEST_POST_DIAL_DIGITS = ";12345";
private static final String TEST_FORMATTED_NUMBER = "1 212-555-1000";
// The object under test.
@@ -233,6 +234,16 @@ public class CallLogAdapterTest extends AndroidTestCase {
}
@MediumTest
+ public void testBindView_CallButtonWithPostDialDigits() {
+ createCallLogEntry(TEST_NUMBER, TEST_POST_DIAL_DIGITS, NO_VALUE_SET, NO_VALUE_SET);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertHasCallActionToGivenNumber(mViewHolder, TEST_NUMBER + TEST_POST_DIAL_DIGITS);
+ }
+
+ @MediumTest
public void testBindView_VoicemailUri() {
createVoicemailCallLogEntry();
@@ -245,6 +256,28 @@ public class CallLogAdapterTest extends AndroidTestCase {
}
@MediumTest
+ public void testBindView_NumberWithPostDialDigits() {
+ createCallLogEntry(TEST_NUMBER, TEST_POST_DIAL_DIGITS, NO_VALUE_SET, NO_VALUE_SET);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertNameIs(mViewHolder, TEST_NUMBER + TEST_POST_DIAL_DIGITS);
+ }
+
+ @MediumTest
+ public void testBindView_ContactWithPrefix() {
+ createCallLogEntry(TEST_NUMBER, TEST_POST_DIAL_DIGITS, NO_VALUE_SET, NO_VALUE_SET);
+ mAdapter.injectContactInfoForTest(TEST_NUMBER + TEST_POST_DIAL_DIGITS, TEST_COUNTRY_ISO,
+ createContactInfo());
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertNameIs(mViewHolder, TEST_CACHED_NAME);
+ }
+
+ @MediumTest
public void testPresentationAfterRebindingViewHolders() {
final int increment = 10;
final int size = increment * 4;
@@ -513,12 +546,13 @@ public class CallLogAdapterTest extends AndroidTestCase {
}
private void createCallLogEntry(String testNumber) {
- createCallLogEntry(testNumber, NO_VALUE_SET, NO_VALUE_SET);
+ createCallLogEntry(testNumber, EMPTY_STRING, NO_VALUE_SET, NO_VALUE_SET);
}
private void createPrivateCallLogEntry() {
createCallLogEntry(
EMPTY_STRING,
+ EMPTY_STRING,
Calls.PRESENTATION_RESTRICTED,
AppCompatConstants.CALLS_INCOMING_TYPE);
}
@@ -526,16 +560,17 @@ public class CallLogAdapterTest extends AndroidTestCase {
private void createUnknownCallLogEntry() {
createCallLogEntry(
EMPTY_STRING,
+ EMPTY_STRING,
Calls.PRESENTATION_UNKNOWN,
AppCompatConstants.CALLS_INCOMING_TYPE);
}
private void createVoicemailCallLogEntry() {
- createCallLogEntry(TEST_NUMBER, NO_VALUE_SET, Calls.VOICEMAIL_TYPE);
+ createCallLogEntry(TEST_NUMBER, EMPTY_STRING, NO_VALUE_SET, Calls.VOICEMAIL_TYPE);
}
- private void createCallLogEntry(String number, int presentation, int type) {
- Object[] values = getValues(number, presentation, type);
+ private void createCallLogEntry(String number, String postDialDigits, int presentation, int type) {
+ Object[] values = getValues(number, postDialDigits, presentation, type);
mCursor.addRow(values);
}
@@ -583,7 +618,7 @@ public class CallLogAdapterTest extends AndroidTestCase {
String cachedNumberLabel,
String cachedFormattedNumber,
boolean inject) {
- Object[] values = getValues(number, NO_VALUE_SET, type);
+ Object[] values = getValues(number, EMPTY_STRING, NO_VALUE_SET, type);
values[CallLogQuery.CACHED_NAME] = cachedName;
values[CallLogQuery.CACHED_NUMBER_TYPE] = cachedNumberType;
values[CallLogQuery.CACHED_NUMBER_LABEL] = cachedNumberLabel;
@@ -600,12 +635,14 @@ public class CallLogAdapterTest extends AndroidTestCase {
/**
* @param number The phone number.
+ * @param postDialDigits The post dial digits dialed (if any)
* @param presentation Number representing display rules for "allowed",
* "payphone", "restricted", or "unknown".
- * @param date In millisec since epoch. Use NOW to use the current time.
+ * @param type The type of the call (outgoing/ingoing)
*/
private Object[] getValues(
String number,
+ String postDialDigits,
int presentation,
int type) {
Object[] values = CallLogQueryTestUtils.createTestValues();
@@ -618,6 +655,9 @@ public class CallLogAdapterTest extends AndroidTestCase {
if (!TextUtils.isEmpty(number)) {
values[CallLogQuery.NUMBER] = number;
}
+ if (!TextUtils.isEmpty(postDialDigits)) {
+ values[CallLogQuery.POST_DIAL_DIGITS] = postDialDigits;
+ }
if (presentation != NO_VALUE_SET) {
values[CallLogQuery.NUMBER_PRESENTATION] = presentation;
}
@@ -676,14 +716,16 @@ public class CallLogAdapterTest extends AndroidTestCase {
}
private void assertHasCallAction(CallLogListItemViewHolder viewHolder) {
- // The primaryActionView tag is set when the ViewHolder is binded. If it is possible
- // to place a call to the phone number, a call intent will have been created which
- // starts a phone call to the entry's number.
+ assertHasCallActionToGivenNumber(viewHolder, TEST_NUMBER);
+ }
+
+ private void assertHasCallActionToGivenNumber(CallLogListItemViewHolder viewHolder,
+ String number) {
IntentProvider intentProvider =
(IntentProvider) viewHolder.primaryActionButtonView.getTag();
Intent intent = intentProvider.getIntent(getContext());
assertEquals(TestConstants.CALL_INTENT_ACTION, intent.getAction());
- assertEquals(Uri.parse("tel:" + TEST_NUMBER), intent.getData());
+ assertEquals(Uri.parse("tel:" + Uri.encode(number)), intent.getData());
}
/** Returns the label associated with a given phone type. */