diff options
| -rw-r--r-- | wifi/java/android/net/wifi/p2p/WifiP2pDevice.java | 9 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/p2p/WifiP2pDeviceTest.java | 73 |
2 files changed, 78 insertions, 4 deletions
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java b/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java index 22dc2ed32083..ab7bb688f5ea 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java @@ -17,14 +17,13 @@ package android.net.wifi.p2p; import android.annotation.UnsupportedAppUsage; -import android.os.Parcelable; import android.os.Parcel; +import android.os.Parcelable; import android.util.Log; import java.util.Objects; - -import java.util.regex.Pattern; import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * A class representing a Wi-Fi p2p device @@ -360,7 +359,9 @@ public class WifiP2pDevice implements Parcelable { deviceCapability = source.deviceCapability; groupCapability = source.groupCapability; status = source.status; - wfdInfo = new WifiP2pWfdInfo(source.wfdInfo); + if (source.wfdInfo != null) { + wfdInfo = new WifiP2pWfdInfo(source.wfdInfo); + } } } diff --git a/wifi/tests/src/android/net/wifi/p2p/WifiP2pDeviceTest.java b/wifi/tests/src/android/net/wifi/p2p/WifiP2pDeviceTest.java index f61e6b759085..17ee75594c2f 100644 --- a/wifi/tests/src/android/net/wifi/p2p/WifiP2pDeviceTest.java +++ b/wifi/tests/src/android/net/wifi/p2p/WifiP2pDeviceTest.java @@ -30,6 +30,31 @@ import org.junit.Test; public class WifiP2pDeviceTest { /** + * Compare two p2p devices. + * + * @param devA is the first device to be compared + * @param devB is the second device to be compared + */ + private void compareWifiP2pDevices(WifiP2pDevice devA, WifiP2pDevice devB) { + assertEquals(devA.deviceName, devB.deviceName); + assertEquals(devA.deviceAddress, devB.deviceAddress); + assertEquals(devA.primaryDeviceType, devB.primaryDeviceType); + assertEquals(devA.secondaryDeviceType, devB.secondaryDeviceType); + assertEquals(devA.wpsConfigMethodsSupported, devB.wpsConfigMethodsSupported); + assertEquals(devA.deviceCapability, devB.deviceCapability); + assertEquals(devA.groupCapability, devB.groupCapability); + assertEquals(devA.status, devB.status); + if (devA.wfdInfo != null) { + assertEquals(devA.wfdInfo.isWfdEnabled(), devB.wfdInfo.isWfdEnabled()); + assertEquals(devA.wfdInfo.getDeviceInfoHex(), devB.wfdInfo.getDeviceInfoHex()); + assertEquals(devA.wfdInfo.getControlPort(), devB.wfdInfo.getControlPort()); + assertEquals(devA.wfdInfo.getMaxThroughput(), devB.wfdInfo.getMaxThroughput()); + } else { + assertEquals(devA.wfdInfo, devB.wfdInfo); + } + } + + /** * Check equals and hashCode consistency */ @Test @@ -42,4 +67,52 @@ public class WifiP2pDeviceTest { assertTrue(dev_a.equals(dev_b)); assertEquals(dev_a.hashCode(), dev_b.hashCode()); } + + /** + * Check the copy constructor with default values. + */ + @Test + public void testCopyConstructorWithDefaultValues() throws Exception { + WifiP2pDevice device = new WifiP2pDevice(); + WifiP2pDevice copy = new WifiP2pDevice(device); + compareWifiP2pDevices(device, copy); + } + + /** + * Check the copy constructor with updated values. + */ + @Test + public void testCopyConstructorWithUpdatedValues() throws Exception { + WifiP2pDevice device = new WifiP2pDevice(); + device.deviceName = "deviceName"; + device.deviceAddress = "11:22:33:44:55:66"; + device.primaryDeviceType = "primaryDeviceType"; + device.secondaryDeviceType = "secondaryDeviceType"; + device.wpsConfigMethodsSupported = 0x0008; + device.deviceCapability = 1; + device.groupCapability = 1; + device.status = WifiP2pDevice.CONNECTED; + device.wfdInfo = new WifiP2pWfdInfo(); + WifiP2pDevice copy = new WifiP2pDevice(device); + compareWifiP2pDevices(device, copy); + } + + /** + * Check the copy constructor when the wfdInfo of the source object is null. + */ + @Test + public void testCopyConstructorWithNullWfdInfo() throws Exception { + WifiP2pDevice device = new WifiP2pDevice(); + device.deviceName = "deviceName"; + device.deviceAddress = "11:22:33:44:55:66"; + device.primaryDeviceType = "primaryDeviceType"; + device.secondaryDeviceType = "secondaryDeviceType"; + device.wpsConfigMethodsSupported = 0x0008; + device.deviceCapability = 1; + device.groupCapability = 1; + device.status = WifiP2pDevice.CONNECTED; + device.wfdInfo = null; + WifiP2pDevice copy = new WifiP2pDevice(device); + compareWifiP2pDevices(device, copy); + } } |