[CTS]PhoneNumberUtilsTest-- testGetMethods&&ManagedProfileTest-- testManagedContacts
23091 단어 CTS
오류 정 보 는 다음 과 같 습 니 다.
cts-tf > run cts -c android.telephony.cts.PhoneNumberUtilsTest -m testGetMethods --skip-preconditions
android.telephony.cts.PhoneNumberUtilsTest#testGetMethods FAIL
junit.framework.AssertionFailedError: Expected: but was: +16175551212 // , null
at junit.framework.Assert.fail(Assert.java:50)
at junit.framework.Assert.assertTrue(Assert.java:20)
at junit.framework.Assert.assertNull(Assert.java:237)
at junit.framework.Assert.assertNull(Assert.java:230)
at android.telephony.cts.PhoneNumberUtilsTest.testGetMethods(PhoneNumberUtilsTest.java:138)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:115)
at android.support.test.internal.runner.junit3.AndroidTestResult.runProtected(AndroidTestResult.java:77)
at junit.framework.TestResult.run(TestResult.java:118)
at android.support.test.internal.runner.junit3.AndroidTestResult.run(AndroidTestResult.java:55)
at junit.framework.TestCase.run(TestCase.java:124)
at android.support.test.internal.runner.junit3.NonLeakyTestSuite$NonLeakyTest.run(NonLeakyTestSuite.java:63)
at android.support.test.internal.runner.junit3.AndroidTestSuite$1.run(AndroidTestSuite.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
분석 절차
log 정 보 를 통 해 우 리 는 Phone NumberUtils Test. java: 138 줄 코드 를 다음 과 같이 볼 수 있 습 니 다.
public void testGetMethods() throws RemoteException {
// Test getStrippedReversed
assertNull(PhoneNumberUtils.getStrippedReversed(null));
assertEquals("14145550071", PhoneNumberUtils.getStrippedReversed("1-700-555-4141"));
assertEquals("14145550071", PhoneNumberUtils.getStrippedReversed("1-700-555-4141,1234"));
assertEquals("14145550071", PhoneNumberUtils.getStrippedReversed("1-700-555-4141;1234"));
assertEquals("NN145550071", PhoneNumberUtils.getStrippedReversed("1-700-555-41NN"));
assertEquals("", PhoneNumberUtils.getStrippedReversed(""));
assertEquals("#130#*+", PhoneNumberUtils.getStrippedReversed("+*#031#"));
// Test getFormatTypeForLocale
int formatType = PhoneNumberUtils.getFormatTypeForLocale(Locale.CHINA);
assertEquals(PhoneNumberUtils.FORMAT_UNKNOWN, formatType);
formatType = PhoneNumberUtils.getFormatTypeForLocale(Locale.US);
assertEquals(PhoneNumberUtils.FORMAT_NANP, formatType);
formatType = PhoneNumberUtils.getFormatTypeForLocale(Locale.JAPAN);
assertEquals(PhoneNumberUtils.FORMAT_JAPAN, formatType);
// Test getNumberFromIntent, query nothing, return null.
Intent intent = new Intent();
intent.setData(Contacts.People.CONTENT_URI);//CONTENT_URI = Uri.parse("content://contacts/people")
Context context = getContext();
assertNull(PhoneNumberUtils.getNumberFromIntent(intent, context));//
intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:+18005555555"));
assertEquals("+18005555555", PhoneNumberUtils.getNumberFromIntent(intent, getContext()));
ContentResolver cr = getContext().getContentResolver();
Uri personRecord = null;
Uri phoneRecord = null;
try {
// insert a contact with phone number
ContentValues values = new ContentValues();
values.put(People.NAME, "CTS test contact");
personRecord = cr.insert(People.CONTENT_URI, values);
Uri phoneUri = Uri.withAppendedPath(personRecord, People.Phones.CONTENT_DIRECTORY);
values.clear();
values.put(People.Phones.TYPE, People.Phones.TYPE_HOME);
values.put(People.Phones.NUMBER, "+18005552871");
phoneRecord = cr.insert(phoneUri, values);
intent = new Intent(Intent.ACTION_DIAL, phoneRecord);
assertEquals("+18005552871",
PhoneNumberUtils.getNumberFromIntent(intent, getContext()));
} finally {
if (personRecord != null) {
cr.delete(personRecord, null, null);
}
if (phoneRecord != null) {
cr.delete(phoneRecord, null, null);
}
}
}
assert Null 방법 을 보면 알 수 있 습 니 다. null 대상 에 들 어 가 려 고 예상 되 지만 실제로 CTS 를 달 릴 때 비 null 대상 이 들 어 왔 기 때문에 Phone NumberUtils. getNumberFromIntent (intent, context) 는 비 null 대상 입 니 다. 아래 코드 를 통 해 알 수 있 습 니 다.
/**
* The content:// style URL for this table
* @deprecated see {@link android.provider.ContactsContract}
*/
@Deprecated
public static final Uri CONTENT_URI =
Uri.parse("content://contacts/people");
"ContactsProvider2" //
android:authorities="contacts;com.android.contacts"
android:label="@string/provider_label"
android:multiprocess="false"
android:exported="true"
android:grantUriPermissions="true"
android:readPermission="android.permission.READ_CONTACTS"
android:writePermission="android.permission.WRITE_CONTACTS">
Phone NumberUtils. getNumberFromIntent (intent, context) 의 데 이 터 는 시스템 연락처 데이터베이스 에서 나 오고 최종 적 으로 Contacts Provider 2. query Local 방법 으로 데 이 터 를 조회 합 니 다. 이것 은 좀 이상 합 니 다. CTS 를 뛸 때 contacts 응용 프로그램 에 데이터 가 없어 야 합 니 다. 핸드폰 에 있 는 연락 처 를 보면 알 수 있 습 니 다.안에 연락 처 를 저장 하고 번 호 는 + 16175551212 이 며 계 정 유형 은 SIM 입 니 다. 이 연락 처 는 어느 SIM 에서 데이터 베 이 스 를 가 져 왔 는 지 밝 혀 졌 습 니 다. SIM 카드 가 휴대 전화 에 삽입 되면 연락처 데 이 터 를 연락처 로 컬 데이터 베이스 에 저장 하기 때 문 입 니 다.
해결 방법
우 리 는 자동 동기 화 기능 을 닫 기만 하면 이 문 제 를 해결 할 수 있 습 니 다. 다음 과 같이 수정 할 수 있 습 니 다.
、android/vendor/qcom/proprietary/qrdplus/Extension/config/default.prop
// true false
//persist.env.contacts.autosync=true
persist.env.contacts.autosync=false
、android/vendor/qcom/proprietary/qrdplus/Extension/res-overlay/vendor/qcom/proprietary/telephony-apps/SimContacts/res/values/config.xml
// true false
<resources>
//<bool name="sim_contacts_auto_sync">truebool>
<bool name="sim_contacts_auto_sync">falsebool>
resources>
두 번 째 문제 의 오류 정 보 는 다음 과 같 습 니 다. contacts 가 자동 으로 동기 화 될 때 만들어 진 phone 계 정과 관련 이 있 습 니 다.
04-21 15:52:47 I/bc17b500: com.android.cts.devicepolicy.ManagedProfileTest#testManagedContacts FAIL
junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:48)
at junit.framework.Assert.assertTrue(Assert.java:20)
at junit.framework.Assert.assertTrue(Assert.java:27)
at com.android.cts.devicepolicy.ManagedProfileTest.testManagedContacts(ManagedProfileTest.java:444)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at com.android.tradefed.testtype.DeviceTestResult$1.protect(DeviceTestResult.java:81)
at com.android.tradefed.testtype.DeviceTestResult.runProtected(DeviceTestResult.java:56)
at com.android.tradefed.testtype.DeviceTestResult.run(DeviceTestResult.java:85)
at junit.framework.TestCase.run(TestCase.java:124)
at com.android.tradefed.testtype.DeviceTestCase.run(DeviceTestCase.java:117)
at com.android.cts.tradefed.testtype.JarHostTest$TestRunnable.run(JarHostTest.java:248)
at com.android.tradefed.util.RunUtil$RunnableNotifier.run(RunUtil.java:378)
04-21 15:51:53 I/BaseDevicePolicyTest: Test com.android.cts.managedprofile.ContactsTest#testManagedProfilePhoneLookup_canNotAccessPrimaryContact: PASSED
04-21 15:51:54 I/BaseDevicePolicyTest: Test com.android.cts.managedprofile.ContactsTest#testManagedProfileEmailLookup_canNotAccessPrimaryContact: PASSED
04-21 15:51:56 I/BaseDevicePolicyTest: Test com.android.cts.managedprofile.ContactsTest#testManagedProfileEnterprisePhoneLookup_canAccessEnterpriseContact: FAILURE
04-21 15:51:56 W/BaseDevicePolicyTest: java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.android.cts.managedprofile.ContactsTest$ContactInfo.displayName' on a null object reference
at com.android.cts.managedprofile.ContactsTest.testManagedProfileEnterprisePhoneLookup_canAccessEnterpriseContact(ContactsTest.java:311)
at java.lang.reflect.Method.invoke(Native Method)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[CTS]PhoneNumberUtilsTest-- testGetMethods&&ManagedProfileTest-- testManagedContactsManaged Profile Test – testManaged Contacts 이 두 CTS 오 류 는 모두 시스템 이 contacts 동기 화 를 시 작 했 기 때문에 발생 한 것 입 니 다. 첫 번 째 문 제 를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.