public void OnVpnDisconnected_ManualDisconnect_RestoreInternet() { // Arrange var sut = new Service.KillSwitch.KillSwitch(_firewall, _serviceSettings); // Act sut.OnVpnDisconnected(GetDisconnectedVpnState(true)); // Assert _firewall.Received(1).DisableLeakProtection(); }
public void OnVpnDisconnected_UnexpectedDisconnectWithKillSwitchOff_RestoreInternet() { // Arrange _serviceSettings.KillSwitchMode.Returns(KillSwitchMode.Off); var sut = new Service.KillSwitch.KillSwitch(_firewall, _serviceSettings, _networkInterfaceLoader); // Act sut.OnVpnDisconnected(GetDisconnectedVpnState()); // Assert _firewall.Received(1).DisableLeakProtection(); }
public void OnVpnConnecting_SplitTunnelBlockMode_BlockInternet(SplitTunnelMode mode, bool dnsLeakOnly) { // Arrange Service.KillSwitch.KillSwitch killSwitch = GetKillSwitch(mode); // Act killSwitch.OnVpnConnecting(GetConnectingVpnState()); // Assert _firewall.ReceivedWithAnyArgs(1) .EnableLeakProtection(Arg.Is <FirewallParams>(p => p.DnsLeakOnly == dnsLeakOnly)); }
public void OnVpnConnected_WhenSplitTunnelPermitMode_DoNotBlockInternet() { // Arrange Service.KillSwitch.KillSwitch killSwitch = GetKillSwitch(SplitTunnelMode.Permit); // Act killSwitch.OnVpnConnected(GetConnectedVpnState()); // Assert _firewall.Received(0) .EnableLeakProtection(new FirewallParams("127.0.0.1", dnsLeakOnly: false, interfaceIndex: 0, persistent: false)); }
public void OnVpnConnected_WhenSplitTunnelPermitMode_DoNotBlockInternet() { // Arrange Service.KillSwitch.KillSwitch killSwitch = GetKillSwitch(SplitTunnelMode.Permit); // Act killSwitch.OnVpnConnected(GetConnectedVpnState()); // Assert _firewall.Received(0) .EnableLeakProtection(new FirewallParams { ServerIp = "127.0.0.1" }); }
public void ExpectedLeakProtectionStatus_ShouldBe_Firewall_LeakProtectionEnabled_WhenOtherStatus(VpnStatus status, bool leakProtectionEnabled) { // Arrange var state = new VpnState(status); _firewall.LeakProtectionEnabled.Returns(leakProtectionEnabled); var killSwitch = new Service.KillSwitch.KillSwitch(_firewall, _serviceSettings); // Act var result = killSwitch.ExpectedLeakProtectionStatus(state); //Assert result.Should().Be(leakProtectionEnabled); }
public void OnVpnDisconnected_UnexpectedDisconnectWithKillSwitchOff_RestoreInternet() { // Arrange _serviceSettings.KillSwitchSettings.Returns(new KillSwitchSettingsContract { Enabled = false }); var sut = new Service.KillSwitch.KillSwitch(_firewall, _serviceSettings); // Act sut.OnVpnDisconnected(GetDisconnectedVpnState()); // Assert _firewall.Received(1).DisableLeakProtection(); }
public void ExpectedLeakProtectionStatus_ShouldBe_Firewall_LeakProtectionEnabled_WhenOtherStatus( VpnStatus status, bool leakProtectionEnabled) { // Arrange var state = new VpnState(status, default); _firewall.LeakProtectionEnabled.Returns(leakProtectionEnabled); Service.KillSwitch.KillSwitch killSwitch = new Service.KillSwitch.KillSwitch(_firewall, _serviceSettings, _networkInterfaceLoader); // Act bool result = killSwitch.ExpectedLeakProtectionStatus(state); //Assert result.Should().Be(leakProtectionEnabled); }
public void ExpectedLeakProtectionStatus_ShouldBe_Expected_WhenDisconnecting(VpnStatus status, VpnError error, KillSwitchMode killSwitchMode, bool leakProtectionEnabled, bool expected) { // Arrange var state = new VpnState(status, error, default); _serviceSettings.KillSwitchMode.Returns(killSwitchMode); _firewall.LeakProtectionEnabled.Returns(leakProtectionEnabled); Service.KillSwitch.KillSwitch killSwitch = new Service.KillSwitch.KillSwitch(_firewall, _serviceSettings, _networkInterfaceLoader); // Act bool result = killSwitch.ExpectedLeakProtectionStatus(state); //Assert result.Should().Be(expected); }
public void ExpectedLeakProtectionStatus_ShouldBe_Expected_WhenConnecting(VpnStatus status, SplitTunnelMode splitTunnelMode, bool expected) { // Arrange var state = new VpnState(status); _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract { Mode = splitTunnelMode }); var killSwitch = new Service.KillSwitch.KillSwitch(_firewall, _serviceSettings); // Act var result = killSwitch.ExpectedLeakProtectionStatus(state); //Assert result.Should().Be(expected); }
public void ExpectedLeakProtectionStatus_ShouldBe_Enabled_WhenConnecting(VpnStatus status) { // Arrange var state = new VpnState(status, default); _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract { Mode = SplitTunnelMode.Block }); Service.KillSwitch.KillSwitch killSwitch = new Service.KillSwitch.KillSwitch(_firewall, _serviceSettings, _networkInterfaceLoader); // Act bool result = killSwitch.ExpectedLeakProtectionStatus(state); //Assert result.Should().Be(true); }
public void ExpectedLeakProtectionStatus_ShouldBe_Expected_WhenDisconnecting(VpnStatus status, VpnError error, bool killSwitchEnabled, bool leakProtectionEnabled, bool expected) { // Arrange var state = new VpnState(status, error); _serviceSettings.KillSwitchSettings.Returns(new KillSwitchSettingsContract { Enabled = killSwitchEnabled }); _firewall.LeakProtectionEnabled.Returns(leakProtectionEnabled); var killSwitch = new Service.KillSwitch.KillSwitch(_firewall, _serviceSettings); // Act var result = killSwitch.ExpectedLeakProtectionStatus(state); //Assert result.Should().Be(expected); }