Sfoglia il codice sorgente

Add test for unknown tunnel protocol in tactics

Rod Hynes 10 mesi fa
parent
commit
51a1894cf3
1 ha cambiato i file con 46 aggiunte e 0 eliminazioni
  1. 46 0
      psiphon/common/parameters/parameters_test.go

+ 46 - 0
psiphon/common/parameters/parameters_test.go

@@ -313,6 +313,52 @@ func TestOverrides(t *testing.T) {
 	if v != newInitialLimitTunnelProtocolsCandidateCount {
 		t.Fatalf("GetInt returned unexpected InitialLimitTunnelProtocolsCandidateCount: %d", v)
 	}
+
+	// Test: unknown tunnel protocol
+
+	applyParameters[InitialLimitTunnelProtocols] = protocol.TunnelProtocols{"UNKNOWN-TUNNEL-PROTOCOL"}
+
+	p, err = NewParameters(nil)
+	if err != nil {
+		t.Fatalf("NewParameters failed: %s", err)
+	}
+
+	_, err = p.Set(tag, 0, applyParameters)
+	if err == nil {
+		t.Fatalf("Set succeeded unexpectedly")
+	}
+
+	_, err = p.Set(tag, ValidationSkipOnError, applyParameters)
+	if err != nil {
+		t.Fatalf("Set failed: %s", err)
+	}
+
+	l := p.Get().TunnelProtocols(InitialLimitTunnelProtocols)
+	if len(l) != 0 {
+		t.Fatalf("TunnelProtocols returned unexpected InitialLimitTunnelProtocols: %d", v)
+	}
+
+	applyParameters[InitialLimitTunnelProtocols] = protocol.TunnelProtocols{"UNKNOWN-TUNNEL-PROTOCOL", "OSSH", "SSH"}
+
+	p, err = NewParameters(nil)
+	if err != nil {
+		t.Fatalf("NewParameters failed: %s", err)
+	}
+
+	_, err = p.Set(tag, 0, applyParameters)
+	if err == nil {
+		t.Fatalf("Set succeeded unexpectedly")
+	}
+
+	_, err = p.Set(tag, ValidationSkipOnError, applyParameters)
+	if err != nil {
+		t.Fatalf("Set failed: %s", err)
+	}
+
+	l = p.Get().TunnelProtocols(InitialLimitTunnelProtocols)
+	if len(l) != 2 {
+		t.Fatalf("TunnelProtocols returned unexpected InitialLimitTunnelProtocols: %d", v)
+	}
 }
 
 func TestNetworkLatencyMultiplier(t *testing.T) {