Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a2e15cb authored by Hsiu-Chang Chen's avatar Hsiu-Chang Chen Committed by Android (Google) Code Review
Browse files

Merge "p2p: fix the copy constructor of WifiP2pDevice"

parents 62b67c26 48e070c3
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -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,9 +359,11 @@ public class WifiP2pDevice implements Parcelable {
            deviceCapability = source.deviceCapability;
            groupCapability = source.groupCapability;
            status = source.status;
            if (source.wfdInfo != null) {
                wfdInfo = new WifiP2pWfdInfo(source.wfdInfo);
            }
        }
    }

    /** Implement the Parcelable interface */
    @Override
+73 −0
Original line number Diff line number Diff line
@@ -29,6 +29,31 @@ import org.junit.Test;
@SmallTest
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
     */
@@ -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);
    }
}