I have never tried what you are attempting so at this point, I am not much
help. Have you tried posting on android platforms dev list ?

jerome
On Tue Jan 06 2015 at 9:50:50 PM Alex Humesky <ahume...@gmail.com> wrote:

> Yeah I see that the test apk has the permission, so it's very strange that
> accountManager.*addAccountExplicitly *would fail with* 
> "*java.lang.SecurityException:
> caller uid 10056 lacks any of android.permission.AUTHENTICATE_ACCOUNTS",
> even with using getInstrumentation().getContext() (as opposed to
> getTargetContext()). I'm not sure at this point if this is a built tool
> issue or if it's a test framework issue, do you have any suggestions?
>
>
> On Tuesday, January 6, 2015 12:42:15 PM UTC-5, Jerome Dochez wrote:
>
>> building the attached test, I can see the permission is correctly added
>> to the resulting test apk.
>>
>> jedo-macbookpro2:androidManifestInTest.tst jedo$
>> ~/oss/adt/sdk/build-tools/21.1.1/aapt l -a ./build/outputs/apk/
>> androidManifestInTest.tst-debug-androidTest-unaligned.apk
>>
>> AndroidManifest.xml
>>
>> resources.arsc
>>
>> classes.dex
>>
>> META-INF/MANIFEST.MF
>>
>> META-INF/CERT.SF
>>
>> META-INF/CERT.RSA
>>
>>
>> Resource table:
>>
>> Package Groups (1)
>>
>> Package Group 0 id=0x7f packageCount=1 name=com.android.tests.basic.test
>>
>>   Package 0 id=0x7f name=com.android.tests.basic.test
>>
>>     type 1 configCount=1 entryCount=1
>>
>>       spec resource 0x7f020000 com.android.tests.basic.test:string/app_name:
>> flags=0x00000000
>>
>>       config (default):
>>
>>         resource 0x7f020000 com.android.tests.basic.test:string/app_name:
>> t=0x03 d=0x00000000 (s=0x0008 r=0x00)
>>
>>
>> Android manifest:
>>
>> N: android=http://schemas.android.com/apk/res/android
>>
>>   E: manifest (line=2)
>>
>>     A: package="com.android.tests.basic.test" (Raw:
>> "com.android.tests.basic.test")
>>
>>     E: uses-sdk (line=5)
>>
>>       A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
>>
>>       A: android:targetSdkVersion(0x01010270)=(type 0x10)0x10
>>
>>     E: instrumentation (line=9)
>>
>>       A: android:label(0x01010001)="Tests for com.android.tests.basic"
>> (Raw: "Tests for com.android.tests.basic")
>>
>>       A: android:name(0x01010003)="android.test.InstrumentationTestRunner"
>> (Raw: "android.test.InstrumentationTestRunner")
>>
>>       A: android:targetPackage(0x01010021)="com.android.tests.basic"
>> (Raw: "com.android.tests.basic")
>>
>>       A: android:handleProfiling(0x01010022)=(type 0x12)0x0
>>
>>       A: android:functionalTest(0x01010023)=(type 0x12)0x0
>>
>>       E: meta-data (line=15)
>>
>>         A: android:name(0x01010003)="listener" (Raw: "listener")
>>
>>         A: android:value(0x01010024)="android.support.test.internal.
>> runner.listener.ManifestListener" (Raw: "android.support.test.
>> internal.runner.listener.ManifestListener")
>>
>>     E: uses-permission (line=20)
>>
>>       A: android:name(0x01010003)="android.permission.AUTHENTICATE_ACCOUNTS"
>> (Raw: "android.permission.AUTHENTICATE_ACCOUNTS")
>>
>>     E: permission-group (line=22)
>>
>>       A: android:label(0x01010001)=@0x7f020000
>>
>>       A: android:name(0x01010003)="foo.permission-group.COST_MONEY"
>> (Raw: "foo.permission-group.COST_MONEY")
>>
>>       A: android:description(0x01010020)=@0x7f020000
>>
>>     E: permission (line=27)
>>
>>       A: android:label(0x01010001)=@0x7f020000
>>
>>       A: android:name(0x01010003)="foo.permission.RECEIVED_SMS" (Raw:
>> "foo.permission.RECEIVED_SMS")
>>
>>       A: 
>> android:permissionGroup(0x0101000a)="foo.permission-group.COST_MONEY"
>> (Raw: "foo.permission-group.COST_MONEY")
>>
>>       A: android:description(0x01010020)=@0x7f020000
>>
>>     E: application (line=33)
>>
>>       A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
>>
>>       E: uses-library (line=34)
>>
>>         A: android:name(0x01010003)="android.test.runner" (Raw:
>> "android.test.runner")
>>
>> On Tue Jan 06 2015 at 9:33:19 AM Jerome Dochez <je...@google.com> wrote:
>>
> ok the first thing to do is to check the resulting test apk.
>>>
>>> can you do a aapt l -a <path_to_test_apk> and check if the permission is
>>> there or not.
>>>
>> On Mon Jan 05 2015 at 7:32:17 PM Alex Humesky <ahum...@gmail.com> wrote:
>>>
>> Interestingly, the following also fails, where getTargetContext() is
>>>> changed to getContext():
>>>>
>>>>     Context testContext = getInstrumentation().*getContext*();
>>>>     PackageManager pm = testContext.getPackageManager();
>>>>     int r = pm.checkPermission(
>>>>         Manifest.permission.AUTHENTICATE_ACCOUNTS,
>>>>         testContext.getPackageName());
>>>>     assertEquals(PackageManager.PERMISSION_GRANTED, r);
>>>>
>>>>     // Add a fake account
>>>>     AccountManager accountManager = AccountManager.get(testContext);
>>>>
>>>     Account account = new Account("te...@test.com", "com.test");
>>>>
>>>     boolean addedAccount = accountManager.*addAccountExplicitly*(account,
>>>> "password", new Bundle());
>>>>
>>>> What's weird is that the assert passes, yet addAccountExplicity still
>>>> fails with
>>>>
>>>> java.lang.SecurityException: caller uid 10056 lacks any of
>>>> android.permission.AUTHENTICATE_ACCOUNTS
>>>>
>>>
>>>>
>>>> On Monday, January 5, 2015 10:05:22 PM UTC-5, Alex Humesky wrote:
>>>>>
>>>>> Correct, when I run the test (either through Android Studio or
>>>>> connectedAndroidTest task), the app doesn't seem to have the permission,
>>>>> and so trying to use the account manager fails. I've attached a project
>>>>> based on the androidManifestInTest sample found at
>>>>> http://tools.android.com/tech-docs/new-build-system
>>>>>
>>>>> Thanks again!
>>>>>
>>>>>
>>>>> On Monday, January 5, 2015 2:29:24 PM UTC-5, Jerome Dochez wrote:
>>>>>>
>>>>>> yes it is supposed to work. can you describe what you observe not
>>>>>> working, the permission is not added to the test app ?
>>>>>>
>>>>>> On Mon Jan 05 2015 at 11:12:36 AM Alex Humesky <ahum...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hello adt-dev,
>>>>>>> I'm trying to write an integration test for a user registration
>>>>>>> activity, and so as part of the test's set up, I want to create some 
>>>>>>> test
>>>>>>> accounts on the emulator. To do this requires the permission
>>>>>>> android.permission.AUTHENTICATE_ACCOUNTS.
>>>>>>>
>>>>>>> According to the Android Gradle Plugin release notes for
>>>>>>> version 0.13.0, I should be able to supply a manifest for the test app 
>>>>>>> at
>>>>>>> src/androidTest/AndroidManifest.xml, but adding the permission
>>>>>>> there doesn't seem to work. I know the file is being read since adding a
>>>>>>> syntax error causes the build to fail.
>>>>>>>
>>>>>>> I noticed that renaming src/androidTest to src/debug makes the test
>>>>>>> work if I launch the test from Android Studio, but then the tests don't 
>>>>>>> get
>>>>>>> picked up with the connectedAndroidTest task.
>>>>>>>
>>>>>>> I'm using Android Studio version 1.0.2 and Android Gradle Plugin
>>>>>>> 1.0.0 and a regular project layout.
>>>>>>>
>>>>>>> Is merging uses-permission from androidTest/AndroidManifest.xml
>>>>>>> supposed to work?
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>>
>>>>>>> ps seems to be the same problem as described here:
>>>>>>> http://stackoverflow.com/questions/26244998/androidmanifest-in-
>>>>>>> androidtest-directory-being-ignored
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "adt-dev" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to adt-dev+u...@googlegroups.com.
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "adt-dev" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to adt-dev+u...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>  --
> You received this message because you are subscribed to the Google Groups
> "adt-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to adt-dev+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adt-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to