mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-13 00:42:49 -05:00
149 lines
3.9 KiB
Go
149 lines
3.9 KiB
Go
package network
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFrequencyToChannel(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
frequency uint32
|
|
channel uint32
|
|
}{
|
|
{"2.4 GHz channel 1", 2412, 1},
|
|
{"2.4 GHz channel 6", 2437, 6},
|
|
{"2.4 GHz channel 11", 2462, 11},
|
|
{"2.4 GHz channel 14", 2484, 14},
|
|
{"5 GHz channel 36", 5180, 36},
|
|
{"5 GHz channel 40", 5200, 40},
|
|
{"5 GHz channel 165", 5825, 165},
|
|
{"6 GHz channel 1", 5955, 1},
|
|
{"6 GHz channel 233", 7115, 233},
|
|
{"Unknown frequency", 1000, 0},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
result := frequencyToChannel(tt.frequency)
|
|
assert.Equal(t, tt.channel, result)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestSortWiFiNetworks(t *testing.T) {
|
|
t.Run("connected network comes first", func(t *testing.T) {
|
|
networks := []WiFiNetwork{
|
|
{SSID: "Network1", Signal: 90, Connected: false},
|
|
{SSID: "Network2", Signal: 80, Connected: true},
|
|
{SSID: "Network3", Signal: 70, Connected: false},
|
|
}
|
|
|
|
sortWiFiNetworks(networks)
|
|
|
|
assert.Equal(t, "Network2", networks[0].SSID)
|
|
assert.True(t, networks[0].Connected)
|
|
})
|
|
|
|
t.Run("sorts by signal strength", func(t *testing.T) {
|
|
networks := []WiFiNetwork{
|
|
{SSID: "Weak", Signal: 40, Secured: true},
|
|
{SSID: "Strong", Signal: 90, Secured: true},
|
|
{SSID: "Medium", Signal: 60, Secured: true},
|
|
}
|
|
|
|
sortWiFiNetworks(networks)
|
|
|
|
assert.Equal(t, "Strong", networks[0].SSID)
|
|
assert.Equal(t, "Medium", networks[1].SSID)
|
|
assert.Equal(t, "Weak", networks[2].SSID)
|
|
})
|
|
|
|
t.Run("prioritizes open networks with good signal", func(t *testing.T) {
|
|
networks := []WiFiNetwork{
|
|
{SSID: "SecureWeak", Signal: 40, Secured: true},
|
|
{SSID: "OpenStrong", Signal: 60, Secured: false},
|
|
{SSID: "SecureStrong", Signal: 90, Secured: true},
|
|
}
|
|
|
|
sortWiFiNetworks(networks)
|
|
|
|
assert.Equal(t, "OpenStrong", networks[0].SSID)
|
|
|
|
openIdx := -1
|
|
weakSecureIdx := -1
|
|
for i, n := range networks {
|
|
if n.SSID == "OpenStrong" {
|
|
openIdx = i
|
|
}
|
|
if n.SSID == "SecureWeak" {
|
|
weakSecureIdx = i
|
|
}
|
|
}
|
|
assert.Less(t, openIdx, weakSecureIdx, "OpenStrong should come before SecureWeak")
|
|
})
|
|
|
|
t.Run("prioritizes saved networks after connected", func(t *testing.T) {
|
|
networks := []WiFiNetwork{
|
|
{SSID: "UnsavedStrong", Signal: 95, Saved: false},
|
|
{SSID: "SavedMedium", Signal: 60, Saved: true},
|
|
{SSID: "SavedWeak", Signal: 50, Saved: true},
|
|
{SSID: "UnsavedMedium", Signal: 70, Saved: false},
|
|
}
|
|
|
|
sortWiFiNetworks(networks)
|
|
|
|
assert.Equal(t, "SavedMedium", networks[0].SSID)
|
|
assert.Equal(t, "SavedWeak", networks[1].SSID)
|
|
assert.Equal(t, "UnsavedStrong", networks[2].SSID)
|
|
assert.Equal(t, "UnsavedMedium", networks[3].SSID)
|
|
})
|
|
}
|
|
|
|
func TestManager_GetWiFiNetworks(t *testing.T) {
|
|
manager := &Manager{
|
|
state: &NetworkState{
|
|
WiFiNetworks: []WiFiNetwork{
|
|
{SSID: "Network1", Signal: 90},
|
|
{SSID: "Network2", Signal: 80},
|
|
},
|
|
},
|
|
}
|
|
|
|
networks := manager.GetWiFiNetworks()
|
|
|
|
assert.Len(t, networks, 2)
|
|
assert.Equal(t, "Network1", networks[0].SSID)
|
|
assert.Equal(t, "Network2", networks[1].SSID)
|
|
|
|
networks[0].SSID = "Modified"
|
|
assert.Equal(t, "Network1", manager.state.WiFiNetworks[0].SSID)
|
|
}
|
|
|
|
func TestManager_GetNetworkInfo(t *testing.T) {
|
|
manager := &Manager{
|
|
state: &NetworkState{
|
|
WiFiNetworks: []WiFiNetwork{
|
|
{SSID: "Network1", Signal: 90, BSSID: "00:11:22:33:44:55"},
|
|
{SSID: "Network2", Signal: 80, BSSID: "AA:BB:CC:DD:EE:FF"},
|
|
},
|
|
},
|
|
}
|
|
|
|
t.Run("finds existing network", func(t *testing.T) {
|
|
network, err := manager.GetNetworkInfo("Network1")
|
|
assert.NoError(t, err)
|
|
assert.NotNil(t, network)
|
|
assert.Equal(t, "Network1", network.SSID)
|
|
assert.Equal(t, uint8(90), network.Signal)
|
|
})
|
|
|
|
t.Run("returns error for non-existent network", func(t *testing.T) {
|
|
network, err := manager.GetNetworkInfo("NonExistent")
|
|
assert.Error(t, err)
|
|
assert.Nil(t, network)
|
|
assert.Contains(t, err.Error(), "network not found")
|
|
})
|
|
}
|