mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-08 06:25:37 -05:00
rename backend to core
This commit is contained in:
143
core/internal/server/freedesktop/manager_test.go
Normal file
143
core/internal/server/freedesktop/manager_test.go
Normal file
@@ -0,0 +1,143 @@
|
||||
package freedesktop
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestManager_GetState(t *testing.T) {
|
||||
state := &FreedeskState{
|
||||
Accounts: AccountsState{
|
||||
Available: true,
|
||||
UserName: "testuser",
|
||||
RealName: "Test User",
|
||||
UID: 1000,
|
||||
},
|
||||
Settings: SettingsState{
|
||||
Available: true,
|
||||
ColorScheme: 1,
|
||||
},
|
||||
}
|
||||
|
||||
manager := &Manager{
|
||||
state: state,
|
||||
stateMutex: sync.RWMutex{},
|
||||
}
|
||||
|
||||
result := manager.GetState()
|
||||
assert.True(t, result.Accounts.Available)
|
||||
assert.Equal(t, "testuser", result.Accounts.UserName)
|
||||
assert.Equal(t, "Test User", result.Accounts.RealName)
|
||||
assert.Equal(t, uint64(1000), result.Accounts.UID)
|
||||
assert.True(t, result.Settings.Available)
|
||||
assert.Equal(t, uint32(1), result.Settings.ColorScheme)
|
||||
}
|
||||
|
||||
func TestManager_GetState_ThreadSafe(t *testing.T) {
|
||||
manager := &Manager{
|
||||
state: &FreedeskState{
|
||||
Accounts: AccountsState{
|
||||
Available: true,
|
||||
UserName: "testuser",
|
||||
},
|
||||
Settings: SettingsState{
|
||||
Available: true,
|
||||
ColorScheme: 1,
|
||||
},
|
||||
},
|
||||
stateMutex: sync.RWMutex{},
|
||||
}
|
||||
|
||||
done := make(chan bool)
|
||||
for i := 0; i < 10; i++ {
|
||||
go func() {
|
||||
state := manager.GetState()
|
||||
assert.True(t, state.Accounts.Available)
|
||||
assert.Equal(t, "testuser", state.Accounts.UserName)
|
||||
done <- true
|
||||
}()
|
||||
}
|
||||
|
||||
for i := 0; i < 10; i++ {
|
||||
<-done
|
||||
}
|
||||
}
|
||||
|
||||
func TestManager_Close(t *testing.T) {
|
||||
manager := &Manager{
|
||||
state: &FreedeskState{},
|
||||
stateMutex: sync.RWMutex{},
|
||||
systemConn: nil,
|
||||
sessionConn: nil,
|
||||
}
|
||||
|
||||
assert.NotPanics(t, func() {
|
||||
manager.Close()
|
||||
})
|
||||
}
|
||||
|
||||
func TestNewManager(t *testing.T) {
|
||||
t.Run("attempts to create manager", func(t *testing.T) {
|
||||
manager, err := NewManager()
|
||||
if err != nil {
|
||||
assert.Nil(t, manager)
|
||||
} else {
|
||||
assert.NotNil(t, manager)
|
||||
assert.NotNil(t, manager.state)
|
||||
assert.NotNil(t, manager.systemConn)
|
||||
|
||||
manager.Close()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestManager_GetState_EmptyState(t *testing.T) {
|
||||
manager := &Manager{
|
||||
state: &FreedeskState{},
|
||||
stateMutex: sync.RWMutex{},
|
||||
}
|
||||
|
||||
result := manager.GetState()
|
||||
assert.False(t, result.Accounts.Available)
|
||||
assert.Empty(t, result.Accounts.UserName)
|
||||
assert.False(t, result.Settings.Available)
|
||||
assert.Equal(t, uint32(0), result.Settings.ColorScheme)
|
||||
}
|
||||
|
||||
func TestManager_AccountsState_Modification(t *testing.T) {
|
||||
manager := &Manager{
|
||||
state: &FreedeskState{
|
||||
Accounts: AccountsState{
|
||||
Available: true,
|
||||
UserName: "testuser",
|
||||
},
|
||||
},
|
||||
stateMutex: sync.RWMutex{},
|
||||
}
|
||||
|
||||
state := manager.GetState()
|
||||
state.Accounts.UserName = "modifieduser"
|
||||
|
||||
original := manager.GetState()
|
||||
assert.Equal(t, "testuser", original.Accounts.UserName)
|
||||
}
|
||||
|
||||
func TestManager_SettingsState_Modification(t *testing.T) {
|
||||
manager := &Manager{
|
||||
state: &FreedeskState{
|
||||
Settings: SettingsState{
|
||||
Available: true,
|
||||
ColorScheme: 0,
|
||||
},
|
||||
},
|
||||
stateMutex: sync.RWMutex{},
|
||||
}
|
||||
|
||||
state := manager.GetState()
|
||||
state.Settings.ColorScheme = 1
|
||||
|
||||
original := manager.GetState()
|
||||
assert.Equal(t, uint32(0), original.Settings.ColorScheme)
|
||||
}
|
||||
Reference in New Issue
Block a user