omnibox_preferences_gateway_test.go RawHistoryFolder
1package config
2
3import (
4 "context"
5 "path/filepath"
6 "testing"
7
8 "github.com/bnema/dumber/internal/domain/entity"
9 "github.com/stretchr/testify/require"
10)
11
12func TestOmniboxPreferencesGateway_SaveOmniboxInitialBehavior_UpdatesBehavior(t *testing.T) {
13 configHome := t.TempDir()
14 mgr := newTestOmniboxPreferencesGatewayManager(t, configHome)
15 gateway := NewOmniboxPreferencesGateway(mgr)
16
17 require.NoError(t, gateway.SaveOmniboxInitialBehavior(context.Background(), entity.OmniboxInitialBehaviorMostVisited))
18
19 reloaded := newTestOmniboxPreferencesGatewayManager(t, configHome)
20 got := reloaded.Get()
21 require.Equal(t, entity.OmniboxInitialBehaviorMostVisited, got.Omnibox.InitialBehavior)
22}
23
24func TestOmniboxPreferencesGateway_SaveOmniboxInitialBehavior_PreservesDefaultSearchEngine(t *testing.T) {
25 configHome := t.TempDir()
26 mgr := newTestOmniboxPreferencesGatewayManager(t, configHome)
27 setTestManagerDefaultSearchEngine(t, mgr, "https://example.com/search?q=%s")
28 gateway := NewOmniboxPreferencesGateway(mgr)
29
30 require.NoError(t, gateway.SaveOmniboxInitialBehavior(context.Background(), entity.OmniboxInitialBehaviorMostVisited))
31
32 reloaded := newTestOmniboxPreferencesGatewayManager(t, configHome)
33 got := reloaded.Get()
34 require.Equal(t, "https://example.com/search?q=%s", got.DefaultSearchEngine)
35}
36
37func newTestOmniboxPreferencesGatewayManager(t *testing.T, configHome string) *Manager {
38 t.Helper()
39
40 t.Setenv("XDG_CONFIG_HOME", configHome)
41 t.Setenv("XDG_DATA_HOME", filepath.Join(configHome, "data"))
42 t.Setenv("XDG_STATE_HOME", filepath.Join(configHome, "state"))
43 t.Setenv("XDG_CACHE_HOME", filepath.Join(configHome, "cache"))
44
45 mgr, err := NewManager()
46 require.NoError(t, err)
47 require.NoError(t, mgr.Load())
48
49 return mgr
50}
51
52func setTestManagerDefaultSearchEngine(t *testing.T, mgr *Manager, value string) {
53 t.Helper()
54
55 mgr.mu.Lock()
56 defer mgr.mu.Unlock()
57
58 require.NotNil(t, mgr.config)
59 mgr.config.DefaultSearchEngine = value
60}