termgui 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/termgui.rb +1 -1
- metadata +40 -107
- data/Gemfile +0 -14
- data/README.md +0 -321
- data/src/action.rb +0 -58
- data/src/box.rb +0 -90
- data/src/color.rb +0 -174
- data/src/cursor.rb +0 -69
- data/src/editor/editor_base.rb +0 -152
- data/src/editor/editor_base_handlers.rb +0 -116
- data/src/element.rb +0 -61
- data/src/element_bounds.rb +0 -111
- data/src/element_box.rb +0 -64
- data/src/element_render.rb +0 -102
- data/src/element_style.rb +0 -51
- data/src/emitter.rb +0 -102
- data/src/emitter_state.rb +0 -19
- data/src/enterable.rb +0 -93
- data/src/event.rb +0 -92
- data/src/focus.rb +0 -102
- data/src/geometry.rb +0 -53
- data/src/image.rb +0 -60
- data/src/input.rb +0 -85
- data/src/input_grab.rb +0 -17
- data/src/input_time.rb +0 -97
- data/src/key.rb +0 -114
- data/src/log.rb +0 -24
- data/src/node.rb +0 -117
- data/src/node_attributes.rb +0 -27
- data/src/node_visit.rb +0 -52
- data/src/renderer.rb +0 -119
- data/src/renderer_cursor.rb +0 -18
- data/src/renderer_draw.rb +0 -28
- data/src/renderer_image.rb +0 -31
- data/src/renderer_print.rb +0 -40
- data/src/screen.rb +0 -96
- data/src/screen_element.rb +0 -59
- data/src/screen_input.rb +0 -43
- data/src/screen_renderer.rb +0 -53
- data/src/style.rb +0 -149
- data/src/tco/colouring.rb +0 -248
- data/src/tco/config.rb +0 -57
- data/src/tco/palette.rb +0 -603
- data/src/tco/tco_termgui.rb +0 -30
- data/src/termgui.rb +0 -29
- data/src/util.rb +0 -110
- data/src/util/css.rb +0 -98
- data/src/util/css_query.rb +0 -23
- data/src/util/easing.rb +0 -364
- data/src/util/hash_object.rb +0 -131
- data/src/util/imagemagick.rb +0 -27
- data/src/util/justify.rb +0 -20
- data/src/util/unicode-categories.rb +0 -572
- data/src/util/wrap.rb +0 -102
- data/src/widget/button.rb +0 -33
- data/src/widget/checkbox.rb +0 -47
- data/src/widget/col.rb +0 -30
- data/src/widget/image.rb +0 -106
- data/src/widget/inline.rb +0 -40
- data/src/widget/input_number.rb +0 -73
- data/src/widget/inputbox.rb +0 -85
- data/src/widget/label.rb +0 -33
- data/src/widget/modal.rb +0 -69
- data/src/widget/row.rb +0 -26
- data/src/widget/selectbox.rb +0 -100
- data/src/widget/textarea.rb +0 -54
- data/src/xml/xml.rb +0 -80
- data/test/action_test.rb +0 -34
- data/test/box_test.rb +0 -15
- data/test/css_test.rb +0 -39
- data/test/editor/editor_base_test.rb +0 -201
- data/test/element_bounds_test.rb +0 -77
- data/test/element_box_test.rb +0 -8
- data/test/element_render_test.rb +0 -124
- data/test/element_style_test.rb +0 -85
- data/test/element_test.rb +0 -10
- data/test/emitter_test.rb +0 -108
- data/test/event_test.rb +0 -19
- data/test/focus_test.rb +0 -37
- data/test/geometry_test.rb +0 -12
- data/test/input_test.rb +0 -47
- data/test/key_test.rb +0 -14
- data/test/log_test.rb +0 -21
- data/test/node_test.rb +0 -105
- data/test/performance/performance1.rb +0 -48
- data/test/renderer_test.rb +0 -74
- data/test/renderer_test_rect.rb +0 -4
- data/test/screen_test.rb +0 -58
- data/test/style_test.rb +0 -18
- data/test/termgui_test.rb +0 -10
- data/test/test_all.rb +0 -30
- data/test/util_hash_object_test.rb +0 -93
- data/test/util_test.rb +0 -26
- data/test/widget/checkbox_test.rb +0 -99
- data/test/widget/col_test.rb +0 -87
- data/test/widget/inline_test.rb +0 -40
- data/test/widget/label_test.rb +0 -94
- data/test/widget/row_test.rb +0 -40
- data/test/wrap_test.rb +0 -11
- data/test/xml_test.rb +0 -77
@@ -1,201 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
include Test::Unit::Assertions
|
3
|
-
require_relative '../../src/editor/editor_base'
|
4
|
-
require_relative '../../src/log'
|
5
|
-
require_relative '../../src/screen'
|
6
|
-
require_relative '../../src/event'
|
7
|
-
|
8
|
-
class EditorBaseTest < Test::Unit::TestCase
|
9
|
-
def test_arrows_enter_cursor_backspace
|
10
|
-
screen = Screen.new_for_testing(width: 24, height: 6)
|
11
|
-
ed = EditorBase.new(text: 'hello world\nhow are you?', screen: screen, cursor_x: 0, cursor_y: 0)
|
12
|
-
ed.enable
|
13
|
-
screen.set_timeout do
|
14
|
-
assert_equal 'hello world\nhow are you?', ed.text
|
15
|
-
assert_equal [0, 0], [ed.cursor_x, ed.cursor_y]
|
16
|
-
|
17
|
-
screen.clear
|
18
|
-
ed.render
|
19
|
-
assert_equal(
|
20
|
-
'hello world \n' \
|
21
|
-
'how are you? \n' \
|
22
|
-
' \n' \
|
23
|
-
' \n' \
|
24
|
-
' \n' \
|
25
|
-
' \n', screen.renderer.print
|
26
|
-
)
|
27
|
-
assert_equal [0, 0], [ed.cursor_x, ed.cursor_y]
|
28
|
-
|
29
|
-
screen.event.handle_key(KeyEvent.new('right'))
|
30
|
-
assert_equal [1, 0], [ed.cursor_x, ed.cursor_y]
|
31
|
-
|
32
|
-
screen.event.handle_key(KeyEvent.new('enter'))
|
33
|
-
screen.clear
|
34
|
-
ed.render
|
35
|
-
assert_equal(
|
36
|
-
'h \n' \
|
37
|
-
'ello world \n' \
|
38
|
-
'how are you? \n' \
|
39
|
-
' \n' \
|
40
|
-
' \n' \
|
41
|
-
' \n', screen.renderer.print
|
42
|
-
)
|
43
|
-
|
44
|
-
screen.event.handle_key(KeyEvent.new('backspace'))
|
45
|
-
screen.clear
|
46
|
-
ed.render
|
47
|
-
assert_equal(
|
48
|
-
'hello world \n' \
|
49
|
-
'how are you? \n' \
|
50
|
-
' \n' \
|
51
|
-
' \n' \
|
52
|
-
' \n' \
|
53
|
-
' \n', screen.renderer.print
|
54
|
-
)
|
55
|
-
assert_equal [1, 0], [ed.cursor_x, ed.cursor_y]
|
56
|
-
|
57
|
-
6.times { screen.event.handle_key(KeyEvent.new('right')) }
|
58
|
-
screen.event.handle_key(KeyEvent.new('left'))
|
59
|
-
screen.event.handle_key(KeyEvent.new('down'))
|
60
|
-
assert_equal [6, 1], [ed.cursor_x, ed.cursor_y]
|
61
|
-
|
62
|
-
screen.event.handle_key(KeyEvent.new('enter'))
|
63
|
-
screen.clear
|
64
|
-
ed.render
|
65
|
-
assert_equal(
|
66
|
-
'hello world \n' \
|
67
|
-
'how ar \n' \
|
68
|
-
'e you? \n' \
|
69
|
-
' \n' \
|
70
|
-
' \n' \
|
71
|
-
' \n', screen.renderer.print
|
72
|
-
)
|
73
|
-
assert_equal [0, 2], [ed.cursor_x, ed.cursor_y]
|
74
|
-
|
75
|
-
screen.event.handle_key(KeyEvent.new('backspace'))
|
76
|
-
screen.clear
|
77
|
-
ed.render
|
78
|
-
assert_equal(
|
79
|
-
'hello world \n' \
|
80
|
-
'how are you? \n' \
|
81
|
-
' \n' \
|
82
|
-
' \n' \
|
83
|
-
' \n' \
|
84
|
-
' \n', screen.renderer.print
|
85
|
-
)
|
86
|
-
assert_equal [6, 1], [ed.cursor_x, ed.cursor_y]
|
87
|
-
|
88
|
-
6.times { screen.event.handle_key(KeyEvent.new('left')) }
|
89
|
-
assert_equal [0, 1], [ed.cursor_x, ed.cursor_y]
|
90
|
-
screen.event.handle_key(KeyEvent.new('backspace'))
|
91
|
-
screen.clear
|
92
|
-
ed.render
|
93
|
-
assert_equal(
|
94
|
-
'hello worldhow are you? \n' \
|
95
|
-
' \n' \
|
96
|
-
' \n' \
|
97
|
-
' \n' \
|
98
|
-
' \n' \
|
99
|
-
' \n', screen.renderer.print
|
100
|
-
)
|
101
|
-
assert_equal [11, 0], [ed.cursor_x, ed.cursor_y]
|
102
|
-
|
103
|
-
3.times { screen.event.handle_key(KeyEvent.new('space')) }
|
104
|
-
screen.clear
|
105
|
-
ed.render
|
106
|
-
assert_equal(
|
107
|
-
'hello world how are yo\n' \
|
108
|
-
' \n' \
|
109
|
-
' \n' \
|
110
|
-
' \n' \
|
111
|
-
' \n' \
|
112
|
-
' \n', screen.renderer.print
|
113
|
-
)
|
114
|
-
assert_equal [14, 0], [ed.cursor_x, ed.cursor_y]
|
115
|
-
|
116
|
-
screen.event.handle_key(KeyEvent.new('X'))
|
117
|
-
screen.event.handle_key(KeyEvent.new('enter'))
|
118
|
-
screen.clear
|
119
|
-
ed.render
|
120
|
-
assert_equal(
|
121
|
-
'hello world X \n' \
|
122
|
-
'how are you? \n' \
|
123
|
-
' \n' \
|
124
|
-
' \n' \
|
125
|
-
' \n' \
|
126
|
-
' \n', screen.renderer.print
|
127
|
-
)
|
128
|
-
assert_equal [0, 1], [ed.cursor_x, ed.cursor_y]
|
129
|
-
|
130
|
-
screen.destroy
|
131
|
-
end
|
132
|
-
screen.start
|
133
|
-
end
|
134
|
-
|
135
|
-
def test_coords
|
136
|
-
screen = Screen.new_for_testing(width: 24, height: 6)
|
137
|
-
ed = EditorBase.new(text: 'Welcome to this\nhumble editor', screen: screen, cursor_x: 0, cursor_y: 0, x: 5, y: 2)
|
138
|
-
ed.enable
|
139
|
-
screen.set_timeout do
|
140
|
-
screen.clear
|
141
|
-
ed.render
|
142
|
-
assert_equal(
|
143
|
-
' \n' \
|
144
|
-
' \n' \
|
145
|
-
' Welcome to this \n' \
|
146
|
-
' humble editor \n' \
|
147
|
-
' \n' \
|
148
|
-
' \n', screen.renderer.print
|
149
|
-
)
|
150
|
-
assert_equal [0, 0], [ed.cursor_x, ed.cursor_y]
|
151
|
-
screen.event.handle_key(KeyEvent.new('down'))
|
152
|
-
assert_equal [0, 1], [ed.cursor_x, ed.cursor_y]
|
153
|
-
screen.event.handle_key(KeyEvent.new('right'))
|
154
|
-
assert_equal [1, 1], [ed.cursor_x, ed.cursor_y]
|
155
|
-
screen.event.handle_key(KeyEvent.new('enter'))
|
156
|
-
screen.clear
|
157
|
-
ed.render
|
158
|
-
assert_equal(
|
159
|
-
' \n' \
|
160
|
-
' \n' \
|
161
|
-
' Welcome to this \n' \
|
162
|
-
' h \n' \
|
163
|
-
' umble editor \n' \
|
164
|
-
' \n', screen.renderer.print
|
165
|
-
)
|
166
|
-
assert_equal [0, 2], [ed.cursor_x, ed.cursor_y]
|
167
|
-
|
168
|
-
screen.event.handle_key(KeyEvent.new('backspace'))
|
169
|
-
assert_equal [1, 1], [ed.cursor_x, ed.cursor_y]
|
170
|
-
screen.clear
|
171
|
-
ed.render
|
172
|
-
assert_equal(
|
173
|
-
' \n' \
|
174
|
-
' \n' \
|
175
|
-
' Welcome to this \n' \
|
176
|
-
' humble editor \n' \
|
177
|
-
' \n' \
|
178
|
-
' \n', screen.renderer.print
|
179
|
-
)
|
180
|
-
assert_equal [1, 1], [ed.cursor_x, ed.cursor_y]
|
181
|
-
|
182
|
-
screen.event.handle_key(KeyEvent.new('A'))
|
183
|
-
screen.clear
|
184
|
-
ed.render
|
185
|
-
assert_equal(
|
186
|
-
' \n' \
|
187
|
-
' \n' \
|
188
|
-
' Welcome to this \n' \
|
189
|
-
' hAumble editor \n' \
|
190
|
-
' \n' \
|
191
|
-
' \n', screen.renderer.print
|
192
|
-
)
|
193
|
-
assert_equal [2, 1], [ed.cursor_x, ed.cursor_y]
|
194
|
-
|
195
|
-
# screen.renderer.print_dev_stdout
|
196
|
-
|
197
|
-
screen.destroy
|
198
|
-
end
|
199
|
-
screen.start
|
200
|
-
end
|
201
|
-
end
|
data/test/element_bounds_test.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
include Test::Unit::Assertions
|
3
|
-
require_relative '../src/element'
|
4
|
-
require_relative '../src/util'
|
5
|
-
require_relative '../src/style'
|
6
|
-
require_relative '../src/screen'
|
7
|
-
require_relative '../src/log'
|
8
|
-
|
9
|
-
class ElementBoundsTest < Test::Unit::TestCase
|
10
|
-
def test_abs
|
11
|
-
child2 = Element.new(x: 2, y: 1)
|
12
|
-
child1 = Element.new(x: 4, y: 3, children: [child2])
|
13
|
-
|
14
|
-
assert_equal 2, child2.x
|
15
|
-
assert_equal 1, child2.y
|
16
|
-
assert_equal 4, child1.x
|
17
|
-
assert_equal 3, child1.y
|
18
|
-
|
19
|
-
assert_equal 6, child2.abs_x
|
20
|
-
assert_equal 4, child2.abs_y
|
21
|
-
assert_equal 4, child1.abs_x
|
22
|
-
assert_equal 3, child1.abs_y
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_abs_percent
|
26
|
-
e = Element.new(x: 1, y: 2, width: 16, height: 12)
|
27
|
-
e1 = Element.new(x: 0.3, y: 0.2, width: 0.6, height: 0.6)
|
28
|
-
e.append_child(e1)
|
29
|
-
assert_equal 9, e1.abs_width
|
30
|
-
assert_equal 7, e1.abs_height
|
31
|
-
assert_equal 4, e1.abs_y
|
32
|
-
assert_equal 5, e1.abs_x
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_render_offset
|
36
|
-
screen = Screen.new_for_testing(width: 12, height: 7, silent: true)
|
37
|
-
screen.append_child Element.new(x: 7, y: 3, width: 7, height: 12, text: 'hello', ch: '·', style: { border: Border.new, padding: Bounds.new(top: 1, left: 2) })
|
38
|
-
screen.clear
|
39
|
-
screen.render
|
40
|
-
|
41
|
-
assert_equal(
|
42
|
-
' \n' \
|
43
|
-
' \n' \
|
44
|
-
' \n' \
|
45
|
-
' ┌────\n' \
|
46
|
-
' │····\n' \
|
47
|
-
' │··he\n' \
|
48
|
-
' │····\n', screen.renderer.print
|
49
|
-
)
|
50
|
-
|
51
|
-
screen.offset.left = 5
|
52
|
-
screen.clear
|
53
|
-
screen.render
|
54
|
-
assert_equal(
|
55
|
-
' \n' \
|
56
|
-
' \n' \
|
57
|
-
' \n' \
|
58
|
-
' ┌───────┐ \n' \
|
59
|
-
' │·······│ \n' \
|
60
|
-
' │··hello│ \n' \
|
61
|
-
' │·······│ \n', screen.renderer.print
|
62
|
-
)
|
63
|
-
|
64
|
-
screen.offset.top = 2
|
65
|
-
screen.clear
|
66
|
-
screen.render
|
67
|
-
assert_equal(
|
68
|
-
' \n' \
|
69
|
-
' ┌───────┐ \n' \
|
70
|
-
' │·······│ \n' \
|
71
|
-
' │··hello│ \n' \
|
72
|
-
' │·······│ \n' \
|
73
|
-
' │·······│ \n' \
|
74
|
-
' │·······│ \n', screen.renderer.print
|
75
|
-
)
|
76
|
-
end
|
77
|
-
end
|
data/test/element_box_test.rb
DELETED
data/test/element_render_test.rb
DELETED
@@ -1,124 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
include Test::Unit::Assertions
|
3
|
-
require_relative '../src/element'
|
4
|
-
require_relative '../src/util'
|
5
|
-
require_relative '../src/style'
|
6
|
-
require_relative '../src/screen'
|
7
|
-
require_relative '../src/log'
|
8
|
-
|
9
|
-
class ElementRenderTest < Test::Unit::TestCase
|
10
|
-
def test_render
|
11
|
-
child2 = Element.new(x: 2, y: 1, width: 2, height: 1, ch: '2')
|
12
|
-
child1 = Element.new(x: 4, y: 3, width: 10, height: 8, ch: '1', children: [child2])
|
13
|
-
node = Element.new(children: [child1])
|
14
|
-
screen = Screen.new_for_testing(width: 16, height: 11)
|
15
|
-
node.render screen
|
16
|
-
s3 =
|
17
|
-
' \\n' \
|
18
|
-
' \\n' \
|
19
|
-
' \\n' \
|
20
|
-
' 1111111111 \\n' \
|
21
|
-
' 1122111111 \\n' \
|
22
|
-
' 1111111111 \\n' \
|
23
|
-
' 1111111111 \\n' \
|
24
|
-
' 1111111111 \\n' \
|
25
|
-
' 1111111111 \\n' \
|
26
|
-
' 1111111111 \\n' \
|
27
|
-
' 1111111111 \\n' \
|
28
|
-
''
|
29
|
-
assert_equal s3, screen.renderer.print
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_render_text1
|
33
|
-
screen = Screen.new_for_testing(width: 12, height: 7)
|
34
|
-
e = Element.new(x: 1, y: 2, width: 6, height: 3, text: 'hello', ch: '·')
|
35
|
-
screen.append_child(e)
|
36
|
-
screen.render
|
37
|
-
assert_equal(
|
38
|
-
' \\n' \
|
39
|
-
' \\n' \
|
40
|
-
' hello· \\n' \
|
41
|
-
' ······ \\n' \
|
42
|
-
' ······ \\n' \
|
43
|
-
' \\n' \
|
44
|
-
' \\n' \
|
45
|
-
'', screen.print
|
46
|
-
)
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_render_text2
|
50
|
-
screen = Screen.new_for_testing(width: 12, height: 7)
|
51
|
-
e = Element.new(x: 1, y: 2, width: 9, height: 3, text: 'hello', ch: '·', style: { padding: Bounds.new(top: 1, left: 2) })
|
52
|
-
screen.append_child(e)
|
53
|
-
screen.render
|
54
|
-
assert_equal(
|
55
|
-
' \\n' \
|
56
|
-
' \\n' \
|
57
|
-
' ········· \\n' \
|
58
|
-
' ··hello·· \\n' \
|
59
|
-
' ········· \\n' \
|
60
|
-
' \\n' \
|
61
|
-
' \\n' \
|
62
|
-
'', screen.print
|
63
|
-
)
|
64
|
-
end
|
65
|
-
|
66
|
-
def test_render_border
|
67
|
-
screen = Screen.new_for_testing(width: 12, height: 9)
|
68
|
-
e = Element.new(x: 1, y: 2, width: 6, height: 3, text: 'hello', ch: '·')
|
69
|
-
e.style.border = Border.new
|
70
|
-
screen.append_child(e)
|
71
|
-
screen.render
|
72
|
-
assert_equal(
|
73
|
-
' \n' \
|
74
|
-
' \n' \
|
75
|
-
' ┌──────┐ \n' \
|
76
|
-
' │hello·│ \n' \
|
77
|
-
' │······│ \n' \
|
78
|
-
' │······│ \n' \
|
79
|
-
' └──────┘ \n' \
|
80
|
-
' \n' \
|
81
|
-
' \n' \
|
82
|
-
'', screen.print
|
83
|
-
)
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_render_text_nl
|
87
|
-
screen = Screen.new_for_testing(width: 12, height: 7)
|
88
|
-
e = Element.new(x: 1, y: 2, width: 6, height: 3, text: 'hello\nworld', ch: '·')
|
89
|
-
e.style.border = Border.new
|
90
|
-
screen.append_child(e)
|
91
|
-
screen.render
|
92
|
-
assert_equal(
|
93
|
-
' \n' \
|
94
|
-
' \n' \
|
95
|
-
' ┌──────┐ \n' \
|
96
|
-
' │hello·│ \n' \
|
97
|
-
' │world·│ \n' \
|
98
|
-
' │······│ \n' \
|
99
|
-
' └──────┘ \n' \
|
100
|
-
'', screen.print
|
101
|
-
)
|
102
|
-
end
|
103
|
-
|
104
|
-
def test_render_text_wrap
|
105
|
-
screen = Screen.new_for_testing(width: 16, height: 9)
|
106
|
-
e = Element.new(x: 1, y: 1, width: 12, height: 5, text: 'as df rf ty gh fg sdf ed', ch: '·')
|
107
|
-
e.style.border = Border.new
|
108
|
-
e.style.wrap = true
|
109
|
-
screen.append_child(e)
|
110
|
-
screen.render
|
111
|
-
assert_equal(
|
112
|
-
' \n' \
|
113
|
-
' ┌────────────┐ \n' \
|
114
|
-
' │as df rf ty·│ \n' \
|
115
|
-
' │gh fg sdf ed│ \n' \
|
116
|
-
' │············│ \n' \
|
117
|
-
' │············│ \n' \
|
118
|
-
' │············│ \n' \
|
119
|
-
' └────────────┘ \n' \
|
120
|
-
' \n' \
|
121
|
-
'', screen.print
|
122
|
-
)
|
123
|
-
end
|
124
|
-
end
|
data/test/element_style_test.rb
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
include Test::Unit::Assertions
|
3
|
-
require_relative '../src/element'
|
4
|
-
require_relative '../src/util'
|
5
|
-
require_relative '../src/style'
|
6
|
-
require_relative '../src/screen'
|
7
|
-
require_relative '../src/log'
|
8
|
-
|
9
|
-
class ElementStyleTest < Test::Unit::TestCase
|
10
|
-
def test_constructor_style
|
11
|
-
e = Element.new(
|
12
|
-
attributes: { focusable: true, focused: false },
|
13
|
-
style: {
|
14
|
-
focus: Style.new(bg: 'red')
|
15
|
-
}
|
16
|
-
)
|
17
|
-
assert_equal 'red', e.style.focus.bg
|
18
|
-
assert_equal true, e.get_attribute('focusable')
|
19
|
-
assert_equal true, e.get_attribute(:focusable)
|
20
|
-
assert_equal false, e.get_attribute(:focused)
|
21
|
-
assert_equal false, e.get_attribute('focused')
|
22
|
-
assert_equal nil, e.style.border
|
23
|
-
e.style.border = Border.new
|
24
|
-
assert_equal Border.new.style, e.style.border.style
|
25
|
-
# assert_equal ({ bg: nil,
|
26
|
-
# blink: nil,
|
27
|
-
# bold: nil,
|
28
|
-
# fg: nil,
|
29
|
-
# fraktur: nil,
|
30
|
-
# framed: nil,
|
31
|
-
# inverse: nil,
|
32
|
-
# style: 'single',
|
33
|
-
# underline: nil }), e.style.border.to_hash
|
34
|
-
# assert object_equal({ bg: nil,
|
35
|
-
# blink: nil,
|
36
|
-
# bold: nil,
|
37
|
-
# fg: nil,
|
38
|
-
# fraktur: nil,
|
39
|
-
# framed: nil,
|
40
|
-
# inverse: nil,
|
41
|
-
# style: 'single',
|
42
|
-
# underline: nil }, e.style.border.to_hash)
|
43
|
-
|
44
|
-
assert_equal(e.style.focus.bg, 'red')
|
45
|
-
end
|
46
|
-
|
47
|
-
# def test_style_no_focus_if_not_declared
|
48
|
-
# e = Element.new
|
49
|
-
# assert_equal nil, e.style.focus
|
50
|
-
# assert_equal nil, e.style.border
|
51
|
-
# end
|
52
|
-
|
53
|
-
def test_style
|
54
|
-
s = Style.new(border: Border.new(style: 'classic', fg: 'red'), fg: 'blue', bg: 'bright_magenta')
|
55
|
-
assert_equal 'classic', s.border.style
|
56
|
-
assert_equal 'red', s.border.fg
|
57
|
-
assert_equal 'blue', s.fg
|
58
|
-
|
59
|
-
e = Element.new
|
60
|
-
e.style = { fg: 'black', bg: 'white' }
|
61
|
-
assert_equal 'black', e.style.fg
|
62
|
-
assert_equal 'white', e.style.bg
|
63
|
-
|
64
|
-
e.style = s
|
65
|
-
assert_equal 'classic', e.style.border.style
|
66
|
-
assert_equal 'red', e.style.border.fg
|
67
|
-
assert_equal 'blue', e.style.fg
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_final_style
|
71
|
-
e = Element.new(
|
72
|
-
attributes: { focusable: true, focused: false },
|
73
|
-
style: {
|
74
|
-
bg: 'white',
|
75
|
-
focus: Style.new(bg: 'red')
|
76
|
-
}
|
77
|
-
)
|
78
|
-
assert_equal 'red', e.style.focus.bg
|
79
|
-
assert_equal 'white', e.final_style.bg
|
80
|
-
assert_equal false, e.get_attribute('focused')
|
81
|
-
e.set_attribute('focused', true)
|
82
|
-
assert_equal true, e.get_attribute('focused')
|
83
|
-
assert_equal 'red', e.final_style.bg
|
84
|
-
end
|
85
|
-
end
|