1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.server.wifi; 18 19import android.content.BroadcastReceiver; 20import android.content.Context; 21import android.content.Intent; 22import android.net.ConnectivityManager; 23import android.net.NetworkInfo; 24import android.net.wifi.WifiManager; 25 26import java.util.ArrayList; 27 28/** 29 * Utils for wifi tests. 30 */ 31public class TestUtil { 32 /** 33 * Send {@link WifiManager#NETWORK_STATE_CHANGED_ACTION} broadcast. 34 */ 35 public static void sendNetworkStateChanged(BroadcastReceiver broadcastReceiver, 36 Context context, NetworkInfo.DetailedState detailedState) { 37 Intent intent = new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION); 38 NetworkInfo networkInfo = new NetworkInfo(0, 0, "", ""); 39 networkInfo.setDetailedState(detailedState, "", ""); 40 intent.putExtra(WifiManager.EXTRA_NETWORK_INFO, networkInfo); 41 broadcastReceiver.onReceive(context, intent); 42 } 43 44 /** 45 * Send {@link WifiManager#SCAN_RESULTS_AVAILABLE_ACTION} broadcast. 46 */ 47 public static void sendScanResultsAvailable(BroadcastReceiver broadcastReceiver, 48 Context context) { 49 Intent intent = new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION); 50 broadcastReceiver.onReceive(context, intent); 51 } 52 53 /** 54 * Send {@link WifiManager#WIFI_SCAN_AVAILABLE} broadcast. 55 */ 56 public static void sendWifiScanAvailable(BroadcastReceiver broadcastReceiver, 57 Context context, int scanAvailable) { 58 Intent intent = new Intent(WifiManager.WIFI_SCAN_AVAILABLE); 59 intent.putExtra(WifiManager.EXTRA_SCAN_AVAILABLE, scanAvailable); 60 broadcastReceiver.onReceive(context, intent); 61 } 62 63 /** 64 * Send {@link WifiManager#WIFI_STATE_CHANGED} broadcast. 65 */ 66 public static void sendWifiStateChanged(BroadcastReceiver broadcastReceiver, 67 Context context, int wifiState) { 68 Intent intent = new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION); 69 intent.putExtra(WifiManager.EXTRA_WIFI_STATE, wifiState); 70 broadcastReceiver.onReceive(context, intent); 71 } 72 73 /** 74 * Send {@link WifiManager#WIFI_AP_STATE_CHANGED} broadcast. 75 */ 76 public static void sendWifiApStateChanged(BroadcastReceiver broadcastReceiver, 77 Context context, int apState, int previousState, int error, String ifaceName, 78 int mode) { 79 Intent intent = new Intent(WifiManager.WIFI_AP_STATE_CHANGED_ACTION); 80 intent.putExtra(WifiManager.EXTRA_WIFI_AP_STATE, apState); 81 intent.putExtra(WifiManager.EXTRA_PREVIOUS_WIFI_AP_STATE, previousState); 82 if (apState == WifiManager.WIFI_AP_STATE_FAILED) { 83 // only set reason number when softAP start failed 84 intent.putExtra(WifiManager.EXTRA_WIFI_AP_FAILURE_REASON, error); 85 } 86 intent.putExtra(WifiManager.EXTRA_WIFI_AP_INTERFACE_NAME, ifaceName); 87 intent.putExtra(WifiManager.EXTRA_WIFI_AP_MODE, mode); 88 89 broadcastReceiver.onReceive(context, intent); 90 } 91 92 /** 93 * Send {@link ConnectivityManager#ACTION_TETHER_STATE_CHANGED} broadcast. 94 */ 95 public static void sendTetherStateChanged(BroadcastReceiver broadcastReceiver, 96 Context context, ArrayList<String> available, ArrayList<String> active) { 97 Intent intent = new Intent(ConnectivityManager.ACTION_TETHER_STATE_CHANGED); 98 intent.putExtra(ConnectivityManager.EXTRA_AVAILABLE_TETHER, available); 99 intent.putExtra(ConnectivityManager.EXTRA_ACTIVE_TETHER, active); 100 broadcastReceiver.onReceive(context, intent); 101 } 102} 103