NAME=ec* fgbg
FILE==
CMDS=<<EOF
eco sepia
ec*
EOF
EXPECT=<<EOF
ec comment rgb:f0d090
ec usrcmt rgb:f0f0f0
ec args rgb:b0b070
ec fname rgb:b0b070
ec floc rgb:00ffff
ec fline rgb:c0a060
ec flag rgb:f0f0d0
ec label rgb:708080
ec help rgb:a0b070
ec flow rgb:c0a060
ec flow2 rgb:f0e0c0
ec prompt rgb:906000
ec offset rgb:906000
ec input rgb:c0a060
ec invalid rgb:c06040
ec other rgb:b0a060
ec b0x00 rgb:403010
ec b0x7f rgb:f0d090
ec b0xff rgb:906000
ec math rgb:d0b070
ec bin rgb:f0e0c0
ec btext rgb:f0e0c0
ec push rgb:d0b070
ec pop rgb:b0b070
ec crypto rgb:0000ff
ec jmp rgb:f0e0c0
ec cjmp rgb:f0e0c0
ec call rgb:ffffff
ec nop rgb:708080
ec ret rgb:a0b070
ec trap rgb:403010
ec ucall rgb:ffffff
ec ujmp rgb:f0e0c0
ec swi rgb:b0b070
ec cmp rgb:c0a060
ec reg rgb:c0a060
ec creg rgb:906000
ec num rgb:906000
ec mov rgb:d0b070
ec func_var rgb:f0d090
ec func_var_type rgb:805000
ec func_var_addr rgb:906000
ec widget_bg rgb:d0b070 rgb:000000
ec widget_sel rgb:000000 rgb:f0e0c0
ec meta rgb:767676
ec ai.read rgb:c0b070
ec ai.write rgb:c0a060
ec ai.exec rgb:d0b070
ec ai.seq rgb:906000
ec ai.ascii rgb:f0e0c0
ec graph.box rgb:403010
ec graph.box2 rgb:c0a060
ec graph.box3 rgb:c0a060
ec graph.box4 rgb:c0a060
ec graph.true rgb:f0d090
ec graph.false rgb:403010
ec graph.ujump rgb:f0d090
ec graph.current rgb:0000ff
ec graph.traced rgb:0000ff
ec diff.unknown rgb:881798
ec diff.new rgb:c50f1f
ec diff.match rgb:767676
ec diff.unmatch rgb:c19c00
ec gui.cflow rgb:ffff00
ec gui.dataoffset rgb:ffff00
ec gui.background rgb:000000
ec gui.alt_background rgb:ffffff
ec gui.border rgb:000000
ec wordhl rgb:ff0000
ec linehl rgb:201000
EOF
RUN

