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
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+
3
+ describe ObservableModel do
4
+ class Person
5
+ attr_accessor :name
6
+ end
7
+
8
+ it "observes model" do
9
+ person = Person.new
10
+ person.name = "Marty"
11
+ expect(person.name).to eq("Marty")
12
+ person.extend ObservableModel
13
+ person.add_observer(:name, self)
14
+ person.name = "Julia"
15
+ expect(@observed_name).to eq("Julia")
16
+ expect(person.name).to eq("Julia")
17
+ end
18
+
19
+ def update(name)
20
+ @observed_name = name
21
+ end
22
+ end
@@ -0,0 +1,52 @@
1
+ require "spec_helper"
2
+
3
+ describe RWidget do
4
+ include Glimmer
5
+
6
+ before do
7
+ dsl :swt
8
+ end
9
+
10
+ it 'asyncronously executes' do
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
+ expect(@text.widget.getText).to eq("text2")
23
+ @target.widget.close
24
+ end
25
+
26
+ @target.open
27
+ end
28
+
29
+ it "syncronously executes" do
30
+ @target = shell {
31
+ @text = text {
32
+ text "text1"
33
+ }
34
+ }
35
+
36
+ @target.async_exec do
37
+ expect(@text.widget.getText).to eq("text2")
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,83 +1,83 @@
1
- require_relative "helper"
1
+ require "spec_helper"
2
2
 
3
- class GlimmerComboDataBindingTest < Test::Unit::TestCase
3
+ describe "Glimmer Combo Data Binding" do
4
4
  include Glimmer
5
5
 
6
6
  include_package 'org.eclipse.swt'
7
7
  include_package 'org.eclipse.swt.widgets'
8
8
  include_package 'org.eclipse.swt.layout'
9
9
 
10
- def setup
10
+ before do
11
11
  dsl :swt
12
12
  end
13
-
14
- def teardown
13
+
14
+ after do
15
15
  @target.display.dispose if @target.display
16
16
  end
17
-
18
- class Person
17
+
18
+ class Person
19
19
  attr_accessor :country, :country_options
20
-
20
+
21
21
  def initialize
22
22
  self.country_options=["", "Canada", "US", "Mexico"]
23
23
  end
24
24
  end
25
25
 
26
- def test_data_binding_selection_property
26
+ it "tests data binding selection property" do
27
27
  person = Person.new
28
-
28
+
29
29
  @target = shell {
30
30
  @combo = combo {
31
31
  selection bind(person, :country)
32
32
  }
33
33
  }
34
-
35
- assert_equal 4, @combo.widget.item_count
36
- assert_equal -1, @combo.widget.selection_index
37
- assert_equal "", @combo.widget.text
34
+
35
+ expect(@combo.widget.item_count).to eq(4)
36
+ expect(@combo.widget.selection_index).to eq(-1)
37
+ expect(@combo.widget.text).to eq("")
38
38
 
39
39
  person.country = "Canada"
40
40
 
41
- assert_equal "Canada", @combo.widget.text
41
+ expect(@combo.widget.text).to eq("Canada")
42
42
 
43
43
  person.country_options << "France"
44
-
45
- assert_equal 5, @combo.widget.item_count
46
-
44
+
45
+ expect(@combo.widget.item_count).to eq(5)
46
+
47
47
  person.country_options=["", "Canada", "US", "Mexico", "Russia", "France"]
48
-
49
- assert_equal 6, @combo.widget.item_count
50
-
48
+
49
+ expect(@combo.widget.item_count).to eq(6)
50
+
51
51
  person.country_options << "Italy"
52
52
  person.country_options << "Germany"
53
53
  person.country_options << "Australia"
54
-
55
- assert_equal 9, @combo.widget.item_count
56
-
57
- assert_equal "", @combo.widget.text
58
-
54
+
55
+ expect(@combo.widget.item_count).to eq(9)
56
+
57
+ expect(@combo.widget.text).to eq("")
58
+
59
59
  @combo.widget.select(2)
60
60
  @combo.widget.notifyListeners(SWT::Selection, nil)
61
- assert_equal "US", person.country
61
+ expect(person.country).to eq("US")
62
62
 
63
63
  person.country = "Canada"
64
64
 
65
- assert_equal "Canada", @combo.widget.text
65
+ expect(@combo.widget.text).to eq("Canada")
66
66
 
67
67
  person.country = "Russia"
68
-
69
- assert_equal "Russia", @combo.widget.text
68
+
69
+ expect(@combo.widget.text).to eq("Russia")
70
70
 
71
71
  person.country = ""
72
-
73
- assert_equal "", @combo.widget.text
72
+
73
+ expect(@combo.widget.text).to eq("")
74
74
 
75
75
  person.country = "Japan"
