glimmer 0.1.5.470 → 0.1.8.470

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +2 -0
  5. data/README.markdown +7 -2
  6. data/Rakefile +7 -8
  7. data/TODO.md +1 -1
  8. data/VERSION +1 -1
  9. data/bin/girb +3 -0
  10. data/bin/girb_runner.rb +5 -0
  11. data/glimmer.gemspec +29 -19
  12. data/lib/glimmer_application.rb +1 -2
  13. data/lib/shine.rb +23 -21
  14. data/lib/xml_command_handlers/models/node.rb +11 -11
  15. data/lib/xml_command_handlers/models/xml_visitor.rb +12 -12
  16. data/samples/tictactoe/tic_tac_toe.rb +11 -11
  17. data/spec/lib/command_handlers/models/observable_model_spec.rb +22 -0
  18. data/spec/lib/command_handlers/models/r_widget_spec.rb +52 -0
  19. data/{test/glimmer_combo_data_binding_test.rb → spec/lib/glimmer__combo_data_binding__spec.rb} +48 -49
  20. data/spec/lib/glimmer__constant__spec.rb +30 -0
  21. data/{test/glimmer_data_binding_test.rb → spec/lib/glimmer__data_binding__spec.rb} +95 -94
  22. data/spec/lib/glimmer__list_data_binding__spec.rb +224 -0
  23. data/{test/glimmer_listeners_test.rb → spec/lib/glimmer__listeners__spec.rb} +18 -19
  24. data/spec/lib/glimmer__shine_data_binding__spec.rb +89 -0
  25. data/spec/lib/glimmer__tab_item__spec.rb +55 -0
  26. data/spec/lib/glimmer__table_data_binding__spec.rb +121 -0
  27. data/spec/lib/glimmer_spec.rb +251 -0
  28. data/spec/lib/xml/glimmer_xml_spec.rb +154 -0
  29. data/spec/samples/contactmanager/contact_manager_presenter_spec.rb +81 -0
  30. data/spec/samples/tictactoe/tic_tac_toe_spec.rb +263 -0
  31. data/spec/spec_helper.rb +123 -0
  32. metadata +50 -17
  33. data/test/glimmer_constant_test.rb +0 -30
  34. data/test/glimmer_list_data_binding_test.rb +0 -223
  35. data/test/glimmer_shine_data_binding_test.rb +0 -89
  36. data/test/glimmer_tab_item_test.rb +0 -61
  37. data/test/glimmer_table_data_binding_test.rb +0 -122
  38. data/test/glimmer_test.rb +0 -237
  39. data/test/helper.rb +0 -24
  40. data/test/observable_model_test.rb +0 -25
  41. data/test/r_widget_test.rb +0 -52
  42. data/test/samples/contactmanager/contact_manager_presenter_test.rb +0 -81
  43. data/test/samples/tictactoe/tic_tac_toe_test.rb +0 -262
  44. data/test/xml/glimmer_xml_test.rb +0 -163
