blob: 4ac461d0bf86aaa4db9967e1af2f7ecb452dfd95 [file] [log] [blame]
/*
* Copyright (C) 2015 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 com.android.settingslib.wifi;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import com.android.settingslib.BaseTest;
import com.android.settingslib.wifi.AccessPoint.AccessPointListener;
import org.mockito.ArgumentCaptor;
import org.mockito.Mockito;
// TODO: Add some coverage
public class AccessPointTest extends BaseTest {
private static final String TEST_SSID = "TestSsid";
private static final int NETWORK_ID = 0;
private AccessPointListener mAccessPointListener;
private AccessPoint mAccessPoint;
@Override
protected void setUp() throws Exception {
super.setUp();
mAccessPointListener = Mockito.mock(AccessPointListener.class);
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.networkId = NETWORK_ID;
wifiConfig.SSID = TEST_SSID;
mAccessPoint = new AccessPoint(mContext, wifiConfig);
mAccessPoint.setListener(mAccessPointListener);
}
public void testOnLevelChanged() {
ScanResult result = new ScanResult();
result.capabilities = "";
result.SSID = TEST_SSID;
// Give it a level.
result.level = WifiTrackerTest.levelToRssi(1);
mAccessPoint.update(result);
verifyOnLevelChangedCallback(1);
// Give it a better level.
result.level = WifiTrackerTest.levelToRssi(2);
mAccessPoint.update(result);
verifyOnLevelChangedCallback(1);
}
public void testOnAccessPointChangedCallback() {
WifiInfo wifiInfo = Mockito.mock(WifiInfo.class);
Mockito.when(wifiInfo.getNetworkId()).thenReturn(NETWORK_ID);
mAccessPoint.update(wifiInfo, null);
verifyOnAccessPointsCallback(1);
mAccessPoint.update(null, null);
verifyOnAccessPointsCallback(2);
ScanResult result = new ScanResult();
result.capabilities = "";
result.SSID = TEST_SSID;
mAccessPoint.update(result);
verifyOnAccessPointsCallback(3);
}
private void verifyOnLevelChangedCallback(int num) {
ArgumentCaptor<AccessPoint> accessPoint = ArgumentCaptor.forClass(AccessPoint.class);
Mockito.verify(mAccessPointListener, Mockito.atLeast(num))
.onLevelChanged(accessPoint.capture());
assertEquals(mAccessPoint, accessPoint.getValue());
}
private void verifyOnAccessPointsCallback(int num) {
ArgumentCaptor<AccessPoint> accessPoint = ArgumentCaptor.forClass(AccessPoint.class);
Mockito.verify(mAccessPointListener, Mockito.atLeast(num))
.onAccessPointChanged(accessPoint.capture());
assertEquals(mAccessPoint, accessPoint.getValue());
}
}