mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-21 06:48:07 +01:00
Detect GV2 capability in non-gcm Android devices
This commit is contained in:
@@ -12,40 +12,56 @@ public class DeviceTest {
|
||||
|
||||
@Test
|
||||
@Parameters(method = "argumentsForTestIsGroupsV2Supported")
|
||||
public void testIsGroupsV2Supported(final String gcmId, final String apnId, final boolean gv2Capability, final boolean gv2_2Capability, final boolean gv2_3Capability, final boolean expectGv2Supported) {
|
||||
public void testIsGroupsV2Supported(final boolean master, final String apnId, final boolean gv2Capability, final boolean gv2_2Capability, final boolean gv2_3Capability, final boolean expectGv2Supported) {
|
||||
final Device.DeviceCapabilities capabilities = new Device.DeviceCapabilities(gv2Capability, gv2_2Capability, gv2_3Capability, false, false);
|
||||
final Device device = new Device(1, "test", "auth-token", "salt", "signaling-key", gcmId, apnId, null, false, 1, null, 0, 0, "user-agent", 0, capabilities);
|
||||
final Device device = new Device(master ? 1 : 2, "test", "auth-token", "salt", "signaling-key", null, apnId, null, false, 1, null, 0, 0, "user-agent", 0, capabilities);
|
||||
|
||||
assertEquals(expectGv2Supported, device.isGroupsV2Supported());
|
||||
}
|
||||
|
||||
private static Object argumentsForTestIsGroupsV2Supported() {
|
||||
return new Object[] {
|
||||
// gcmId apnId gv2 gv2-2 gv2-3 capable
|
||||
new Object[] { "gcm-id", null, false, false, false, false },
|
||||
new Object[] { "gcm-id", null, true, false, false, true },
|
||||
new Object[] { "gcm-id", null, false, true, false, true },
|
||||
new Object[] { "gcm-id", null, true, true, false, true },
|
||||
new Object[] { "gcm-id", null, false, false, true, true },
|
||||
new Object[] { "gcm-id", null, true, false, true, true },
|
||||
new Object[] { "gcm-id", null, false, true, true, true },
|
||||
new Object[] { "gcm-id", null, true, true, true, true },
|
||||
new Object[] { null, "apn-id", false, false, false, false },
|
||||
new Object[] { null, "apn-id", true, false, false, false },
|
||||
new Object[] { null, "apn-id", false, true, false, true },
|
||||
new Object[] { null, "apn-id", true, true, false, true },
|
||||
new Object[] { null, "apn-id", false, false, true, true },
|
||||
new Object[] { null, "apn-id", true, false, true, true },
|
||||
new Object[] { null, "apn-id", false, true, true, true },
|
||||
new Object[] { null, "apn-id", true, true, true, true },
|
||||
new Object[] { null, null, false, false, false, false },
|
||||
new Object[] { null, null, true, false, false, false },
|
||||
new Object[] { null, null, false, true, false, false },
|
||||
new Object[] { null, null, true, true, false, false },
|
||||
new Object[] { null, null, false, false, true, true },
|
||||
new Object[] { null, null, true, false, true, true },
|
||||
new Object[] { null, null, false, true, true, true },
|
||||
new Object[] { null, null, true, true, true, true }
|
||||
// master apnId gv2 gv2-2 gv2-3 capable
|
||||
|
||||
// Android master
|
||||
new Object[] { true, null, false, false, false, false },
|
||||
new Object[] { true, null, true, false, false, true },
|
||||
new Object[] { true, null, false, true, false, true },
|
||||
new Object[] { true, null, true, true, false, true },
|
||||
new Object[] { true, null, false, false, true, true },
|
||||
new Object[] { true, null, true, false, true, true },
|
||||
new Object[] { true, null, false, true, true, true },
|
||||
new Object[] { true, null, true, true, true, true },
|
||||
|
||||
// iOs master
|
||||
new Object[] { true, "apn-id", false, false, false, false },
|
||||
new Object[] { true, "apn-id", true, false, false, false },
|
||||
new Object[] { true, "apn-id", false, true, false, true },
|
||||
new Object[] { true, "apn-id", true, true, false, true },
|
||||
new Object[] { true, "apn-id", false, false, true, true },
|
||||
new Object[] { true, "apn-id", true, false, true, true },
|
||||
new Object[] { true, "apn-id", false, true, true, true },
|
||||
new Object[] { true, "apn-id", true, true, true, true },
|
||||
|
||||
// iOs linked
|
||||
new Object[] { false, "apn-id", false, false, false, false },
|
||||
new Object[] { false, "apn-id", true, false, false, false },
|
||||
new Object[] { false, "apn-id", false, true, false, true },
|
||||
new Object[] { false, "apn-id", true, true, false, true },
|
||||
new Object[] { false, "apn-id", false, false, true, true },
|
||||
new Object[] { false, "apn-id", true, false, true, true },
|
||||
new Object[] { false, "apn-id", false, true, true, true },
|
||||
new Object[] { false, "apn-id", true, true, true, true },
|
||||
|
||||
// desktop linked
|
||||
new Object[] { false, null, false, false, false, false },
|
||||
new Object[] { false, null, true, false, false, false },
|
||||
new Object[] { false, null, false, true, false, false },
|
||||
new Object[] { false, null, true, true, false, false },
|
||||
new Object[] { false, null, false, false, true, true },
|
||||
new Object[] { false, null, true, false, true, true },
|
||||
new Object[] { false, null, false, true, true, true },
|
||||
new Object[] { false, null, true, true, true, true }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user