/* * 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.util; import static org.junit.Assert.*; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; /** * Unit tests for {@link com.android.server.wifi.util.NativeUtil}. */ public class NativeUtilTest { /** * Test that parsing a typical colon-delimited MAC address works. */ @Test public void testMacAddressToByteArray() throws Exception { assertArrayEquals(new byte[]{0x61, 0x52, 0x43, 0x34, 0x25, 0x16}, NativeUtil.macAddressToByteArray("61:52:43:34:25:16")); } /** * Test that parsing an empty MAC address works. */ @Test public void testEmptyMacAddressToByteArray() throws Exception { assertArrayEquals(new byte[]{0, 0, 0, 0, 0, 0}, NativeUtil.macAddressToByteArray("")); assertArrayEquals(new byte[]{0, 0, 0, 0, 0, 0}, NativeUtil.macAddressToByteArray(null)); } /** * Test that conversion of byte array of mac address to typical colon-delimited MAC address * works. */ @Test public void testByteArrayToMacAddress() throws Exception { assertEquals("61:52:43:34:25:16", NativeUtil.macAddressFromByteArray(new byte[]{0x61, 0x52, 0x43, 0x34, 0x25, 0x16})); } /** * Test that parsing a typical colon-delimited MAC OUI address works. */ @Test public void testMacAddressOuiToByteArray() throws Exception { assertArrayEquals(new byte[]{0x61, 0x52, 0x43}, NativeUtil.macAddressOuiToByteArray("61:52:43")); } /** * Test that parsing a hex string to byte array works. */ @Test public void testHexStringToByteArray() throws Exception { assertArrayEquals(new byte[]{0x45, 0x12, 0x23, 0x34}, NativeUtil.hexStringToByteArray("45122334")); } /** * Test that conversion of byte array to hexstring works. */ @Test public void testHexStringFromByteArray() throws Exception { assertEquals("45122334", NativeUtil.hexStringFromByteArray(new byte[]{0x45, 0x12, 0x23, 0x34})); } /** * Test that conversion of ssid bytes to quoted ASCII string ssid works. */ @Test public void testAsciiSsidDecode() throws Exception { assertEquals( new ArrayList<>( Arrays.asList((byte) 's', (byte) 's', (byte) 'i', (byte) 'd', (byte) '_', (byte) 't', (byte) 'e', (byte) 's', (byte) 't', (byte) '1', (byte) '2', (byte) '3')), NativeUtil.decodeSsid("\"ssid_test123\"")); } /** * Test that conversion of ssid bytes to hex string ssid works. */ @Test public void testNonAsciiSsidDecode() throws Exception { assertEquals( new ArrayList<>( Arrays.asList((byte) 0xf5, (byte) 0xe4, (byte) 0xab, (byte) 0x78, (byte) 0xab, (byte) 0x34, (byte) 0x32, (byte) 0x43, (byte) 0x9a)), NativeUtil.decodeSsid("f5e4ab78ab3432439a")); } /** * Test that conversion of ssid bytes to quoted ASCII string ssid works. */ @Test public void testAsciiSsidEncode() throws Exception { assertEquals( "\"ssid_test123\"", NativeUtil.encodeSsid(new ArrayList<>( Arrays.asList((byte) 's', (byte) 's', (byte) 'i', (byte) 'd', (byte) '_', (byte) 't', (byte) 'e', (byte) 's', (byte) 't', (byte) '1', (byte) '2', (byte) '3')))); } /** * Test that conversion of byte array to hex string works when the byte array contains 0. */ @Test public void testNullCharInAsciiSsidEncode() throws Exception { assertEquals( "007369645f74657374313233", NativeUtil.encodeSsid(new ArrayList<>( Arrays.asList((byte) 0x00, (byte) 's', (byte) 'i', (byte) 'd', (byte) '_', (byte) 't', (byte) 'e', (byte) 's', (byte) 't', (byte) '1', (byte) '2', (byte) '3')))); } /** * Test that conversion of byte array to hex string ssid works. */ @Test public void testNonAsciiSsidEncode() throws Exception { assertEquals( "f5e4ab78ab3432439a", NativeUtil.encodeSsid(new ArrayList<>( Arrays.asList((byte) 0xf5, (byte) 0xe4, (byte) 0xab, (byte) 0x78, (byte) 0xab, (byte) 0x34, (byte) 0x32, (byte) 0x43, (byte) 0x9a)))); } /** * Test that parsing of quoted SSID to byte array and vice versa works. */ @Test public void testSsidEncodeDecode() throws Exception { String ssid = "\"ssid_test123\""; assertEquals(ssid, NativeUtil.encodeSsid(NativeUtil.decodeSsid(ssid))); } /** * Test that the enclosing quotes are removed properly. */ @Test public void testRemoveEnclosingQuotes() throws Exception { assertEquals("abcdefgh", NativeUtil.removeEnclosingQuotes("\"abcdefgh\"")); assertEquals("abcdefgh", NativeUtil.removeEnclosingQuotes("abcdefgh")); } }