19c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang/* 29c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * Copyright (C) 2017 The Android Open Source Project 39c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * 49c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * Licensed under the Apache License, Version 2.0 (the "License"); 59c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * you may not use this file except in compliance with the License. 69c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * You may obtain a copy of the License at 79c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * 89c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * http://www.apache.org/licenses/LICENSE-2.0 99c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * 109c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * Unless required by applicable law or agreed to in writing, software 119c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * distributed under the License is distributed on an "AS IS" BASIS, 129c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * See the License for the specific language governing permissions and 149c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * limitations under the License. 159c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang */ 169c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 179c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wangpackage com.android.server.wifi.wificond; 189c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 199c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wangimport static org.junit.Assert.assertEquals; 209c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wangimport static org.junit.Assert.assertNotNull; 219c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 229c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wangimport android.os.Parcel; 237f2a1e30dd5d14320ffc7b185ac25fdb79fe52b0Etan Cohenimport android.support.test.filters.SmallTest; 249c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 259c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wangimport org.junit.Test; 269c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 279c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wangimport java.util.ArrayList; 289c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wangimport java.util.Arrays; 299c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 309c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang/** 319c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang * Unit tests for {@link com.android.server.wifi.wificond.PnoSettingsResult}. 329c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang */ 339c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang@SmallTest 349c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wangpublic class PnoSettingsTest { 359c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 369c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang private static final byte[] TEST_SSID_1 = 379c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang new byte[] {'G', 'o', 'o', 'g', 'l', 'e', 'G', 'u', 'e', 's', 't'}; 389c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang private static final byte[] TEST_SSID_2 = 399c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang new byte[] {'A', 'n', 'd', 'r', 'o', 'i', 'd', 'T', 'e', 's', 't'}; 409c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang private static final int TEST_INTERVAL_MS = 30000; 419c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang private static final int TEST_MIN_2G_RSSI = -60; 429c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang private static final int TEST_MIN_5G_RSSI = -65; 439c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 44de6c1aeca1b431d858f6f074cb3e1b5421e46dc6Ningyuan Wang /** 45de6c1aeca1b431d858f6f074cb3e1b5421e46dc6Ningyuan Wang * PnoSettings object can be serialized and deserialized, while keeping the 46de6c1aeca1b431d858f6f074cb3e1b5421e46dc6Ningyuan Wang * values unchanged. 47de6c1aeca1b431d858f6f074cb3e1b5421e46dc6Ningyuan Wang */ 489c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang @Test 499c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang public void canSerializeAndDeserialize() throws Exception { 509c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 519c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang PnoSettings pnoSettings = new PnoSettings(); 529c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 539c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang PnoNetwork pnoNetwork1 = new PnoNetwork(); 549c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang pnoNetwork1.ssid = TEST_SSID_1; 559c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang pnoNetwork1.isHidden = true; 569c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 579c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang PnoNetwork pnoNetwork2 = new PnoNetwork(); 589c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang pnoNetwork2.ssid = TEST_SSID_2; 599c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang pnoNetwork2.isHidden = false; 609c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 619c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang pnoSettings.pnoNetworks = new ArrayList(Arrays.asList(pnoNetwork1, pnoNetwork2)); 629c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 639c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang pnoSettings.intervalMs = TEST_INTERVAL_MS; 649c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang pnoSettings.min2gRssi = TEST_MIN_2G_RSSI; 659c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang pnoSettings.min5gRssi = TEST_MIN_5G_RSSI; 669c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 679c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang Parcel parcel = Parcel.obtain(); 689c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang pnoSettings.writeToParcel(parcel, 0); 699c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang // Rewind the pointer to the head of the parcel. 709c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang parcel.setDataPosition(0); 719c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang PnoSettings pnoSettingsDeserialized = 729c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang pnoSettings.CREATOR.createFromParcel(parcel); 739c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang 74cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang assertNotNull(pnoSettingsDeserialized); 75cc0a86f647320808c5d88da6e9d45c6de10b65b0Ningyuan Wang assertEquals(pnoSettings, pnoSettingsDeserialized); 769c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang } 779c40d0310e6cb0890a3d20af3617a7fc302458e0Ningyuan Wang} 78