83 lines
2.4 KiB
Go
83 lines
2.4 KiB
Go
package network
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/AvengeMedia/danklinux/internal/errdefs"
|
|
mock_gonetworkmanager "github.com/AvengeMedia/danklinux/internal/mocks/github.com/Wifx/gonetworkmanager/v2"
|
|
"github.com/Wifx/gonetworkmanager/v2"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestNetworkManagerBackend_UpdatePrimaryConnection(t *testing.T) {
|
|
mockNM := mock_gonetworkmanager.NewMockNetworkManager(t)
|
|
|
|
backend, err := NewNetworkManagerBackend(mockNM)
|
|
assert.NoError(t, err)
|
|
|
|
mockNM.EXPECT().GetPropertyActiveConnections().Return([]gonetworkmanager.ActiveConnection{}, nil)
|
|
mockNM.EXPECT().GetPropertyPrimaryConnection().Return(nil, nil)
|
|
|
|
err = backend.updatePrimaryConnection()
|
|
assert.NoError(t, err)
|
|
}
|
|
|
|
func TestNetworkManagerBackend_UpdateEthernetState_NoDevice(t *testing.T) {
|
|
mockNM := mock_gonetworkmanager.NewMockNetworkManager(t)
|
|
|
|
backend, err := NewNetworkManagerBackend(mockNM)
|
|
assert.NoError(t, err)
|
|
|
|
backend.ethernetDevice = nil
|
|
err = backend.updateEthernetState()
|
|
assert.NoError(t, err)
|
|
}
|
|
|
|
func TestNetworkManagerBackend_UpdateWiFiState_NoDevice(t *testing.T) {
|
|
mockNM := mock_gonetworkmanager.NewMockNetworkManager(t)
|
|
|
|
backend, err := NewNetworkManagerBackend(mockNM)
|
|
assert.NoError(t, err)
|
|
|
|
backend.wifiDevice = nil
|
|
err = backend.updateWiFiState()
|
|
assert.NoError(t, err)
|
|
}
|
|
|
|
func TestNetworkManagerBackend_ClassifyNMStateReason(t *testing.T) {
|
|
mockNM := mock_gonetworkmanager.NewMockNetworkManager(t)
|
|
|
|
backend, err := NewNetworkManagerBackend(mockNM)
|
|
assert.NoError(t, err)
|
|
|
|
testCases := []struct {
|
|
reason uint32
|
|
expected string
|
|
}{
|
|
{NmDeviceStateReasonWrongPassword, errdefs.ErrBadCredentials},
|
|
{NmDeviceStateReasonNoSecrets, errdefs.ErrUserCanceled},
|
|
{NmDeviceStateReasonSupplicantTimeout, errdefs.ErrBadCredentials},
|
|
{NmDeviceStateReasonDhcpClientFailed, errdefs.ErrDhcpTimeout},
|
|
{NmDeviceStateReasonNoSsid, errdefs.ErrNoSuchSSID},
|
|
{999, errdefs.ErrConnectionFailed},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
result := backend.classifyNMStateReason(tc.reason)
|
|
assert.Equal(t, tc.expected, result)
|
|
}
|
|
}
|
|
|
|
func TestNetworkManagerBackend_GetDeviceIP_NoConfig(t *testing.T) {
|
|
mockNM := mock_gonetworkmanager.NewMockNetworkManager(t)
|
|
mockDevice := mock_gonetworkmanager.NewMockDevice(t)
|
|
|
|
backend, err := NewNetworkManagerBackend(mockNM)
|
|
assert.NoError(t, err)
|
|
|
|
mockDevice.EXPECT().GetPropertyIP4Config().Return(nil, nil)
|
|
|
|
ip := backend.getDeviceIP(mockDevice)
|
|
assert.Empty(t, ip)
|
|
}
|