diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2017-01-06 19:43:56 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-01-06 19:43:56 +0000 |
commit | ff1100de0e10f72517c93427d7231c8a7ae0307d (patch) | |
tree | 6ca7abae7df0e8c0d8f5e557dcdcd2e667d958f1 /tests | |
parent | 4718fa7418ebb57bb62e51697a6ba073e777b149 (diff) | |
parent | fcbdc7fdb5612e82991494832a95c73bcc898f12 (diff) |
Merge "Move WifiNotificationController to NetworkRecommendation"
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiNotificationControllerTest.java | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNotificationControllerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNotificationControllerTest.java deleted file mode 100644 index 5375bcff8..000000000 --- a/tests/wifitests/src/com/android/server/wifi/WifiNotificationControllerTest.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (C) 2016 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.server.wifi; - -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.anyInt; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.app.Notification; -import android.app.NotificationManager; -import android.content.BroadcastReceiver; -import android.content.ContentResolver; -import android.content.Context; -import android.content.IntentFilter; -import android.content.res.Resources; -import android.net.NetworkInfo; -import android.net.wifi.ScanResult; -import android.net.wifi.WifiManager; -import android.net.wifi.WifiScanner; -import android.os.UserHandle; -import android.os.test.TestLooper; -import android.provider.Settings; -import android.test.suitebuilder.annotation.SmallTest; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -import java.util.ArrayList; -import java.util.List; - -/** - * Unit tests for {@link com.android.server.wifi.WifiScanningServiceImpl}. - */ -@SmallTest -public class WifiNotificationControllerTest { - public static final String TAG = "WifiScanningServiceTest"; - - @Mock private Context mContext; - @Mock private FrameworkFacade mFrameworkFacade; - @Mock private NotificationManager mNotificationManager; - @Mock private WifiInjector mWifiInjector; - @Mock private WifiScanner mWifiScanner; - WifiNotificationController mWifiNotificationController; - - /** - * Internal BroadcastReceiver that WifiNotificationController uses to listen for broadcasts - * this is initialized by calling startServiceAndLoadDriver - */ - BroadcastReceiver mBroadcastReceiver; - - /** Initialize objects before each test run. */ - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - - // Needed for the NotificationEnabledSettingObserver. - when(mContext.getContentResolver()).thenReturn(mock(ContentResolver.class)); - - when(mContext.getSystemService(Context.NOTIFICATION_SERVICE)) - .thenReturn(mNotificationManager); - - when(mFrameworkFacade.getIntegerSetting(mContext, - Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 1)).thenReturn(1); - - when(mWifiInjector.getWifiScanner()).thenReturn(mWifiScanner); - - TestLooper mock_looper = new TestLooper(); - mWifiNotificationController = new WifiNotificationController( - mContext, mock_looper.getLooper(), mFrameworkFacade, - mock(Notification.Builder.class), mWifiInjector); - ArgumentCaptor<BroadcastReceiver> broadcastReceiverCaptor = - ArgumentCaptor.forClass(BroadcastReceiver.class); - - verify(mContext) - .registerReceiver(broadcastReceiverCaptor.capture(), any(IntentFilter.class)); - mBroadcastReceiver = broadcastReceiverCaptor.getValue(); - } - - private void setOpenAccessPoint() { - List<ScanResult> scanResults = new ArrayList<>(); - ScanResult scanResult = new ScanResult(); - scanResult.capabilities = "[ESS]"; - scanResults.add(scanResult); - when(mWifiScanner.getSingleScanResults()).thenReturn(scanResults); - } - - /** Verifies that a notification is displayed (and retracted) given system events. */ - @Test - public void verifyNotificationDisplayed() throws Exception { - TestUtil.sendWifiStateChanged(mBroadcastReceiver, mContext, WifiManager.WIFI_STATE_ENABLED); - TestUtil.sendNetworkStateChanged(mBroadcastReceiver, mContext, - NetworkInfo.DetailedState.DISCONNECTED); - setOpenAccessPoint(); - - // The notification should not be displayed after only two scan results. - TestUtil.sendScanResultsAvailable(mBroadcastReceiver, mContext); - TestUtil.sendScanResultsAvailable(mBroadcastReceiver, mContext); - verify(mNotificationManager, never()) - .notifyAsUser(any(String.class), anyInt(), any(Notification.class), - any(UserHandle.class)); - - // Changing to and from "SCANNING" state should not affect the counter. - TestUtil.sendNetworkStateChanged(mBroadcastReceiver, mContext, - NetworkInfo.DetailedState.SCANNING); - TestUtil.sendNetworkStateChanged(mBroadcastReceiver, mContext, - NetworkInfo.DetailedState.DISCONNECTED); - - // Needed while WifiNotificationController creates its notification. - when(mContext.getResources()).thenReturn(mock(Resources.class)); - - // The third scan result notification will trigger the notification. - TestUtil.sendScanResultsAvailable(mBroadcastReceiver, mContext); - verify(mNotificationManager) - .notifyAsUser(any(String.class), anyInt(), any(Notification.class), - any(UserHandle.class)); - verify(mNotificationManager, never()) - .cancelAsUser(any(String.class), anyInt(), any(UserHandle.class)); - - // Changing network state should cause the notification to go away. - TestUtil.sendNetworkStateChanged(mBroadcastReceiver, mContext, - NetworkInfo.DetailedState.CONNECTED); - verify(mNotificationManager) - .cancelAsUser(any(String.class), anyInt(), any(UserHandle.class)); - } -} |