glimmer 0.1.11.470 → 0.2.0
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/README.markdown +104 -66
- data/bin/girb +1 -3
- data/bin/glimmer +1 -1
- data/lib/glimmer_application.rb +35 -76
- data/vendor/swt/linux/swt.jar +0 -0
- data/vendor/swt/mac/swt.jar +0 -0
- data/vendor/swt/windows/swt.jar +0 -0
- metadata +15 -55
- data/.coveralls.yml +0 -1
- data/.rspec +0 -2
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/Gemfile +0 -14
- data/RELEASE.md +0 -15
- data/Rakefile +0 -43
- data/TODO.md +0 -12
- data/VERSION +0 -1
- data/bin/girb_runner.rb +0 -1
- data/glimmer.gemspec +0 -160
- data/images/Bitter-sweet.jpg +0 -0
- data/samples/contactmanager/contact.rb +0 -9
- data/samples/contactmanager/contact_manager.rb +0 -71
- data/samples/contactmanager/contact_manager_presenter.rb +0 -24
- data/samples/contactmanager/contact_repository.rb +0 -24
- data/samples/hello_combo.rb +0 -36
- data/samples/hello_list_multi_selection.rb +0 -46
- data/samples/hello_list_single_selection.rb +0 -36
- data/samples/hello_tab.rb +0 -26
- data/samples/hello_world.rb +0 -10
- data/samples/hellocomputed/contact.rb +0 -19
- data/samples/hellocomputed/hello_computed.rb +0 -68
- data/samples/login.rb +0 -92
- data/samples/tictactoe/tic_tac_toe.rb +0 -64
- data/samples/tictactoe/tic_tac_toe_board.rb +0 -146
- data/spec/lib/command_handlers/models/observable_model_spec.rb +0 -22
- data/spec/lib/command_handlers/models/r_widget_spec.rb +0 -52
- data/spec/lib/glimmer__combo_data_binding__spec.rb +0 -130
- data/spec/lib/glimmer__constant__spec.rb +0 -30
- data/spec/lib/glimmer__data_binding__spec.rb +0 -404
- data/spec/lib/glimmer__list_data_binding__spec.rb +0 -224
- data/spec/lib/glimmer__listeners__spec.rb +0 -60
- data/spec/lib/glimmer__shine_data_binding__spec.rb +0 -89
- data/spec/lib/glimmer__tab_item__spec.rb +0 -55
- data/spec/lib/glimmer__table_data_binding__spec.rb +0 -121
- data/spec/lib/glimmer__tree_data_binding__spec.rb +0 -113
- data/spec/lib/glimmer_spec.rb +0 -251
- data/spec/lib/xml/glimmer_xml_spec.rb +0 -154
- data/spec/samples/contactmanager/contact_manager_presenter_spec.rb +0 -81
- data/spec/samples/tictactoe/tic_tac_toe_spec.rb +0 -263
- data/spec/spec_helper.rb +0 -124
@@ -1,22 +0,0 @@
|
|
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
|
@@ -1,52 +0,0 @@
|
|
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,130 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "Glimmer Combo Data Binding" 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
|
-
class Person
|
19
|
-
attr_accessor :country, :country_options
|
20
|
-
|
21
|
-
def initialize
|
22
|
-
self.country_options=["", "Canada", "US", "Mexico"]
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
it "tests data binding selection property" do
|
27
|
-
person = Person.new
|
28
|
-
|
29
|
-
@target = shell {
|
30
|
-
@combo = combo {
|
31
|
-
selection bind(person, :country)
|
32
|
-
}
|
33
|
-
}
|
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
|
-
|
39
|
-
person.country = "Canada"
|
40
|
-
|
41
|
-
expect(@combo.widget.text).to eq("Canada")
|
42
|
-
|
43
|
-
person.country_options << "France"
|
44
|
-
|
45
|
-
expect(@combo.widget.item_count).to eq(5)
|
46
|
-
|
47
|
-
person.country_options=["", "Canada", "US", "Mexico", "Russia", "France"]
|
48
|
-
|
49
|
-
expect(@combo.widget.item_count).to eq(6)
|
50
|
-
|
51
|
-
person.country_options << "Italy"
|
52
|
-
person.country_options << "Germany"
|
53
|
-
person.country_options << "Australia"
|
54
|
-
|
55
|
-
expect(@combo.widget.item_count).to eq(9)
|
56
|
-
|
57
|
-
expect(@combo.widget.text).to eq("")
|
58
|
-
|
59
|
-
@combo.widget.select(2)
|
60
|
-
@combo.widget.notifyListeners(SWT::Selection, nil)
|
61
|
-
expect(person.country).to eq("US")
|
62
|
-
|
63
|
-
person.country = "Canada"
|
64
|
-
|
65
|
-
expect(@combo.widget.text).to eq("Canada")
|
66
|
-
|
67
|
-
person.country = "Russia"
|
68
|
-
|
69
|
-
expect(@combo.widget.text).to eq("Russia")
|
70
|
-
|
71
|
-
person.country = ""
|
72
|
-
|
73
|
-
expect(@combo.widget.text).to eq("")
|
74
|
-
|
75
|
-
person.country = "Japan"
|
76
|
-
|
77
|
-
expect(@combo.widget.text).to eq("Japan")
|
78
|
-
end
|
79
|
-
|
80
|
-
it "tests read only widget data binding selection property" do
|
81
|
-
person = Person.new
|
82
|
-
person.country = "Canada"
|
83
|
-
|
84
|
-
@target = shell {
|
85
|
-
@combo = combo(:read_only) {
|
86
|
-
selection bind(person, :country)
|
87
|
-
}
|
88
|
-
}
|
89
|
-
|
90
|
-
expect(@combo.widget.item_count).to eq(4)
|
91
|
-
expect(@combo.widget.text).to eq("Canada")
|
92
|
-
|
93
|
-
person.country_options << "France"
|
94
|
-
|
95
|
-
expect(@combo.widget.item_count).to eq(5)
|
96
|
-
|
97
|
-
person.country_options=["", "Canada", "US", "Mexico", "Russia", "France"]
|
98
|
-
|
99
|
-
expect(@combo.widget.item_count).to eq(6)
|
100
|
-
|
101
|
-
person.country_options << "Italy"
|
102
|
-
person.country_options << "Germany"
|
103
|
-
person.country_options << "Australia"
|
104
|
-
|
105
|
-
expect(@combo.widget.item_count).to eq(9)
|
106
|
-
|
107
|
-
expect(@combo.widget.text).to eq("")
|
108
|
-
|
109
|
-
@combo.widget.select(8)
|
110
|
-
@combo.widget.notifyListeners(SWT::Selection, nil)
|
111
|
-
expect(person.country).to eq("Australia")
|
112
|
-
|
113
|
-
person.country = "Canada"
|
114
|
-
|
115
|
-
expect(@combo.widget.text).to eq("Canada")
|
116
|
-
|
117
|
-
person.country = "Russia"
|
118
|
-
|
119
|
-
expect(@combo.widget.text).to eq("Russia")
|
120
|
-
|
121
|
-
person.country = ""
|
122
|
-
|
123
|
-
expect(@combo.widget.text).to eq("")
|
124
|
-
|
125
|
-
person.country = "Japan"
|
126
|
-
|
127
|
-
expect(@combo.widget.text).to eq("")
|
128
|
-
end
|
129
|
-
|
130
|
-
end
|
@@ -1,30 +0,0 @@
|
|
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,404 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Glimmer Data Binding" 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
|
-
SWT = org.eclipse.swt.SWT unless Object.const_defined?(:SWT)
|
11
|
-
|
12
|
-
before do
|
13
|
-
dsl :swt
|
14
|
-
end
|
15
|
-
|
16
|
-
after do
|
17
|
-
@target.display.dispose if @target.display
|
18
|
-
end
|
19
|
-
|
20
|
-
class Person
|
21
|
-
attr_accessor :name, :age, :adult
|
22
|
-
end
|
23
|
-
|
24
|
-
class PersonWithComputedValues
|
25
|
-
attr_accessor :first_name, :last_name, :year_of_birth
|
26
|
-
def name
|
27
|
-
"#{last_name}, #{first_name}"
|
28
|
-
end
|
29
|
-
def age
|
30
|
-
Time.now.year - year_of_birth
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
class Address
|
35
|
-
attr_accessor :street, :city, :state, :zip
|
36
|
-
end
|
37
|
-
|
38
|
-
class PersonWithNestedProperties
|
39
|
-
attr_accessor :address1, :address2
|
40
|
-
end
|
41
|
-
|
42
|
-
it "tests text widget data binding string property" do
|
43
|
-
person = Person.new
|
44
|
-
person.name = "Bruce Ting"
|
45
|
-
|
46
|
-
@target = shell {
|
47
|
-
composite {
|
48
|
-
@text = text {
|
49
|
-
text bind(person, :name)
|
50
|
-
}
|
51
|
-
}
|
52
|
-
}
|
53
|
-
|
54
|
-
expect(@text.widget.getText).to eq("Bruce Ting")
|
55
|
-
|
56
|
-
person.name = "Lady Butterfly"
|
57
|
-
expect(@text.widget.getText).to eq("Lady Butterfly")
|
58
|
-
|
59
|
-
@text.widget.setText("Allen Cork")
|
60
|
-
expect(person.name).to eq("Allen Cork")
|
61
|
-
end
|
62
|
-
|
63
|
-
it "tests text widget data binding fixnum property" do
|
64
|
-
person = Person.new
|
65
|
-
person.age = 15
|
66
|
-
|
67
|
-
@target = shell {
|
68
|
-
composite {
|
69
|
-
@text = text {
|
70
|
-
text bind(person, :age, :fixnum)
|
71
|
-
}
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
|
-
expect(@text.widget.getText).to eq("15")
|
76
|
-
|
77
|
-
person.age = 27
|
78
|
-
expect(@text.widget.getText).to eq("27")
|
79
|
-
|
80
|
-
@text.widget.setText("30")
|
81
|
-
expect(person.age).to eq(30)
|
82
|
-
end
|
83
|
-
|
84
|
-
it "tests label widget data binding string property" do
|
85
|
-
person = Person.new
|
86
|
-
person.name = "Bruce Ting"
|
87
|
-
|
88
|
-
@target = shell {
|
89
|
-
composite {
|
90
|
-
@label = label {
|
91
|
-
text bind(person, :name)
|
92
|
-
}
|
93
|
-
}
|
94
|
-
}
|
95
|
-
|
96
|
-
expect(@label.widget.getText).to eq("Bruce Ting")
|
97
|
-
|
98
|
-
person.name = "Lady Butterfly"
|
99
|
-
expect(@label.widget.getText).to eq("Lady Butterfly")
|
100
|
-
end
|
101
|
-
|
102
|
-
it "tests label widget computed value data binding string property" do
|
103
|
-
person = PersonWithComputedValues.new
|
104
|
-
person.first_name = "Marty"
|
105
|
-
person.last_name = "McFly"
|
106
|
-
|
107
|
-
@target = shell {
|
108
|
-
composite {
|
109
|
-
@label = label {
|
110
|
-
text bind(person, :name, computed_by: [:first_name, :last_name])
|
111
|
-
}
|
112
|
-
}
|
113
|
-
}
|
114
|
-
|
115
|
-
expect(@label.widget.getText).to eq("McFly, Marty")
|
116
|
-
|
117
|
-
person.first_name = "Martin"
|
118
|
-
expect(@label.widget.getText).to eq("McFly, Martin")
|
119
|
-
|
120
|
-
person.last_name = "MacFly"
|
121
|
-
expect(@label.widget.getText).to eq("MacFly, Martin")
|
122
|
-
end
|
123
|
-
|
124
|
-
it "tests label widget computed value data binding fixnum property" do
|
125
|
-
person = PersonWithComputedValues.new
|
126
|
-
person.year_of_birth = Time.now.year - 40 #TODO TimeCop gem ?
|
127
|
-
|
128
|
-
@target = shell {
|
129
|
-
composite {
|
130
|
-
@label = label {
|
131
|
-
text bind(person, :age, :fixnum, computed_by: [:year_of_birth])
|
132
|
-
}
|
133
|
-
}
|
134
|
-
}
|
135
|
-
|
136
|
-
expect(@label.widget.getText).to eq("40")
|
137
|
-
|
138
|
-
person.year_of_birth = Time.now.year - 41
|
139
|
-
expect(@label.widget.getText).to eq("41")
|
140
|
-
end
|
141
|
-
|
142
|
-
it "tests checkbox widget data binding boolean property" do
|
143
|
-
person = Person.new
|
144
|
-
person.adult = true
|
145
|
-
|
146
|
-
@target = shell {
|
147
|
-
composite {
|
148
|
-
@check_box = button(:check) {
|
149
|
-
selection bind(person, :adult)
|
150
|
-
}
|
151
|
-
}
|
152
|
-
}
|
153
|
-
|
154
|
-
expect(@check_box.widget.getSelection).to eq(true)
|
155
|
-
|
156
|
-
person.adult = false
|
157
|
-
expect(@check_box.widget.getSelection).to eq(false)
|
158
|
-
|
159
|
-
@check_box.widget.setSelection(true)
|
160
|
-
@check_box.widget.notifyListeners(SWT::Selection, nil)
|
161
|
-
expect(person.adult).to eq(true)
|
162
|
-
end
|
163
|
-
|
164
|
-
it "tests radio widget data binding boolean property" do
|
165
|
-
person = Person.new
|
166
|
-
person.adult = true
|
167
|
-
|
168
|
-
@target = shell {
|
169
|
-
composite {
|
170
|
-
@radio = button(:radio) {
|
171
|
-
selection bind(person, :adult)
|
172
|
-
}
|
173
|
-
}
|
174
|
-
}
|
175
|
-
|
176
|
-
expect(@radio.widget.getSelection).to eq(true)
|
177
|
-
|
178
|
-
person.adult = false
|
179
|
-
expect(@radio.widget.getSelection).to eq(false)
|
180
|
-
|
181
|
-
@radio.widget.setSelection(true)
|
182
|
-
@radio.widget.notifyListeners(SWT::Selection, nil)
|
183
|
-
expect(person.adult).to eq(true)
|
184
|
-
end
|
185
|
-
|
186
|
-
it "tests spinner widget data binding fixnum property" do
|
187
|
-
person = Person.new
|
188
|
-
person.age = 17
|
189
|
-
|
190
|
-
@target = shell {
|
191
|
-
composite {
|
192
|
-
@spinner = spinner {
|
193
|
-
selection bind(person, :age)
|
194
|
-
}
|
195
|
-
}
|
196
|
-
}
|
197
|
-
|
198
|
-
expect(@spinner.widget.getSelection).to eq(17)
|
199
|
-
|
200
|
-
person.age = 20
|
201
|
-
expect(@spinner.widget.getSelection).to eq(20)
|
202
|
-
|
203
|
-
@spinner.widget.setSelection(34)
|
204
|
-
@spinner.widget.notifyListeners(SWT::Selection, nil)
|
205
|
-
expect(person.age).to eq(34)
|
206
|
-
end
|
207
|
-
|
208
|
-
it "tests widget data binding enablement" do
|
209
|
-
person = Person.new
|
210
|
-
person.adult = true
|
211
|
-
|
212
|
-
@target = shell {
|
213
|
-
composite {
|
214
|
-
@text = text {
|
215
|
-
enabled bind(person, :adult)
|
216
|
-
}
|
217
|
-
}
|
218
|
-
}
|
219
|
-
|
220
|
-
expect(@text.widget.isEnabled).to eq(true)
|
221
|
-
|
222
|
-
person.adult = false
|
223
|
-
expect(@text.widget.isEnabled).to eq(false)
|
224
|
-
end
|
225
|
-
|
226
|
-
it "tests multiple widget data binding enablement to same model property" do
|
227
|
-
person = Person.new
|
228
|
-
person.adult = true
|
229
|
-
|
230
|
-
@target = shell {
|
231
|
-
composite {
|
232
|
-
@text = text {
|
233
|
-
enabled bind(person, :adult)
|
234
|
-
}
|
235
|
-
@text2 = text {
|
236
|
-
enabled bind(person, :adult)
|
237
|
-
}
|
238
|
-
@text3 = text {
|
239
|
-
enabled bind(person, :adult)
|
240
|
-
}
|
241
|
-
}
|
242
|
-
}
|
243
|
-
|
244
|
-
expect(@text.widget.isEnabled).to eq(true)
|
245
|
-
expect(@text2.widget.isEnabled).to eq(true)
|
246
|
-
expect(@text3.widget.isEnabled).to eq(true)
|
247
|
-
|
248
|
-
person.adult = false
|
249
|
-
expect(@text.widget.isEnabled).to eq(false)
|
250
|
-
expect(@text2.widget.isEnabled).to eq(false)
|
251
|
-
expect(@text3.widget.isEnabled).to eq(false)
|
252
|
-
end
|
253
|
-
|
254
|
-
it "tests multiple widget data bindings to different model properties" do
|
255
|
-
person = Person.new
|
256
|
-
person.name = "Nancy"
|
257
|
-
person.age = 15
|
258
|
-
person.adult = true
|
259
|
-
|
260
|
-
@target = shell {
|
261
|
-
composite {
|
262
|
-
@label = label {
|
263
|
-
text bind(person, :name)
|
264
|
-
}
|
265
|
-
@text = text {
|
266
|
-
text bind(person, :age, :fixnum)
|
267
|
-
}
|
268
|
-
@check_box = button(:check) {
|
269
|
-
selection bind(person, :adult)
|
270
|
-
}
|
271
|
-
}
|
272
|
-
}
|
273
|
-
|
274
|
-
expect(@label.widget.getText).to eq("Nancy")
|
275
|
-
expect(@text.widget.getText).to eq("15")
|
276
|
-
expect(@check_box.widget.getSelection).to eq(true)
|
277
|
-
|
278
|
-
person.name = "Drew"
|
279
|
-
expect(@label.widget.getText).to eq("Drew")
|
280
|
-
|
281
|
-
person.age = 27
|
282
|
-
expect(@text.widget.getText).to eq("27")
|
283
|
-
|
284
|
-
person.adult = false
|
285
|
-
expect(@check_box.widget.getSelection).to eq(false)
|
286
|
-
|
287
|
-
@text.widget.setText("30")
|
288
|
-
expect(person.age).to eq(30)
|
289
|
-
|
290
|
-
@check_box.widget.setSelection(true)
|
291
|
-
@check_box.widget.notifyListeners(SWT::Selection, nil)
|
292
|
-
expect(person.adult).to eq(true)
|
293
|
-
end
|
294
|
-
|
295
|
-
context "nested data binding" do
|
296
|
-
|
297
|
-
it "tests text widget data binding to nested string property" do
|
298
|
-
person = PersonWithNestedProperties.new
|
299
|
-
person.address1 = Address.new
|
300
|
-
person.address2 = Address.new
|
301
|
-
|
302
|
-
person.address1.street = "20 Naper Ave"
|
303
|
-
person.address1.city = "Indianapolis"
|
304
|
-
person.address1.state = "IN"
|
305
|
-
person.address1.zip = "46183"
|
306
|
-
|
307
|
-
person.address2.street = "101 Confession St"
|
308
|
-
person.address2.city = "Denver"
|
309
|
-
person.address2.state = "CO"
|
310
|
-
person.address2.zip = "80014"
|
311
|
-
|
312
|
-
@target = shell {
|
313
|
-
composite {
|
314
|
-
@address1_street_text_widget = text {
|
315
|
-
text bind(person, "address1.street")
|
316
|
-
}
|
317
|
-
@address1_city_text_widget = text {
|
318
|
-
text bind(person, "address1.city")
|
319
|
-
}
|
320
|
-
@address1_state_text_widget = text {
|
321
|
-
text bind(person, "address1.state")
|
322
|
-
}
|
323
|
-
@address1_zip_text_widget = text {
|
324
|
-
text bind(person, "address1.zip")
|
325
|
-
}
|
326
|
-
}
|
327
|
-
composite {
|
328
|
-
@address2_street_text_widget = text {
|
329
|
-
text bind(person, "address2.street")
|
330
|
-
}
|
331
|
-
@address2_city_text_widget = text {
|
332
|
-
text bind(person, "address2.city")
|
333
|
-
}
|
334
|
-
@address2_state_text_widget = text {
|
335
|
-
text bind(person, "address2.state")
|
336
|
-
}
|
337
|
-
@address2_zip_text_widget = text {
|
338
|
-
text bind(person, "address2.zip")
|
339
|
-
}
|
340
|
-
}
|
341
|
-
}
|
342
|
-
|
343
|
-
expect(@address1_street_text_widget.widget.getText).to eq("20 Naper Ave")
|
344
|
-
expect(@address1_city_text_widget.widget.getText).to eq("Indianapolis")
|
345
|
-
expect(@address1_state_text_widget.widget.getText).to eq("IN")
|
346
|
-
expect(@address1_zip_text_widget.widget.getText).to eq("46183")
|
347
|
-
|
348
|
-
expect(@address2_street_text_widget.widget.getText).to eq("101 Confession St")
|
349
|
-
expect(@address2_city_text_widget.widget.getText).to eq("Denver")
|
350
|
-
expect(@address2_state_text_widget.widget.getText).to eq("CO")
|
351
|
-
expect(@address2_zip_text_widget.widget.getText).to eq("80014")
|
352
|
-
|
353
|
-
person.address1.street = "123 Main St"
|
354
|
-
person.address1.city = "Chicago"
|
355
|
-
person.address1.state = "IL"
|
356
|
-
person.address1.zip = "60654"
|
357
|
-
|
358
|
-
person.address2.street = "100 Park Ave"
|
359
|
-
person.address2.city = "San Diego"
|
360
|
-
person.address2.state = "CA"
|
361
|
-
person.address2.zip = "92014"
|
362
|
-
|
363
|
-
expect(@address1_street_text_widget.widget.getText).to eq("123 Main St")
|
364
|
-
expect(@address1_city_text_widget.widget.getText).to eq("Chicago")
|
365
|
-
expect(@address1_state_text_widget.widget.getText).to eq("IL")
|
366
|
-
expect(@address1_zip_text_widget.widget.getText).to eq("60654")
|
367
|
-
|
368
|
-
expect(@address2_street_text_widget.widget.getText).to eq("100 Park Ave")
|
369
|
-
expect(@address2_city_text_widget.widget.getText).to eq("San Diego")
|
370
|
-
expect(@address2_state_text_widget.widget.getText).to eq("CA")
|
371
|
-
expect(@address2_zip_text_widget.widget.getText).to eq("92014")
|
372
|
-
|
373
|
-
person.address2 = person.address1
|
374
|
-
|
375
|
-
expect(@address2_street_text_widget.widget.getText).to eq("123 Main St")
|
376
|
-
expect(@address2_city_text_widget.widget.getText).to eq("Chicago")
|
377
|
-
expect(@address2_state_text_widget.widget.getText).to eq("IL")
|
378
|
-
expect(@address2_zip_text_widget.widget.getText).to eq("60654")
|
379
|
-
|
380
|
-
person.address2 = Address.new
|
381
|
-
|
382
|
-
person.address2.street = "101 Confession St"
|
383
|
-
person.address2.city = "Denver"
|
384
|
-
person.address2.state = "CO"
|
385
|
-
person.address2.zip = "80014"
|
386
|
-
|
387
|
-
expect(@address2_street_text_widget.widget.getText).to eq("101 Confession St")
|
388
|
-
expect(@address2_city_text_widget.widget.getText).to eq("Denver")
|
389
|
-
expect(@address2_state_text_widget.widget.getText).to eq("CO")
|
390
|
-
expect(@address2_zip_text_widget.widget.getText).to eq("80014")
|
391
|
-
|
392
|
-
person.address2.street = "123 Main St"
|
393
|
-
person.address2.city = "Chicago"
|
394
|
-
person.address2.state = "IL"
|
395
|
-
person.address2.zip = "60654"
|
396
|
-
|
397
|
-
expect(@address2_street_text_widget.widget.getText).to eq("123 Main St")
|
398
|
-
expect(@address2_city_text_widget.widget.getText).to eq("Chicago")
|
399
|
-
expect(@address2_state_text_widget.widget.getText).to eq("IL")
|
400
|
-
expect(@address2_zip_text_widget.widget.getText).to eq("60654")
|
401
|
-
end
|
402
|
-
|
403
|
-
end
|
404
|
-
end
|