1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-10 07:25:37 -05:00
Files
DankMaterialShell/backend/internal/server/brightness/logind_test.go
2025-11-12 17:18:45 -05:00

96 lines
2.6 KiB
Go

package brightness
import (
"errors"
"testing"
mocks_brightness "github.com/AvengeMedia/DankMaterialShell/backend/internal/mocks/brightness"
mock_dbus "github.com/AvengeMedia/DankMaterialShell/backend/internal/mocks/github.com/godbus/dbus/v5"
"github.com/godbus/dbus/v5"
"github.com/stretchr/testify/mock"
)
func TestLogindBackend_SetBrightness_Success(t *testing.T) {
mockConn := mocks_brightness.NewMockDBusConn(t)
mockObj := mock_dbus.NewMockBusObject(t)
backend := NewLogindBackendWithConn(mockConn)
mockConn.EXPECT().
Object("org.freedesktop.login1", dbus.ObjectPath("/org/freedesktop/login1/session/auto")).
Return(mockObj).
Once()
mockObj.EXPECT().
Call("org.freedesktop.login1.Session.SetBrightness", dbus.Flags(0), "backlight", "nvidia_0", uint32(75)).
Return(&dbus.Call{Err: nil}).
Once()
err := backend.SetBrightness("backlight", "nvidia_0", 75)
if err != nil {
t.Errorf("SetBrightness() error = %v, want nil", err)
}
}
func TestLogindBackend_SetBrightness_DBusError(t *testing.T) {
mockConn := mocks_brightness.NewMockDBusConn(t)
mockObj := mock_dbus.NewMockBusObject(t)
backend := NewLogindBackendWithConn(mockConn)
mockConn.EXPECT().
Object("org.freedesktop.login1", dbus.ObjectPath("/org/freedesktop/login1/session/auto")).
Return(mockObj).
Once()
dbusErr := errors.New("permission denied")
mockObj.EXPECT().
Call("org.freedesktop.login1.Session.SetBrightness", mock.Anything, mock.Anything, mock.Anything, mock.Anything).
Return(&dbus.Call{Err: dbusErr}).
Once()
err := backend.SetBrightness("backlight", "test_device", 50)
if err == nil {
t.Error("SetBrightness() error = nil, want error")
}
}
func TestLogindBackend_SetBrightness_LEDDevice(t *testing.T) {
mockConn := mocks_brightness.NewMockDBusConn(t)
mockObj := mock_dbus.NewMockBusObject(t)
backend := NewLogindBackendWithConn(mockConn)
mockConn.EXPECT().
Object("org.freedesktop.login1", dbus.ObjectPath("/org/freedesktop/login1/session/auto")).
Return(mockObj).
Once()
mockObj.EXPECT().
Call("org.freedesktop.login1.Session.SetBrightness", dbus.Flags(0), "leds", "test_led", uint32(128)).
Return(&dbus.Call{Err: nil}).
Once()
err := backend.SetBrightness("leds", "test_led", 128)
if err != nil {
t.Errorf("SetBrightness() error = %v, want nil", err)
}
}
func TestLogindBackend_Close(t *testing.T) {
mockConn := mocks_brightness.NewMockDBusConn(t)
backend := NewLogindBackendWithConn(mockConn)
mockConn.EXPECT().
Close().
Return(nil).
Once()
backend.Close()
}
func TestLogindBackend_Close_NilConn(t *testing.T) {
backend := &LogindBackend{conn: nil}
backend.Close()
}