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 <j...@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 <ahume...@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("t...@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+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.