rui_orig/sizeFunc_test.go

51 lines
1.7 KiB
Go

package rui
import (
"testing"
)
func TestSizeFunc(t *testing.T) {
session := new(sessionData)
session.getCurrentTheme().SetConstant("a1", "120px", "120px")
SetErrorLog(func(text string) {
t.Error(text)
})
SetDebugLog(func(text string) {
t.Log(text)
})
testFunc := func(fn SizeFunc, str, css string) {
if fn != nil {
if text := fn.String(); str != text {
t.Error("String() error.\nResult: \"" + text + "\"\nExpected: \"" + str + `"`)
}
if text := fn.cssString(session); css != text {
t.Error("cssString() error.\nResult: \"" + text + "\"\nExpected: \"" + css + `"`)
}
}
}
testFunc(MinSize("100%", Px(10)), `min(100%, 10px)`, `min(100%, 10px)`)
testFunc(MaxSize(Percent(100), "@a1"), `max(100%, @a1)`, `max(100%, 120px)`)
testFunc(SumSize(Percent(100), "@a1"), `sum(100%, @a1)`, `calc(100% + 120px)`)
testFunc(SubSize(Percent(100), "@a1"), `sub(100%, @a1)`, `calc(100% - 120px)`)
testFunc(MulSize(Percent(100), "@a1"), `mul(100%, @a1)`, `calc(100% * 120px)`)
testFunc(DivSize(Percent(100), "@a1"), `div(100%, @a1)`, `calc(100% / 120px)`)
testFunc(ClampSize(Percent(20), "@a1", Percent(40)), `clamp(20%, @a1, 40%)`, `clamp(20%, 120px, 40%)`)
testFunc(MaxSize(SubSize(Percent(100), "@a1"), "@a1"), `max(sub(100%, @a1), @a1)`, `max(100% - 120px, 120px)`)
testParse := func(str, css string) {
if fn := parseSizeFunc(str); fn != nil {
testFunc(fn, str, css)
}
}
testParse(`min(100%, 10px)`, `min(100%, 10px)`)
testParse(`max(100%, @a1)`, `max(100%, 120px)`)
testParse(`max(sub(100%, @a1), @a1)`, `max(100% - 120px, 120px)`)
testParse(`mul(sub(100%, @a1), @a1)`, `calc((100% - 120px) * 120px)`)
testParse(`mul(sub(100%, @a1), div(mul(@a1, 3), 2))`, `calc((100% - 120px) * ((120px * 3) / 2))`)
}