76
-
77
- assert_equal "Japan", @combo.widget.text
76
+
77
+ expect(@combo.widget.text).to eq("Japan")
78
78
  end
79
-
80
- def test_read_only_widget_data_binding_selection_property
79
+
80
+ it "tests read only widget data binding selection property" do
81
81
  person = Person.new
82
82
  person.country = "Canada"
83
83
 
@@ -87,45 +87,44 @@ class GlimmerComboDataBindingTest < Test::Unit::TestCase
87
87
  }
88
88
  }
89
89
 
90
- assert_equal 4, @combo.widget.item_count
91
- assert_equal "Canada", @combo.widget.text
90
+ expect(@combo.widget.item_count).to eq(4)
91
+ expect(@combo.widget.text).to eq("Canada")
92
92
 
93
93
  person.country_options << "France"
94
94
 
95
- assert_equal 5, @combo.widget.item_count
95
+ expect(@combo.widget.item_count).to eq(5)
96
96
 
97
97
  person.country_options=["", "Canada", "US", "Mexico", "Russia", "France"]
98
98
 
99
- assert_equal 6, @combo.widget.item_count
99
+ expect(@combo.widget.item_count).to eq(6)
100
100
 
101
101
  person.country_options << "Italy"
102
102
  person.country_options << "Germany"
103
103
  person.country_options << "Australia"
104
104
 
105
- assert_equal 9, @combo.widget.item_count
105
+ expect(@combo.widget.item_count).to eq(9)
106
106
 
107
- assert_equal "", @combo.widget.text
107
+ expect(@combo.widget.text).to eq("")
108
108
 
109
109
  @combo.widget.select(8)
110
110
  @combo.widget.notifyListeners(SWT::Selection, nil)
111
- assert_equal "Australia", person.country
111
+ expect(person.country).to eq("Australia")
112
112
 
113
113
  person.country = "Canada"
114
114
 
115
- assert_equal "Canada", @combo.widget.text
115
+ expect(@combo.widget.text).to eq("Canada")
116
116
 
117
117
  person.country = "Russia"
118
118
 
119
- assert_equal "Russia", @combo.widget.text
119
+ expect(@combo.widget.text).to eq("Russia")
120
120
 
121
121
  person.country = ""
122
122
 
123
- assert_equal "", @combo.widget.text
123
+ expect(@combo.widget.text).to eq("")
124
124
 
125
125
  person.country = "Japan"
126
126
 
127
- assert_equal "", @combo.widget.text
127
+ expect(@combo.widget.text).to eq("")
128
128
  end
129
-
130
- end
131
129
 
130
+ end
@@ -0,0 +1,30 @@
1
+ require "spec_helper"
2
+
3
+ describe "Glimmer Constant" do
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
+
10
+ before do
11
+ dsl :swt
12
+ end
13
+
14
+ after do
15
+ @target.display.dispose if @target.display
16
+ end
17
+
18
+ it "test shell with default layout and composite" do
19
+ @target = shell {
20
+ composite(:border, :no_focus) {
21
+ }
22
+ }
23
+
24
+ expect(@target.widget.children.size).to eq(1)
25
+ expect(@target.widget.children[0]).to be_instance_of(org.eclipse.swt.widgets.Composite)
26
+ composite_widget = @target.widget.children[0]
27
+ expect(composite_widget).to have_style(:no_focus)
28
+ expect(composite_widget).to have_style(:border)
29
+ end
30
+ end
@@ -1,28 +1,30 @@
1
- require_relative "helper"
1
+ require 'spec_helper'
2
2
 
3
- class GlimmerDataBindingTest < Test::Unit::TestCase
3
+ describe "Glimmer Data Binding" do
4
4
  include Glimmer
5
5
 
6
6
  include_package 'org.eclipse.swt'
7
7
  include_package 'org.eclipse.swt.widgets'
8
8
  include_package 'org.eclipse.swt.layout'
9
-
10
- def setup
9
+
10
+ SWT = org.eclipse.swt.SWT unless Object.const_defined?(:SWT)
11
+
12
+ before do
11
13
  dsl :swt
12
14
  end
13
15
 
14
- def teardown
16
+ after do
15
17
  @target.display.dispose if @target.display
16
18
  end
17
-
18
- class Person
19
+
20
+ class Person
19
21
  attr_accessor :name, :age, :adult
20
22
  end
21
-
22
- def test_text_widget_data_binding_string_property
23
+
24
+ it "tests text widget data binding string property" do
23
25
  person = Person.new
24
26
  person.name = "Bruce Ting"
25
-
27
+
26
28
  @target = shell {
27
29
  composite {
28
30
  @text = text {
@@ -30,20 +32,20 @@ class GlimmerDataBindingTest < Test::Unit::TestCase
30
32
  }
31
33
  }
32
34
  }
