1package config
2
3import (
4 "testing"
5
6 "github.com/spf13/viper"
7 "github.com/stretchr/testify/assert"
8)
9
10func TestSetEngineDefaults(t *testing.T) {
11 mgr := &Manager{viper: viper.New()}
12 mgr.setDefaults()
13
14 // Universal engine fields
15 assert.Equal(t, EngineTypeCEF, mgr.viper.GetString("engine.type"))
16 assert.Equal(t, "default", mgr.viper.GetString("engine.profile"))
17 assert.Equal(t, "always", mgr.viper.GetString("engine.cookie_policy"))
18 assert.Equal(t, 4, mgr.viper.GetInt("engine.pool_prewarm_count"))
19 assert.Equal(t, 256, mgr.viper.GetInt("engine.zoom_cache_size"))
20 assert.InDelta(t, defaultCEFScrollMultiplier, mgr.viper.GetFloat64("engine.cef.input.scroll_wheel_multiplier"), 0.001)
21 assert.InDelta(t, defaultCEFScrollPreciseMultiplier, mgr.viper.GetFloat64("engine.cef.input.scroll_precise_multiplier"), 0.001)
22 assert.InDelta(t, defaultCEFScrollMultiplier, mgr.viper.GetFloat64("engine.cef.input.scroll_horizontal_multiplier"), 0.001)
23 assert.InDelta(t, defaultCEFScrollMultiplier, mgr.viper.GetFloat64("engine.cef.input.scroll_vertical_multiplier"), 0.001)
24 assert.Equal(t, defaultCEFScrollMaxDelta, mgr.viper.GetInt("engine.cef.input.scroll_max_delta"))
25 assert.Equal(t, defaultCEFTouchpadNavigation, mgr.viper.GetBool("engine.cef.input.touchpad_navigation_enabled"))
26 assert.InDelta(t, defaultCEFTouchpadNavigationDelta, mgr.viper.GetFloat64("engine.cef.input.touchpad_navigation_min_delta"), 0.001)
27 assert.InDelta(t, defaultCEFTouchpadNavigationRatio, mgr.viper.GetFloat64("engine.cef.input.touchpad_navigation_max_vertical_ratio"), 0.001)
28
29 // WebKit-specific engine fields
30 assert.True(t, mgr.viper.GetBool("engine.webkit.itp_enabled"))
31 assert.Equal(t, "auto", mgr.viper.GetString("engine.webkit.gsk_renderer"))
32 assert.Equal(t, "auto", mgr.viper.GetString("engine.webkit.gl_rendering_mode"))
33 assert.False(t, mgr.viper.GetBool("engine.webkit.disable_dmabuf_renderer"))
34
35 // Old sections should NOT be registered as defaults
36 assert.Empty(t, mgr.viper.GetString("privacy.cookie_policy"))
37 assert.Empty(t, mgr.viper.GetString("rendering.mode"))
38 assert.Empty(t, mgr.viper.GetString("performance.profile"))
39 assert.Empty(t, mgr.viper.GetString("runtime.prefix"))
40}
41
42func TestNormalizeConfig_EngineCookiePolicy(t *testing.T) {
43 cfg := DefaultConfig()
44 cfg.Engine.CookiePolicy = CookiePolicy("INVALID")
45
46 normalizeConfig(cfg)
47
48 assert.Equal(t, CookiePolicyAlways, cfg.Engine.CookiePolicy)
49}