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

<!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.android.connectivitymanagertest">

    <!-- We add an application tag here just so that we can indicate that
         this package needs to link against the android.test library,
         which is needed when building test cases. -->
    <application>
        <uses-library android:name="android.test.runner" />
    </application>

    <!--
    This declares that this app uses the instrumentation test runner targeting
    the package of connectivitymanagertest. To run the tests use the command:
    "adb shell am instrument -e ssid <SSID> -w
      com.android.connectivitymanagertest/.ConnectivityManagerTestRunner",
      the access point <SSID> should be an open AP.
    -->
    <instrumentation android:name=".ConnectivityManagerTestRunner"
        android:targetPackage="com.android.connectivitymanagertest"
        android:label="Test runner for Connectivity Manager Tests"
    />

    <!--
     To run the unit tests use the command:
     "adb shell am instrument -w
     com.android.connectivitymanagertest/.ConnectivityManagerUnitTestRunner"
    -->
    <instrumentation android:name=".ConnectivityManagerUnitTestRunner"
        android:targetPackage="com.android.connectivitymanagertest"
        android.label="Test runner for unit tests"
    />

    <!-- run stress test suite:
      "adb shell am instrument -e stressnum <200> -w
      com.android.connectivitymanagertest/.ConnectivityManagerStressTestRunner"
    -->
    <instrumentation android:name=".ConnectivityManagerStressTestRunner"
        android:targetPackage="com.android.connectivitymanagertest"
        android:label="Test runner for Connectivity Manager Stress Tests"
    />

    <!-- run associate test:
      "adb shell am instrument -e ssid <ssid> -e password <password>
       -e ecurity-type [OPEN|WEP64|WEP128|WPA_TKIP|WPA2_AES] -e frequency-band [2.4|5.0|auto]
       -w com.android.connectivitymanagertest/.WifiAssociationTestRunner"
    -->
    <instrumentation android:name=".WifiAssociationTestRunner"
        android:targetPackage="com.android.connectivitymanagertest"
        android:label="Test runner for Wifi association test"
    />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
    <!-- This permission is added for API call setAirplaneMode() in ConnectivityManager -->
    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.DEVICE_POWER" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
    <uses-permission android:name="android.permission.INJECT_EVENTS" />
    <uses-permission android:name="android.permission.DEVICE_POWER" />

</manifest>
