cloudflare/cloudflared

Public

mirrored fromhttps://github.com/cloudflare/cloudflaredAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
31de04f8582a5541a6f79bf74f452bd79dca2371

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

client/config_test.go

50lines · modecode

1package client
2
3import (
4 "net"
5 "testing"
6
7 "github.com/stretchr/testify/require"
8
9 "github.com/cloudflare/cloudflared/features"
10)
11
12func TestGenerateConnectionOptions(t *testing.T) {
13 version := "1234"
14 arch := "linux_amd64"
15 originIP := net.ParseIP("192.168.1.1")
16 var previousAttempts uint8 = 4
17
18 config, err := NewConfig(version, arch, &mockFeatureSelector{})
19 require.NoError(t, err)
20 require.Equal(t, version, config.Version)
21 require.Equal(t, arch, config.Arch)
22
23 // Validate ConnectionOptionsSnapshot fields
24 connOptions := config.ConnectionOptionsSnapshot(originIP, previousAttempts)
25 require.Equal(t, version, connOptions.client.Version)
26 require.Equal(t, arch, connOptions.client.Arch)
27 require.Equal(t, config.ConnectorID[:], connOptions.client.ClientID)
28
29 // Vaidate snapshot feature fields against the connOptions generated
30 snapshot := config.featureSelector.Snapshot()
31 require.Equal(t, features.DatagramV3, snapshot.DatagramVersion)
32 require.Equal(t, features.DatagramV3, connOptions.FeatureSnapshot.DatagramVersion)
33
34 pogsConnOptions := connOptions.ConnectionOptions()
35 require.Equal(t, connOptions.client, pogsConnOptions.Client)
36 require.Equal(t, originIP, pogsConnOptions.OriginLocalIP)
37 require.False(t, pogsConnOptions.ReplaceExisting)
38 require.Equal(t, uint8(0), pogsConnOptions.CompressionQuality)
39 require.Equal(t, previousAttempts, pogsConnOptions.NumPreviousAttempts)
40}
41
42type mockFeatureSelector struct{}
43
44func (m *mockFeatureSelector) Snapshot() features.FeatureSnapshot {
45 return features.FeatureSnapshot{
46 PostQuantum: features.PostQuantumPrefer,
47 DatagramVersion: features.DatagramV3,
48 FeaturesList: []string{features.FeaturePostQuantum, features.FeatureDatagramV3_2},
49 }
50}
51