NAME=ansicon ecs
FILE==
CMDS=<<EOF
e scr.color=1
e scr.ansicon=true
ecs
EOF
EXPECT=<<EOF
[30m[40m__[0m black
[31m[41m__[0m red
[37m[47m__[0m white
[32m[42m__[0m green
[35m[45m__[0m magenta
[33m[43m__[0m yellow
[36m[46m__[0m cyan
[34m[44m__[0m blue
[90m[100m__[0m gray
[90m[100m__[0m bblack
[91m[101m__[0m bred
[97m[107m__[0m bwhite
[92m[102m__[0m bgreen
[95m[105m__[0m bmagenta
[93m[103m__[0m byellow
[96m[106m__[0m bcyan
[94m[104m__[0m bblue
[0m[0m__[0m none
EOF
RUN

NAME=ecd and eco bright
FILE==
CMDS=<<EOF
e scr.color=1
ecd
ec
echo
eco bright
ec
EOF
EXPECT=<<EOF
 [31m##[0m  comment
 [37m##[0m  usrcmt
 [33m##[0m  args
 [31m##[0m  fname
 [36m##[0m  floc
 [36m##[0m  fline
 [36m##[0m  flag
 [36m##[0m  label
 [32m##[0m  help
 [36m##[0m  flow
 [34m##[0m  flow2
 [33m##[0m  prompt
 [32m##[0m  offset
 [37m##[0m  input
 [1;91m##[0m  invalid
 [37m##[0m  other
 [32m##[0m  b0x00
 [36m##[0m  b0x7f
 [31m##[0m  b0xff
 [33m##[0m  math
 [36m##[0m  bin
 [33m##[0m  btext
 [35m##[0m  push
 [1;95m##[0m  pop
 [44m##[0m  crypto
 [32m##[0m  jmp
 [32m##[0m  cjmp
 [1;92m##[0m  call
 [34m##[0m  nop
 [31m##[0m  ret
 [1;91m##[0m  trap
 [32m##[0m  ucall
 [32m##[0m  ujmp
 [35m##[0m  swi
 [36m##[0m  cmp
 [36m##[0m  reg
 [36m##[0m  creg
 [33m##[0m  num
 [37m##[0m  mov
 [37m##[0m  func_var
 [34m##[0m  func_var_type
 [36m##[0m  func_var_addr
 [40m##[0m  widget_bg
 [41m##[0m  widget_sel
 [90m##[0m  meta
 [32m##[0m  ai.read
 [34m##[0m  ai.write
 [31m##[0m  ai.exec
 [35m##[0m  ai.seq
 [33m##[0m  ai.ascii
 [0m##[0m  graph.box
 [34m##[0m  graph.box2
 [35m##[0m  graph.box3
 [90m##[0m  graph.box4
 [32m##[0m  graph.true
 [31m##[0m  graph.false
 [34m##[0m  graph.ujump
 [34m##[0m  graph.current
 [33m##[0m  graph.traced
 [35m##[0m  diff.unknown
 [31m##[0m  diff.new
 [90m##[0m  diff.match
 [33m##[0m  diff.unmatch
 [33m##[0m  gui.cflow
 [33m##[0m  gui.dataoffset
 [30m##[0m  gui.background
 [37m##[0m  gui.alt_background
 [30m##[0m  gui.border
 [41m##[0m  wordhl
 [44m##[0m  linehl

 [91m##[0m  comment
 [97m##[0m  usrcmt
 [93m##[0m  args
 [91m##[0m  fname
 [96m##[0m  floc
 [96m##[0m  fline
 [96m##[0m  flag
 [96m##[0m  label
 [92m##[0m  help
 [96m##[0m  flow
 [94m##[0m  flow2
 [93m##[0m  prompt
 [92m##[0m  offset
 [97m##[0m  input
 [1;91m##[0m  invalid
 [97m##[0m  other
 [92m##[0m  b0x00
 [96m##[0m  b0x7f
 [91m##[0m  b0xff
 [93m##[0m  math
 [96m##[0m  bin
 [93m##[0m  btext
 [95m##[0m  push
 [1;95m##[0m  pop
 [103m##[0m  crypto
 [92m##[0m  jmp
 [92m##[0m  cjmp
 [1;92m##[0m  call
 [94m##[0m  nop
 [91m##[0m  ret
 [1;91m##[0m  trap
 [92m##[0m  ucall
 [92m##[0m  ujmp
 [95m##[0m  swi
 [96m##[0m  cmp
 [96m##[0m  reg
 [96m##[0m  creg
 [93m##[0m  num
 [97m##[0m  mov
 [97m##[0m  func_var
 [93m##[0m  func_var_type
 [96m##[0m  func_var_addr
 [40m##[0m  widget_bg
 [101m##[0m  widget_sel
 [90m##[0m  meta
 [92m##[0m  ai.read
 [94m##[0m  ai.write
 [91m##[0m  ai.exec
 [95m##[0m  ai.seq
 [93m##[0m  ai.ascii
 [94m##[0m  graph.box
 [92m##[0m  graph.box2
 [95m##[0m  graph.box3
 [90m##[0m  graph.box4
 [92m##[0m  graph.true
 [91m##[0m  graph.false
 [94m##[0m  graph.ujump
 [94m##[0m  graph.current
 [93m##[0m  graph.traced
 [35m##[0m  diff.unknown
 [31m##[0m  diff.new
 [90m##[0m  diff.match
 [33m##[0m  diff.unmatch
 [93m##[0m  gui.cflow
 [93m##[0m  gui.dataoffset
 [30m##[0m  gui.background
 [97m##[0m  gui.alt_background
 [30m##[0m  gui.border
 [101m##[0m  wordhl
 [44m##[0m  linehl
EOF
RUN

NAME=ec* and attributes
FILE==
CMDS=<<EOF
eco bright
ec*~pop
eco white2
ec*~bin
ec*~cjmp
ec*~comment
ec*~fname
EOF
EXPECT=<<EOF
ec pop rgb:ff00ff . bold
ec bin rgb:4f1900 . bold
ec cjmp rgb:376b4c . bold underline
ec comment rgb:001296 . italic
ec fname rgb:8d0004 . bold italic
EOF
RUN

NAME=ecHi
FILE==
CMDS=ecHi xxxx
EXPECT_ERR=<<EOF
ERROR: core: Unknown color xxxx
EOF
RUN

NAME=Test eco and eco. - list current theme
FILE==
CMDS=<<EOF
eco xvilka
eco.
EOF
EXPECT=<<EOF
xvilka
EOF
RUN

NAME=Test ecHw, ecHj and ecH- add and list highlight rules
FILE==
CMDS=<<EOF
ecHw eax blue
ecH
ecHj
ecH-*
ecH
EOF
EXPECT=<<EOF
ecHi rgb:00007f @ 0x00000000
[{"offset":0,"type":"ecHi","color":"#00007f"}]
EOF
RUN

NAME=Test ecp and ecn- load previous and next theme
FILE==
CMDS=<<EOF
eco sepia
eco.
ecp
eco.
ecn
eco.
EOF
EXPECT=<<EOF
sepia
rasta
sepia
EOF
RUN

NAME=Test ecoj- list themes in JSON
FILE==
CMDS=<<EOF
ecoj
EOF
EXPECT=<<EOF
["ayu","basic","behelit","bold","bright","cga","consonance","cutter","dark","darkda","default","defragger","durian","focus","gb","gentoo","lima","mars","matrix","monokai","nord","ogray","onedark","pink","rasta","sepia","smyck","solarized","tango","twilight","white","white2","xvilka","zenburn"]
EOF
RUN
