1package component
2
3import (
4 "math"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8)
9
10func TestModalUIScaleUpdate(t *testing.T) {
11 o := &Omnibox{uiScale: 1, sizeCfg: OmniboxSizeDefaults}
12 o.measuredHeights.valid = true
13 sm := &SessionManager{uiScale: 1}
14 sm.measuredHeights.valid = true
15 for _, scale := range []float64{1.5, 2, 1} {
16 o.SetUIScale(scale)
17 sm.SetUIScale(scale)
18 assert.InDelta(t, scale, o.uiScale, 0.000001)
19 assert.InDelta(t, scale, sm.uiScale, 0.000001)
20 assert.False(t, o.measuredHeights.valid)
21 assert.False(t, sm.measuredHeights.valid)
22 width, _ := o.requestedDimensions()
23 assert.Equal(t, int(640*scale), width)
24 }
25}
26
27func TestWorkspaceOmniboxUIScaleUpdatePreservesConfig(t *testing.T) {
28 o := &Omnibox{uiScale: 1}
29 wv := &WorkspaceView{omnibox: o, omniboxCfg: OmniboxConfig{UIScale: 1, SizeConfig: ModalSizeConfig{FixedWidth: 800}}}
30 wv.SetOmniboxUIScale(1.5)
31 assert.InDelta(t, 1.5, o.uiScale, 0.000001)
32 assert.InDelta(t, 1.5, wv.omniboxCfg.UIScale, 0.000001)
33 assert.Equal(t, 800, wv.omniboxCfg.SizeConfig.FixedWidth)
34 wv.omnibox = nil
35 wv.SetOmniboxUIScale(2)
36 assert.InDelta(t, 2.0, wv.omniboxCfg.UIScale, 0.000001)
37}
38
39func TestModalUIScaleUpdateNormalizesNonFinite(t *testing.T) {
40 o := &Omnibox{uiScale: 1.5}
41 sm := &SessionManager{uiScale: 1.5}
42 for _, scale := range []float64{0, -1, math.NaN(), math.Inf(1), math.Inf(-1)} {
43 o.SetUIScale(scale)
44 sm.SetUIScale(scale)
45 assert.InDelta(t, 1.0, o.uiScale, 0.000001)
46 assert.InDelta(t, 1.0, sm.uiScale, 0.000001)
47 }
48}
49
50func TestWorkspaceOmniboxUIScaleUpdateNormalizesBeforePersist(t *testing.T) {
51 o := &Omnibox{uiScale: 1}
52 wv := &WorkspaceView{omnibox: o, omniboxCfg: OmniboxConfig{UIScale: 1}}
53 for _, scale := range []float64{0, -2, math.NaN(), math.Inf(1)} {
54 wv.SetOmniboxUIScale(scale)
55 assert.InDelta(t, 1.0, wv.omniboxCfg.UIScale, 0.000001)
56 assert.InDelta(t, 1.0, o.uiScale, 0.000001)
57 }
58}