33
-
34
- assert_equal "Bruce Ting", @text.widget.getText
35
-
35
+
36
+ expect(@text.widget.getText).to eq("Bruce Ting")
37
+
36
38
  person.name = "Lady Butterfly"
37
- assert_equal "Lady Butterfly", @text.widget.getText
38
-
39
+ expect(@text.widget.getText).to eq("Lady Butterfly")
40
+
39
41
  @text.widget.setText("Allen Cork")
40
- assert_equal "Allen Cork", person.name
42
+ expect(person.name).to eq("Allen Cork")
41
43
  end
42
-
43
- def test_text_widget_data_binding_fixnum_property
44
+
45
+ it "tests text widget data binding fixnum property" do
44
46
  person = Person.new
45
47
  person.age = 15
46
-
48
+
47
49
  @target = shell {
48
50
  composite {
49
51
  @text = text {
@@ -51,20 +53,20 @@ class GlimmerDataBindingTest < Test::Unit::TestCase
51
53
  }
52
54
  }
53
55
  }
54
-
55
- assert_equal "15", @text.widget.getText
56
-
56
+
57
+ expect(@text.widget.getText).to eq("15")
58
+
57
59
  person.age = 27
58
- assert_equal "27", @text.widget.getText
59
-
60
+ expect(@text.widget.getText).to eq("27")
61
+
60
62
  @text.widget.setText("30")
61
- assert_equal 30, person.age
63
+ expect(person.age).to eq(30)
62
64
  end
63
-
64
- def test_label_widget_data_binding_string_property
65
+
66
+ it "tests label widget data binding string property" do
65
67
  person = Person.new
66
68
  person.name = "Bruce Ting"
67
-
69
+
68
70
  @target = shell {
69
71
  composite {
70
72
  @label = label {
@@ -72,17 +74,17 @@ class GlimmerDataBindingTest < Test::Unit::TestCase
72
74
  }
73
75
  }
74
76
  }
75
-
76
- assert_equal "Bruce Ting", @label.widget.getText
77
-
77
+
78
+ expect(@label.widget.getText).to eq("Bruce Ting")
79
+
78
80
  person.name = "Lady Butterfly"
79
- assert_equal "Lady Butterfly", @label.widget.getText
81
+ expect(@label.widget.getText).to eq("Lady Butterfly")
80
82
  end
81
-
82
- def test_checkbox_widget_data_binding_boolean_property
83
+
84
+ it "tests checkbox widget data binding boolean property" do
83
85
  person = Person.new
84
86
  person.adult = true
85
-
87
+
86
88
  @target = shell {
87
89
  composite {
88
90
  @check_box = button(:check) {
@@ -90,21 +92,21 @@ class GlimmerDataBindingTest < Test::Unit::TestCase
90
92
  }
91
93
  }
92
94
  }
93
-
94
- assert_equal true, @check_box.widget.getSelection
95
-
95
+
96
+ expect(@check_box.widget.getSelection).to eq(true)
97
+
96
98
  person.adult = false
97
- assert_equal false, @check_box.widget.getSelection
98
-
99
+ expect(@check_box.widget.getSelection).to eq(false)
100
+
99
101
  @check_box.widget.setSelection(true)
100
102
  @check_box.widget.notifyListeners(SWT::Selection, nil)
101
- assert_equal true, person.adult
103
+ expect(person.adult).to eq(true)
102
104
  end
103
-
104
- def test_radio_widget_data_binding_boolean_property
105
+
106
+ it "tests radio widget data binding boolean property" do
105
107
  person = Person.new
106
108
  person.adult = true
107
-
109
+
108
110
  @target = shell {
109
111
  composite {
110
112
  @radio = button(:radio) {
@@ -112,21 +114,21 @@ class GlimmerDataBindingTest < Test::Unit::TestCase
112
114
  }
113
115
  }
114
116
  }
115
-
116
- assert_equal true, @radio.widget.getSelection
117
-
117
+
118
+ expect(@radio.widget.getSelection).to eq(true)
119
+
118
120
  person.adult = false
119
- assert_equal false, @radio.widget.getSelection
120
-
121
+ expect(@radio.widget.getSelection).to eq(false)
122
+
121
123
  @radio.widget.setSelection(true)
122
124
  @radio.widget.notifyListeners(SWT::Selection, nil)
123
- assert_equal true, person.adult
125
+ expect(person.adult).to eq(true)
124
126
  end
125
-
126
- def test_spinner_widget_data_binding_fixnum_property
127
+
128
+ it "tests spinner widget data binding fixnum property" do
127
129
  person = Person.new
128
130
  person.age = 17
