<?xml version="1.0" encoding="utf-8"?>
<!--
 * Copyright (C) 2009 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.
 -->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.android.providers.downloads.permission.tests">

    <application>
        <uses-library android:name="android.test.runner" />
    </application>

    <!--
    The tests in this package are intended to verify that protected APIs or data
    cannot be accessed without the necessary permissions. Thus this manifest should not
    include any uses-permissions tags
    -->

    <!--
    The test declared in this instrumentation can be run via this command
    "adb shell am instrument -w com.android.providers.downloads.permission.tests/android.test.InstrumentationTestRunner"
    -->
    <instrumentation android:name="android.test.InstrumentationTestRunner"
                     android:targetPackage="com.android.providers.downloads.permission.tests"
                     android:label="Tests for Download provider permissions"/>

</manifest>
