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 package com.android.loganalysis.rule; 17 18 import com.android.loganalysis.item.BatteryStatsDetailedInfoItem; 19 import com.android.loganalysis.item.BugreportItem; 20 import com.android.loganalysis.item.DumpsysBatteryStatsItem; 21 import com.android.loganalysis.item.DumpsysItem; 22 import com.android.loganalysis.item.DumpsysWifiStatsItem; 23 24 import junit.framework.TestCase; 25 26 import org.json.JSONObject; 27 28 /** 29 */ 30 public class WifiStatsRuleTest extends TestCase { 31 32 BugreportItem mBugreport; 33 DumpsysItem mDumpsys; 34 DumpsysBatteryStatsItem mDumpsysBatteryStats; 35 BatteryStatsDetailedInfoItem mBatteryStatsDetailedInfo; 36 37 @Override 38 public void setUp() { 39 mBugreport = new BugreportItem(); 40 mDumpsys = new DumpsysItem(); 41 mDumpsysBatteryStats = new DumpsysBatteryStatsItem(); 42 mBatteryStatsDetailedInfo = new BatteryStatsDetailedInfoItem(); 43 44 mBatteryStatsDetailedInfo.setTimeOnBattery(302004); 45 mDumpsysBatteryStats.setDetailedBatteryStatsItem(mBatteryStatsDetailedInfo); 46 mDumpsys.setBatteryInfo(mDumpsysBatteryStats); 47 mBugreport.setDumpsys(mDumpsys); 48 } 49 50 /** 51 * Test wifistats analysis 52 */ 53 public void testWifiDisconnectAnalysis() throws Exception { 54 DumpsysWifiStatsItem wifiStats = new DumpsysWifiStatsItem(); 55 wifiStats.setNumWifiDisconnect(1); 56 wifiStats.setNumWifiScan(0); 57 wifiStats.setNumWifiAssociation(0); 58 59 mDumpsys.setWifiStats(wifiStats); 60 WifiStatsRule wifiStatsRule = new WifiStatsRule(mBugreport); 61 wifiStatsRule.applyRule(); 62 JSONObject analysis = wifiStatsRule.getAnalysis(); 63 assertNotNull(analysis); 64 assertTrue(analysis.has("WIFI_STATS")); 65 assertEquals(analysis.getString("WIFI_STATS"), 66 "No apps requested for frequent wifi scans. Wifi got disconnected 1 times. " 67 + "No frequent wifi associations were observed."); 68 } 69 70 public void testWifiScanAnalysis() throws Exception { 71 DumpsysWifiStatsItem wifiStats = new DumpsysWifiStatsItem(); 72 wifiStats.setNumWifiDisconnect(0); 73 wifiStats.setNumWifiScan(3); 74 wifiStats.setNumWifiAssociation(0); 75 76 mDumpsys.setWifiStats(wifiStats); 77 WifiStatsRule wifiStatsRule = new WifiStatsRule(mBugreport); 78 wifiStatsRule.applyRule(); 79 JSONObject analysis = wifiStatsRule.getAnalysis(); 80 assertNotNull(analysis); 81 assertTrue(analysis.has("WIFI_STATS")); 82 assertEquals(analysis.getString("WIFI_STATS"), 83 "Wifi scans happened every 100 seconds. No frequent wifi disconnects were " 84 + "observed. No frequent wifi associations were observed."); 85 } 86 87 public void testWifiAssociationAnalysis() throws Exception { 88 DumpsysWifiStatsItem wifiStats = new DumpsysWifiStatsItem(); 89 wifiStats.setNumWifiDisconnect(0); 90 wifiStats.setNumWifiScan(0); 91 wifiStats.setNumWifiAssociation(3); 92 93 mDumpsys.setWifiStats(wifiStats); 94 WifiStatsRule wifiStatsRule = new WifiStatsRule(mBugreport); 95 wifiStatsRule.applyRule(); 96 JSONObject analysis = wifiStatsRule.getAnalysis(); 97 assertNotNull(analysis); 98 assertTrue(analysis.has("WIFI_STATS")); 99 assertEquals(analysis.getString("WIFI_STATS"), 100 "No apps requested for frequent wifi scans. No frequent wifi disconnects were " 101 + "observed. Wifi got associated with AP 3 times."); 102 } 103 } 104