data/test/glimmer_test.rb DELETED
@@ -1,237 +0,0 @@
1
- require_relative "helper"
2
-
3
- class GlimmerTest < Test::Unit::TestCase
4
- include Glimmer
5
-
6
- include_package 'org.eclipse.swt'
7
- include_package 'org.eclipse.swt.widgets'
8
- include_package 'org.eclipse.swt.layout'
9
- include_package 'org.eclipse.swt.graphics'
10
-
11
- def setup
12
- dsl :swt
13
- end
14
-
15
- def teardown
16
- @target.display.dispose if @target.display
17
- end
18
-
19
- def test_shell_with_default_layout
20
- @target = shell
21
-
22
- assert_not_nil @target
23
- assert_not_nil @target.widget
24
- assert_instance_of Shell, @target.widget
25
- assert_not_nil @target.widget.getLayout
26
- assert_instance_of FillLayout, @target.widget.getLayout
27
- end
28
-
29
- def test_shell_with_title_and_layout
30
- shell_layout = GridLayout.new
31
- @target = shell {
32
- text "Title"
33
- layout shell_layout
34
- }
35
-
36
- assert_equal "Title", @target.widget.getText
37
- assert_equal shell_layout, @target.widget.getLayout
38
- end
39
-
40
- def test_shell_with_bounds
41
- @target = shell {
42
- bounds 50, 75, 800, 600
43
- }
44
-
45
- assert_equal Rectangle.new(50, 75, 800, 600), @target.widget.getBounds
46
- end
47
-
48
- def test_shell_with_size
49
- GlimmerTest.class_eval("undef_method :size") #hack to remove existing size method in test class
50
-
51
- @target = shell {
52
- size 800, 600
53
- }
54
-
55
- assert_equal Point.new(800, 600), @target.widget.getSize
56
- end
57
-
58
- def test_shell_and_composite_with_default_style_and_layout
59
- @target = shell {
60
- composite
61
- }
62
-
63
- assert_equal 1, @target.widget.children.size
64
- assert_instance_of Composite, @target.widget.children[0]
65
- composite_widget = @target.widget.children[0]
66
- assert_has_style :none, composite_widget
67
- assert_instance_of GridLayout, composite_widget.getLayout
68
- grid_layout = composite_widget.getLayout
69
- assert_equal 1, grid_layout.numColumns
70
- assert_equal false, grid_layout.makeColumnsEqualWidth
71
- end
72
-
73
- def test_shell_and_group_with_default_style_and_layout
74
- @target = shell {
75
- group {
76
- text "Title"
77
- }
78
- }
79
-
80
- assert_equal 1, @target.widget.children.size
81
- assert_instance_of Group, @target.widget.children[0]
82
- group_widget = @target.widget.children[0]
83
- assert_has_style :none, group_widget
84
- assert_instance_of GridLayout, group_widget.getLayout
85
- grid_layout = group_widget.getLayout
86
- assert_equal 1, grid_layout.numColumns
87
- assert_equal false, grid_layout.makeColumnsEqualWidth
88
- assert_equal "Title", group_widget.getText
89
- end
90
-
91
- def test_shell_and_composite_with_style_and_layout
92
- composite_layout = RowLayout.new
93
- @target = shell {
94
- composite(:no_focus) {
95
- layout composite_layout
96
- }
97
- }
98
-
99
- assert_equal 1, @target.widget.children.size
100
- assert_instance_of Composite, @target.widget.children[0]
101
- composite_widget = @target.widget.children[0]
102
- assert_has_style :no_focus, composite_widget
103
- assert_equal composite_layout, composite_widget.getLayout
104
- end
105
-
106
- def test_shell_and_composite_and_text_with_default_style
107
- @target = shell {
108
- composite {
109
- text
110
- }
111
- }
112
-
113
- composite_widget = @target.widget.children[0]
114
- assert_equal 1, composite_widget.children.size
115
- assert_instance_of Text, composite_widget.children[0]
116
- text_widget = composite_widget.children[0]
117
- assert_has_style :border, text_widget
118
- end
119
-
120
- def test_shell_and_composite_with_custom_layout_and_text_with_default_style
121
- composite_layout = RowLayout.new
122
- @target = shell {
123
- composite {
124
- text
125
- layout composite_layout
126
- }
127
- }
128
-
129
- composite_widget = @target.widget.children[0]
130
- assert_equal composite_layout, composite_widget.getLayout
131
- assert_equal 1, composite_widget.children.size
132
- assert_instance_of Text, composite_widget.children[0]
133
- text_widget = composite_widget.children[0]
134
- assert_has_style :border, text_widget
135
- end
136
-
137
- def test_shell_and_composite_and_text_with_style_and_text
138
- @target = shell {
139
- composite {
140
- text(:password) {
141
- text "Hello"
142
- }
143
- }
144
- }
145
-
146
- composite_widget = @target.widget.children[0]
147
- assert_equal 1, composite_widget.children.size
148
- assert_instance_of Text, composite_widget.children[0]
149
- text_widget = composite_widget.children[0]
150
- assert_has_style :password, text_widget
151
- assert_equal "Hello", text_widget.getText
152
- end
153
-
154
- def test_shell_and_spinner_default
155
- @target = shell {
156
- @spinner = spinner {
157
- selection 55
158
- }
159
- }
160
-
161
- assert_instance_of Spinner, @spinner.widget
162
- assert_has_style :border, @spinner.widget
163
- assert_equal 55, @spinner.widget.getSelection
164
- end
165
-
166
- def test_shell_and_list_default
167
- @target = shell {
168
- @list = list {
169
- }
170
- }
171
-
172
- assert_instance_of List, @list.widget
173
- assert_has_style :border, @list.widget
174
- assert_has_style :single, @list.widget
175
- assert_has_style :v_scroll, @list.widget
176
- end
177
-
178
- def test_shell_and_button_default
179
- @target = shell {
180
- @button = button {
181
- text "Push Me"
182
- }
183
- }
184
-
185
- assert_instance_of Button, @button.widget
186
- assert_has_style :push, @button.widget
187
- assert_equal "Push Me", @button.widget.text
188
- end
189
-
190
- def test_shell_and_table_and_table_column_defaults
191
- @target = shell {
192
- @table = table {
193
- @table_column = table_column
194
- }
195
- }
196
-
197
- assert_has_style :border, @table.widget
198
- assert @table.widget.getHeaderVisible
199
- assert @table.widget.getLinesVisible
200
- assert_equal 80, @table_column.widget.getWidth
201
- end
202
-
203
- def test_shell_containing_undefined_command
204
- @target = shell {
205
- undefined_command(:undefined_parameter) {
206
- }
207
- }
208
-
209
- assert_not_nil @target
210
- assert_not_nil @target.widget
211
- assert_instance_of Shell, @target.widget
212
- assert_not_nil @target.widget.getLayout
213
- assert_instance_of FillLayout, @target.widget.getLayout
214
- end
215
-
216
-
217
- def test_add_contents
218
- @target = shell {
219
- }
220
-
221
- add_contents(@target) {
222
- composite {
223
- text(:password) {
224
- text "Hello"
225
- }
226
- }
227
- }
228
-
229
- composite_widget = @target.widget.children[0]
230
- assert_equal 1, composite_widget.children.size
231
- assert_instance_of Text, composite_widget.children[0]
232
- text_widget = composite_widget.children[0]
233
- assert_has_style :password, text_widget
234
- assert_equal "Hello", text_widget.getText
235
- end
236
-
237
- end
data/test/helper.rb DELETED
@@ -1,24 +0,0 @@
1
- require 'rubygems'
2
- require 'simplecov'
3
- SimpleCov.start
4
- require 'bundler'
5
- require 'test/unit'
6
- require 'puts_debuggerer'
7
-
8
- begin
9
- Bundler.setup(:default, :development)
10
- rescue Bundler::BundlerError => e
11
- $stderr.puts e.message
12
- $stderr.puts "Run `bundle install` to install missing gems"
13
- exit e.status_code
14
- end
15
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
16
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'samples'))
17
- $LOAD_PATH.unshift(File.dirname(__FILE__))
18
- require 'glimmer'
19
-
20
- class Test::Unit::TestCase
21
- def assert_has_style(style, widget)
22
- assert_equal style.swt_constant, widget.getStyle & style.swt_constant
23
- end
24
- end
@@ -1,25 +0,0 @@
1
- require_relative "helper"
2
-
3
- require_relative "../lib/command_handlers/models/observable_model"
4
-
5
- require "test/unit"
6
- class ObservableModelTest < Test::Unit::TestCase
7
- class Person
8
- attr_accessor :name
9
- end
10
-
11
- def test_observe_model
12
- person = Person.new
13
- person.name = "Marty"
14
- assert_equal "Marty", person.name
15
- person.extend ObservableModel
16
- person.add_observer(:name, self)
17
- person.name = "Julia"
18
- assert_equal "Julia", @observed_name
19
- assert_equal "Julia", person.name
20
- end
21
-
22
- def update(name)
23
- @observed_name = name
24
- end
25
- end
@@ -1,52 +0,0 @@
1
- require_relative "helper"
2
-
3
- class RWidgetTest < Test::Unit::TestCase
4
- include Glimmer
5
-
6
- def setup
7
- dsl :swt
8
- end
9
-
10
- def test_async_exec
11
- @target = shell {
12
- @text = text {
13
- text "text1"
14
- }
15
- }
16
-
17
- @target.async_exec do
18
- @text.widget.setText("text2")
19
- end
20
-
21
- @target.async_exec do
22
- assert_equal "text2", @text.widget.getText
23
- @target.widget.close
24
- end
25
-
26
- @target.open
27
- end
28
-
29
- def test_sync_exec
30
- @target = shell {
31
- @text = text {
32
- text "text1"
33
- }
34
- }
35
-
36
- @target.async_exec do
37
- assert_equal "text2", @text.widget.getText
38
- @text.widget.setText("text3")
39
- end
40
-
41
- @target.sync_exec do
42
- @text.widget.setText("text2")
43
- end
44
-
45
- @target.async_exec do
46
- @target.widget.close
47
- end
48
-
49
- @target.open
50
- end
51
-
52
- end
@@ -1,81 +0,0 @@
1
- require_relative "../../helper"
2
- require_relative "../../../samples/contactmanager/contact_manager_presenter"
3
-
4
- class ContactManagerPresenterTest < Test::Unit::TestCase
5
-
6
- def test_find_specify_all_fields_for_one_result
7
- contact_manager_presenter = ContactManagerPresenter.new
8
- contact_manager_presenter.first_name = "Frank"
9
- contact_manager_presenter.last_name = "Deelio"
10
- contact_manager_presenter.email = "frank@deelio.com"
11
- contact_manager_presenter.find
12
- contacts = contact_manager_presenter.results
13
- assert_not_nil contacts
14
- assert_equal 1, contacts.size
15
- contact = contacts[0]
16
- assert contact.is_a?(Contact)
17
- assert_equal "Frank", contact.first_name
18
- assert_equal "Deelio", contact.last_name
19
- assert_equal "frank@deelio.com", contact.email
20
- end
21
-
22
- def test_find_specify_one_field_for_two_results
23
- contact_manager_presenter = ContactManagerPresenter.new
24
- contact_manager_presenter.first_name = "Frank"
25
- contact_manager_presenter.find
26
- contacts = contact_manager_presenter.results
27
- assert_not_nil contacts
28
- assert_equal 2, contacts.size
29
- contact1 = contacts[0]
30
- contact2 = contacts[1]
31
- assert_equal "Frank", contact1.first_name
32
- assert_equal "Deelio", contact1.last_name
33
- assert_equal "frank@deelio.com", contact1.email
34
- assert_equal "franky", contact2.first_name
35
- assert_equal "miller", contact2.last_name
36
- assert_equal "frank@miller.com", contact2.email
37
- end
38
-
39
- def test_find_specify_all_fields_for_no_results
40
- contact_manager_presenter = ContactManagerPresenter.new
41
- contact_manager_presenter.first_name = "Julia"
42
- contact_manager_presenter.last_name = "Big"
43
- contact_manager_presenter.email = "julia@big.com"
44
- contact_manager_presenter.find
45
- contacts = contact_manager_presenter.results
46
- assert_not_nil contacts
47
- assert_equal 0, contacts.size
48
- end
49
-
50
- def test_find_specify_no_fields_for_all_results
51
- contact_manager_presenter = ContactManagerPresenter.new
52
- contact_manager_presenter.find
53
- contacts = contact_manager_presenter.results
54
- assert_not_nil contacts
55
- assert_equal 4, contacts.size
56
- assert_equal "Anne", contacts[0].first_name
57
- assert_equal "Beatrice", contacts[1].first_name
58
- assert_equal "Frank", contacts[2].first_name
59
- assert_equal "franky", contacts[3].first_name
60
- end
61
-
62
- def test_list_all_results
63
- contact_manager_presenter = ContactManagerPresenter.new
64
- contact_manager_presenter.list
65
- contacts = contact_manager_presenter.results
66
- assert_not_nil contacts
67
- assert_equal 4, contacts.size
68
- assert_equal "Anne", contacts[0].first_name
69
- assert_equal "Beatrice", contacts[1].first_name
70
- assert_equal "Frank", contacts[2].first_name
71
- assert_equal "franky", contacts[3].first_name
72
- end
73
-
74
- def test_initial_results
75
- contact_manager_presenter = ContactManagerPresenter.new
76
- contacts = contact_manager_presenter.results
77
- assert_not_nil contacts
78
- assert_equal 0, contacts.size
79
- end
80
-
81
- end
@@ -1,262 +0,0 @@
1
- require_relative "../../helper"
2
- require_relative "../../../samples/tictactoe/tic_tac_toe_board"
3
-
4
- class TicTacToeTest < Test::Unit::TestCase
5
-
6
- def setup
7
- @board = TicTacToeBoard.new
8
- end
9
-
10
- def test_mark_center_x
11
- assert_equal("", @board.box(2, 2).sign)
12
- @board.mark_box(2, 2)
13
- assert ! @board.box(2, 2).empty
14
- assert_equal("X", @board.box(2, 2).sign)
15
- assert @board.box(1, 1).empty
16
- assert @board.box(1, 2).empty
17
- assert @board.box(1, 3).empty
18
- assert @board.box(2, 1).empty
19
- assert @board.box(2, 3).empty
20
- assert @board.box(3, 1).empty
21
- assert @board.box(3, 2).empty
22
- assert @board.box(3, 3).empty
23
- end
24
-
25
- def test_mark_center_x_top_center_o_bottom_right_x
26
- @board.mark_box(2, 2)
27
- @board.mark_box(1, 2)
28
- @board.mark_box(3, 3)
29
- assert ! @board.box(2, 2).empty
30
- assert ! @board.box(1, 2).empty
31
- assert ! @board.box(3, 3).empty
32
- assert_equal("X", @board.box(2, 2).sign)
33
- assert_equal("O", @board.box(1, 2).sign)
34
- assert_equal("X", @board.box(3, 3).sign)
35
- end
36
-
37
- def test_top_center_not_marked
38
- assert @board.box(1, 2).empty
39
- end
40
-
41
- def test_top_right_marked
42
- @board.mark_box(1, 3)
43
- assert ! @board.box(1, 3).empty
44
- end
45
-
46
- def test_lower_right_marked
47
- @board.mark_box(3, 3)
48
- assert ! @board.box(3, 3).empty
49
- end
50
-
51
- def test_game_over_false
52
- assert ! @board.game_over?
53
- assert_equal "X", @board.current_sign
54
- assert_equal TicTacToeBoard::IN_PROGRESS, @board.game_status
55
- end
56
-
57
- def test_game_over_X_wins_top_row_across
58
- @board.mark_box(1, 1)
59
- assert_equal("X", @board.box(1, 1).sign)
60
- @board.mark_box(2, 1)
61
- assert_equal("O", @board.box(2, 1).sign)
62
- @board.mark_box(1, 2)
63
- assert_equal("X", @board.box(1, 2).sign)
64
- @board.mark_box(2, 2)
65
- assert_equal("O", @board.box(2, 2).sign)
66
- @board.mark_box(1, 3)
67
- assert_equal("X", @board.box(1, 3).sign)
68
- assert @board.game_over?
69
- assert_equal "X", @board.winning_sign
70
- assert_equal TicTacToeBoard::WIN, @board.game_status
71
- end
72
-
73
- def test_game_over_O_wins_top_row_across
74
- @board.mark_box(2, 1)
75
- @board.mark_box(1, 1)
76
- @board.mark_box(2, 2)
77
- @board.mark_box(1, 2)
78
- @board.mark_box(3, 3)
79
- @board.mark_box(1, 3)
80
- assert @board.game_over?
81
- assert_equal "O", @board.winning_sign
82
- end
83
-
84
- def test_game_over_X_wins_second_row_across
85
- @board.mark_box(2, 1)
86
- @board.mark_box(1, 1)
87
- @board.mark_box(2, 2)
88
- @board.mark_box(1, 2)
89
- @board.mark_box(2, 3)
90
- assert @board.game_over?
91
- assert_equal "X", @board.winning_sign
92
- end
93
-
94
- def test_game_over_O_wins_second_row_across
95
- @board.mark_box(1, 1)
96
- @board.mark_box(2, 1)
97
- @board.mark_box(3, 1)
98
- @board.mark_box(2, 2)
99
- @board.mark_box(1, 2)
100
- @board.mark_box(2, 3)
101
- assert @board.game_over?
102
- assert_equal "O", @board.winning_sign
103
- end
104
-
105
- def test_game_over_X_wins_third_row_across
106
- @board.mark_box(3, 1)
107
- @board.mark_box(1, 1)
108
- @board.mark_box(3, 2)
109
- @board.mark_box(1, 2)
110
- @board.mark_box(3, 3)
111
- assert @board.game_over?
112
- assert_equal "X", @board.winning_sign
113
- end
114
-
115
- def test_game_over_O_wins_third_row_across
116
- @board.mark_box(1, 1)
117
- @board.mark_box(3, 1)
118
- @board.mark_box(1, 2)
119
- @board.mark_box(3, 2)
120
- @board.mark_box(2, 3)
121
- @board.mark_box(3, 3)
122
- assert @board.game_over?
123
- end
124
-
125
- def test_game_over_X_wins_first_column_down
126
- @board.mark_box(1, 1)
127
- @board.mark_box(2, 2)
128
- @board.mark_box(2, 1)
129
- @board.mark_box(3, 2)
130
- @board.mark_box(3, 1)
131
- assert @board.game_over?
132
- assert_equal "X", @board.winning_sign
133
- end
134
-
135
- def test_game_over_O_wins_first_column_down
136
- @board.mark_box(2, 2)
137
- @board.mark_box(1, 1)
138
- @board.mark_box(3, 2)
139
- @board.mark_box(2, 1)
140
- @board.mark_box(3, 3)
141
- @board.mark_box(3, 1)
142
- assert @board.game_over?
143
- end
144
-
145
- def test_game_over_X_wins_second_column_down
146
- @board.mark_box(1, 2)
147
- @board.mark_box(2, 1)
148
- @board.mark_box(2, 2)
149
- @board.mark_box(3, 1)
150
- @board.mark_box(3, 2)
151
- assert @board.game_over?
152
- assert_equal "X", @board.winning_sign
153
- end
154
-
155
- def test_game_over_O_wins_second_column_down
156
- @board.mark_box(2, 1)
157
- @board.mark_box(1, 2)
158
- @board.mark_box(3, 1)
159
- @board.mark_box(2, 2)
160
- @board.mark_box(2, 3)
161
- @board.mark_box(3, 2)
162
- assert @board.game_over?
163
- assert_equal "O", @board.winning_sign
164
- end
165
-
166
- def test_game_over_X_wins_third_column_down
167
- @board.mark_box(1, 3)
168
- @board.mark_box(2, 1)
169
- @board.mark_box(2, 3)
170
- @board.mark_box(3, 1)
171
- @board.mark_box(3, 3)
172
- assert @board.game_over?
173
- assert_equal "X", @board.winning_sign
174
- end
175
-
176
- def test_game_over_O_wins_third_column_down
177
- @board.mark_box(2, 1)
178
- @board.mark_box(1, 3)
179
- @board.mark_box(3, 1)
180
- @board.mark_box(2, 3)
181
- @board.mark_box(3, 2)
182
- @board.mark_box(3, 3)
183
- assert @board.game_over?
184
- assert_equal "O", @board.winning_sign
185
- end
186
-
187
- def test_game_over_X_wins_top_left_to_bottom_right
188
- @board.mark_box(1, 1)
189
- @board.mark_box(2, 1)
190
- @board.mark_box(2, 2)
191
- @board.mark_box(3, 2)
192
- @board.mark_box(3, 3)
193
- assert_equal "X", @board.winning_sign
194
- assert @board.game_over?
195
- end
196
-
197
- def test_game_over_O_wins_top_left_to_bottom_right
198
- @board.mark_box(2, 1)
199
- @board.mark_box(1, 1)
200
- @board.mark_box(3, 2)
201
- @board.mark_box(2, 2)
202
- @board.mark_box(2, 3)
203
- @board.mark_box(3, 3)
204
- assert_equal "O", @board.winning_sign
205
- assert @board.game_over?
206
- end
207
-
208
- def test_game_over_X_wins_top_right_to_bottom_left
209
- @board.mark_box(1, 3)
210
- @board.mark_box(2, 1)
211
- @board.mark_box(2, 2)
212
- @board.mark_box(3, 2)
213
- @board.mark_box(3, 1)
214
- assert_equal "X", @board.winning_sign
215
- assert @board.game_over?
216
- end
217
-
218
- def test_game_over_O_wins_top_right_to_bottom_left
219
- @board.mark_box(2, 1)
220
- @board.mark_box(1, 3)
221
- @board.mark_box(3, 2)
222
- @board.mark_box(2, 2)
223
- @board.mark_box(1, 1)
224
- @board.mark_box(3, 1)
225
- assert_equal "O", @board.winning_sign
226
- assert @board.game_over?
227
- end
228
-
229
- # 1 2 3
230
- #1 x o x
231
- #2 o x x
232
- #3 o x o
233
- def test_game_over_draw
234
- @board.mark_box(1, 1)
235
- @board.mark_box(1, 2)
236
- @board.mark_box(1, 3)
237
- @board.mark_box(2, 1)
238
- @board.mark_box(2, 2)
239
- @board.mark_box(3, 1)
240
- @board.mark_box(2, 3)
241
- @board.mark_box(3, 3)
242
- assert ! @board.game_over?
243
- @board.mark_box(3, 2)
244
- assert @board.game_over?
245
- assert_equal TicTacToeBox::EMPTY, @board.winning_sign
246
- assert_equal TicTacToeBoard::DRAW, @board.game_status
247
- end
248
-
249
- def test_reset
250
- @board.mark_box(1, 3)
251
- @board.mark_box(2, 1)
252
- @board.mark_box(2, 2)
253
- @board.mark_box(3, 2)
254
- @board.mark_box(3, 1)
255
- @board.reset
256
- assert ! @board.game_over?
257
- assert_equal TicTacToeBox::EMPTY, @board.winning_sign
258
- assert_equal TicTacToeBoard::IN_PROGRESS, @board.game_status
259
- assert_equal "X", @board.current_sign
260
- end
261
-
262
- end