From 2375f6a9f2ec395391cca524176d9c54635a14de Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 5 Feb 2022 05:06:42 +0100 Subject: fix NPE in GatewaysManager --- app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java | 3 +++ .../test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java | 8 ++++++++ 2 files changed, 11 insertions(+) (limited to 'app') diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java index 060e69f2..0dd4c26c 100644 --- a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java +++ b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java @@ -211,6 +211,9 @@ public class GatewaysManager { public Load getLoadForLocation(@Nullable String name, TransportType transportType) { Location location = getLocation(name); + if (location == null) { + return Load.UNKNOWN; + } return Load.getLoadByValue(location.getAverageLoad(transportType)); } diff --git a/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java b/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java index a3cde58b..729abcdf 100644 --- a/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java +++ b/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java @@ -20,6 +20,7 @@ import java.util.List; import de.blinkt.openvpn.VpnProfile; import de.blinkt.openvpn.core.ConfigParser; +import de.blinkt.openvpn.core.connection.Connection; import se.leap.bitmaskclient.base.models.Location; import se.leap.bitmaskclient.base.models.Provider; import se.leap.bitmaskclient.base.models.ProviderObservable; @@ -508,6 +509,13 @@ public class GatewaysManagerTest { assertEquals("Amsterdam", locations.get(2).getName()); } + @Test + public void testGetLoadForLocation_() { + MockHelper.mockProviderObservable(null); + GatewaysManager gatewaysManager = new GatewaysManager(mockContext); + assertEquals(GatewaysManager.Load.UNKNOWN, gatewaysManager.getLoadForLocation("unknown city", OPENVPN)); + } + private String getJsonStringFor(String filename) throws IOException { return TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream(filename)); } -- cgit v1.2.3