1 package chroma
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7 )
8
9 func TestStyleInherit(t *testing.T) {
10 s, err := NewStyle("test", StyleEntries{
11 Name: "bold #f00",
12 NameVariable: "#fff",
13 })
14 assert.NoError(t, err)
15 assert.Equal(t, StyleEntry{Colour: 0x1000000, Bold: Yes}, s.Get(NameVariable))
16 }
17
18 func TestStyleColours(t *testing.T) {
19 s, err := NewStyle("test", StyleEntries{
20 Name: "#f00 bg:#001 border:#ansiblue",
21 })
22 assert.NoError(t, err)
23 assert.Equal(t, StyleEntry{Colour: 0xff0001, Background: 0x000012, Border: 0x000100}, s.Get(Name))
24 }
25
26 func TestStyleClone(t *testing.T) {
27 parent, err := NewStyle("test", StyleEntries{
28 Background: "bg:#ffffff",
29 })
30 assert.NoError(t, err)
31 clone, err := parent.Builder().Add(Comment, "#0f0").Build()
32 assert.NoError(t, err)
33
34 assert.Equal(t, "bg:#ffffff", clone.Get(Background).String())
35 assert.Equal(t, "#00ff00 bg:#ffffff", clone.Get(Comment).String())
36 assert.Equal(t, "bg:#ffffff", parent.Get(Comment).String())
37 }
38
39 func TestSynthesisedStyleEntries(t *testing.T) {
40 style, err := NewStyle("test", StyleEntries{
41 Background: "bg:#ffffff",
42 })
43 assert.NoError(t, err)
44 assert.True(t, style.Has(LineHighlight))
45 assert.True(t, style.Has(LineNumbersTable))
46 assert.True(t, style.Has(LineNumbers))
47 assert.Equal(t, "bg:#e5e5e5", style.Get(LineHighlight).String())
48 assert.Equal(t, "#7f7f7f bg:#ffffff", style.Get(LineNumbers).String())
49 assert.Equal(t, "#7f7f7f bg:#ffffff", style.Get(LineNumbersTable).String())
50 }
51
52 func TestSynthesisedStyleClone(t *testing.T) {
53 style, err := NewStyle("test", StyleEntries{
54 Background: "bg:#ffffff",
55 LineHighlight: "bg:#ffffff",
56 LineNumbers: "bg:#fffff1",
57 })
58 assert.NoError(t, err)
59 style, err = style.Builder().Build()
60 assert.NoError(t, err)
61 assert.True(t, style.Has(LineHighlight))
62 assert.True(t, style.Has(LineNumbers))
63 assert.Equal(t, "bg:#ffffff", style.Get(LineHighlight).String())
64 assert.Equal(t, "bg:#fffff1", style.Get(LineNumbers).String())
65 }
66
View as plain text