summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-05-09 17:18:05 +0200
committerDavid Lönnhager <david.l@mullvad.net>2022-05-09 17:19:34 +0200
commit615972c357a3a89d4e74d031eb19b3f1d6069432 (patch)
treedf6a785f11dc5c4c99ded7bab1831b48acba8f6f
parentaba2777f4357f43c9ae9d8985e67a0e0d7490ba0 (diff)
downloadmullvadvpn-615972c357a3a89d4e74d031eb19b3f1d6069432.tar.xz
mullvadvpn-615972c357a3a89d4e74d031eb19b3f1d6069432.zip
Add unit test for server ownership constraint
-rw-r--r--mullvad-relay-selector/src/lib.rs33
1 files changed, 32 insertions, 1 deletions
diff --git a/mullvad-relay-selector/src/lib.rs b/mullvad-relay-selector/src/lib.rs
index 2b34d105a7..e21eee96fc 100644
--- a/mullvad-relay-selector/src/lib.rs
+++ b/mullvad-relay-selector/src/lib.rs
@@ -1296,7 +1296,7 @@ mod test {
ipv6_addr_in: Some("2a03:1b20:5:f011::a10f".parse().unwrap()),
include_in_country: true,
active: true,
- owned: true,
+ owned: false,
provider: "31173".to_string(),
weight: 1,
tunnels: RelayTunnels {
@@ -1894,4 +1894,35 @@ mod test {
.get_tunnel_endpoint(&constraints, BridgeState::Off, 0)
.expect_err("Successfully selected a relay that should be filtered");
}
+
+ #[test]
+ fn test_ownership() {
+ let relay_selector = new_relay_selector();
+ let mut constraints = RelayConstraints::default();
+ for i in 0..10 {
+ constraints.ownership = Constraint::Only(Ownership::MullvadOwned);
+ let relay = relay_selector
+ .get_tunnel_endpoint(&constraints, BridgeState::Auto, i)
+ .unwrap();
+ assert!(matches!(
+ relay,
+ NormalSelectedRelay {
+ exit_relay: Relay { owned: true, .. },
+ ..
+ }
+ ));
+
+ constraints.ownership = Constraint::Only(Ownership::Rented);
+ let relay = relay_selector
+ .get_tunnel_endpoint(&constraints, BridgeState::Auto, i)
+ .unwrap();
+ assert!(matches!(
+ relay,
+ NormalSelectedRelay {
+ exit_relay: Relay { owned: false, .. },
+ ..
+ }
+ ));
+ }
+ }
}