feat(protonvpn): feature filters (#2182)

- `SECURE_CORE_ONLY`
- `TOR_ONLY`
- `P2P_ONLY`
This commit is contained in:
Koen van Zuijlen
2024-07-29 08:57:31 +02:00
committed by GitHub
parent 2bf2525bc5
commit cb99f90bb5
11 changed files with 7007 additions and 2933 deletions

View File

@@ -57,6 +57,18 @@ func filterServer(server models.Server,
return true
}
if *selection.SecureCoreOnly && !server.SecureCore {
return true
}
if *selection.TorOnly && !server.Tor {
return true
}
if *selection.P2POnly && !server.P2P {
return true
}
if filterByPossibilities(server.Country, selection.Countries) {
return true
}

View File

@@ -115,6 +115,45 @@ func Test_FilterServers(t *testing.T) {
{Stream: true, VPN: vpn.OpenVPN, UDP: true},
},
},
"filter by secure core only": {
selection: settings.ServerSelection{
SecureCoreOnly: boolPtr(true),
}.WithDefaults(providers.Protonvpn),
servers: []models.Server{
{SecureCore: false, VPN: vpn.OpenVPN, UDP: true},
{SecureCore: true, VPN: vpn.OpenVPN, UDP: true},
{SecureCore: false, VPN: vpn.OpenVPN, UDP: true},
},
filtered: []models.Server{
{SecureCore: true, VPN: vpn.OpenVPN, UDP: true},
},
},
"filter by tor only": {
selection: settings.ServerSelection{
TorOnly: boolPtr(true),
}.WithDefaults(providers.Protonvpn),
servers: []models.Server{
{Tor: false, VPN: vpn.OpenVPN, UDP: true},
{Tor: true, VPN: vpn.OpenVPN, UDP: true},
{Tor: false, VPN: vpn.OpenVPN, UDP: true},
},
filtered: []models.Server{
{Tor: true, VPN: vpn.OpenVPN, UDP: true},
},
},
"filter by P2P only": {
selection: settings.ServerSelection{
P2POnly: boolPtr(true),
}.WithDefaults(providers.Protonvpn),
servers: []models.Server{
{P2P: false, VPN: vpn.OpenVPN, UDP: true},
{P2P: true, VPN: vpn.OpenVPN, UDP: true},
{P2P: false, VPN: vpn.OpenVPN, UDP: true},
},
filtered: []models.Server{
{P2P: true, VPN: vpn.OpenVPN, UDP: true},
},
},
"filter by owned": {
selection: settings.ServerSelection{
OwnedOnly: boolPtr(true),