129
-
131
+
130
132
  @target = shell {
131
133
  composite {
132
134
  @spinner = spinner {
@@ -134,21 +136,21 @@ class GlimmerDataBindingTest < Test::Unit::TestCase
134
136
  }
135
137
  }
136
138
  }
137
-
138
- assert_equal 17, @spinner.widget.getSelection
139
-
139
+
140
+ expect(@spinner.widget.getSelection).to eq(17)
141
+
140
142
  person.age = 20
141
- assert_equal 20, @spinner.widget.getSelection
142
-
143
+ expect(@spinner.widget.getSelection).to eq(20)
144
+
143
145
  @spinner.widget.setSelection(34)
144
146
  @spinner.widget.notifyListeners(SWT::Selection, nil)
145
- assert_equal 34, person.age
147
+ expect(person.age).to eq(34)
146
148
  end
147
-
148
- def test_widget_data_binding_enablement
149
+
150
+ it "tests widget data binding enablement" do
149
151
  person = Person.new
150
152
  person.adult = true
151
-
153
+
152
154
  @target = shell {
153
155
  composite {
154
156
  @text = text {
@@ -156,17 +158,17 @@ class GlimmerDataBindingTest < Test::Unit::TestCase
156
158
  }
157
159
  }
158
160
  }
159
-
160
- assert_equal true, @text.widget.isEnabled
161
-
161
+
162
+ expect(@text.widget.isEnabled).to eq(true)
163
+
162
164
  person.adult = false
163
- assert_equal false, @text.widget.isEnabled
165
+ expect(@text.widget.isEnabled).to eq(false)
164
166
  end
165
-
166
- def test_multiple_widget_data_binding_enablement_to_same_model_property
167
+
168
+ it "tests multiple widget data binding enablement to same model property" do
167
169
  person = Person.new
168
170
  person.adult = true
169
-
171
+
170
172
  @target = shell {
171
173
  composite {
172
174
  @text = text {
@@ -180,23 +182,23 @@ class GlimmerDataBindingTest < Test::Unit::TestCase
180
182
  }
181
183
  }
182
184
  }
183
-
184
- assert_equal true, @text.widget.isEnabled
185
- assert_equal true, @text2.widget.isEnabled
186
- assert_equal true, @text3.widget.isEnabled
187
-
185
+
186
+ expect(@text.widget.isEnabled).to eq(true)
187
+ expect(@text2.widget.isEnabled).to eq(true)
188
+ expect(@text3.widget.isEnabled).to eq(true)
189
+
188
190
  person.adult = false
189
- assert_equal false, @text.widget.isEnabled
190
- assert_equal false, @text2.widget.isEnabled
191
- assert_equal false, @text3.widget.isEnabled
191
+ expect(@text.widget.isEnabled).to eq(false)
192
+ expect(@text2.widget.isEnabled).to eq(false)
193
+ expect(@text3.widget.isEnabled).to eq(false)
192
194
  end
193
-
194
- def test_multiple_widget_data_bindings_to_different_model_properties
195
+
196
+ it "tests multiple widget data bindings to different model properties" do
195
197
  person = Person.new
196
198
  person.name = "Nancy"
197
199
  person.age = 15
198
200
  person.adult = true
199
-
201
+
200
202
  @target = shell {
201
203
  composite {
202
204
  @label = label {
@@ -210,27 +212,26 @@ class GlimmerDataBindingTest < Test::Unit::TestCase
210
212
  }
211
213
  }
212
214
  }
213
-
214
- assert_equal "Nancy", @label.widget.getText
215
- assert_equal "15", @text.widget.getText
216
- assert_equal true, @check_box.widget.getSelection
217
-
215
+
216
+ expect(@label.widget.getText).to eq("Nancy")
217
+ expect(@text.widget.getText).to eq("15")
218
+ expect(@check_box.widget.getSelection).to eq(true)
219
+
218
220
  person.name = "Drew"
219
- assert_equal "Drew", @label.widget.getText
220
-
221
+ expect(@label.widget.getText).to eq("Drew")
222
+
221
223
  person.age = 27
222
- assert_equal "27", @text.widget.getText
224
+ expect(@text.widget.getText).to eq("27")
223
225
 
224
226
  person.adult = false
225
- assert_equal false, @check_box.widget.getSelection
226
-
227
+ expect(@check_box.widget.getSelection).to eq(false)
228
+
227
229
  @text.widget.setText("30")
228
- assert_equal 30, person.age
230
+ expect(person.age).to eq(30)
229
231
 
230
232
  @check_box.widget.setSelection(true)
231
233
  @check_box.widget.notifyListeners(SWT::Selection, nil)
232
- assert_equal true, person.adult
234
+ expect(person.adult).to eq(true)
233
235
  end
234
-
235
- end
236
236
 
237
+ end