motion-kit 0.18.0 → 1.0.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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +39 -1
  3. data/lib/motion-kit-tvos/deprecated.rb +31 -0
  4. data/lib/motion-kit-tvos/dummy.rb +93 -0
  5. data/lib/motion-kit-tvos/helpers/constraints_helpers.rb +24 -0
  6. data/lib/motion-kit-tvos/helpers/layout_device.rb +36 -0
  7. data/lib/motion-kit-tvos/helpers/layout_orientation.rb +54 -0
  8. data/lib/motion-kit-tvos/helpers/uibutton_helpers.rb +52 -0
  9. data/lib/motion-kit-tvos/helpers/uiview_autoresizing_helpers.rb +79 -0
  10. data/lib/motion-kit-tvos/helpers/uiview_constraints_helpers.rb +36 -0
  11. data/lib/motion-kit-tvos/helpers/uiview_frame_helpers.rb +316 -0
  12. data/lib/motion-kit-tvos/helpers/uiview_gradient_helpers.rb +22 -0
  13. data/lib/motion-kit-tvos/helpers/uiview_helpers.rb +28 -0
  14. data/lib/motion-kit-tvos/ios_util.rb +24 -0
  15. data/lib/motion-kit.rb +2 -0
  16. data/lib/motion-kit/version.rb +1 -1
  17. data/spec/tvos/apply_styles_spec.rb +37 -0
  18. data/spec/tvos/autoresizing_helper_spec.rb +240 -0
  19. data/spec/tvos/calayer_spec.rb +23 -0
  20. data/spec/tvos/calculate_spec.rb +322 -0
  21. data/spec/tvos/calculator_spec.rb +31 -0
  22. data/spec/tvos/child_layouts_spec.rb +65 -0
  23. data/spec/tvos/constraints_helpers/active_constraints_spec.rb +25 -0
  24. data/spec/tvos/constraints_helpers/attribute_lookup_spec.rb +27 -0
  25. data/spec/tvos/constraints_helpers/axis_lookup_spec.rb +13 -0
  26. data/spec/tvos/constraints_helpers/center_constraints_spec.rb +421 -0
  27. data/spec/tvos/constraints_helpers/constraint_placeholder_spec.rb +72 -0
  28. data/spec/tvos/constraints_helpers/priority_lookup_spec.rb +19 -0
  29. data/spec/tvos/constraints_helpers/relationship_lookup_spec.rb +27 -0
  30. data/spec/tvos/constraints_helpers/relative_corners_spec.rb +276 -0
  31. data/spec/tvos/constraints_helpers/relative_location_spec.rb +113 -0
  32. data/spec/tvos/constraints_helpers/scale_constraints_spec.rb +62 -0
  33. data/spec/tvos/constraints_helpers/simple_constraints_spec.rb +2755 -0
  34. data/spec/tvos/constraints_helpers/size_constraints_spec.rb +423 -0
  35. data/spec/tvos/constraints_helpers/view_lookup_constraints_spec.rb +95 -0
  36. data/spec/tvos/create_layout_spec.rb +40 -0
  37. data/spec/tvos/custom_layout_spec.rb +13 -0
  38. data/spec/tvos/custom_root_layout_spec.rb +57 -0
  39. data/spec/tvos/deferred_spec.rb +89 -0
  40. data/spec/tvos/device_helpers_spec.rb +58 -0
  41. data/spec/tvos/frame_helper_spec.rb +1160 -0
  42. data/spec/tvos/layer_layout_spec.rb +36 -0
  43. data/spec/tvos/layout_extensions_spec.rb +70 -0
  44. data/spec/tvos/layout_spec.rb +57 -0
  45. data/spec/tvos/layout_state_spec.rb +27 -0
  46. data/spec/tvos/memory_leak_spec.rb +74 -0
  47. data/spec/tvos/motion_kit_id_spec.rb +15 -0
  48. data/spec/tvos/motionkit_util_spec.rb +15 -0
  49. data/spec/tvos/nearest_spec.rb +80 -0
  50. data/spec/tvos/objc_selectors_spec.rb +10 -0
  51. data/spec/tvos/orientation_helper_specs.rb +67 -0
  52. data/spec/tvos/parent_layout_spec.rb +19 -0
  53. data/spec/tvos/parent_spec.rb +45 -0
  54. data/spec/tvos/prev_next_spec.rb +153 -0
  55. data/spec/tvos/reapply_frame.rb +64 -0
  56. data/spec/tvos/relative_layout.spec.rb +31 -0
  57. data/spec/tvos/remove_layout_spec.rb +28 -0
  58. data/spec/tvos/root_layout_spec.rb +53 -0
  59. data/spec/tvos/setters_spec.rb +63 -0
  60. data/spec/tvos/uibutton_layout_spec.rb +37 -0
  61. data/spec/tvos/uitextfield_spec.rb +14 -0
  62. data/spec/tvos/view_attr_spec.rb +32 -0
  63. metadata +118 -8
@@ -0,0 +1,423 @@
1
+ describe 'Constraints - Size helpers' do
2
+
3
+ before do
4
+ @layout = MK::Layout.new
5
+ @constraint = nil
6
+ @view = UIView.new
7
+ @parent_view = UIView.new
8
+ @parent_view.addSubview(@view)
9
+ @another_view = nil
10
+ end
11
+
12
+ it 'should support `size 10`' do
13
+ @layout.context(@view) do
14
+ @layout.constraints do
15
+ @constraint = @layout.size(10)
16
+ end
17
+ end
18
+
19
+ @constraint.constant.should == [10, 10]
20
+ @constraint.relationship.should == :equal
21
+ @constraint.multiplier.should == [1, 1]
22
+ @constraint.relative_to.should == nil
23
+ @constraint.attribute.should == [:width, :height]
24
+ @constraint.attribute2.should == [:width, :height]
25
+ end
26
+ it 'should support `min_size 10`' do
27
+ @layout.context(UIView.new) do
28
+ @layout.constraints do
29
+ @constraint = @layout.min_size(10)
30
+ end
31
+ end
32
+
33
+ @constraint.constant.should == [10, 10]
34
+ @constraint.relationship.should == :gte
35
+ @constraint.multiplier.should == [1, 1]
36
+ @constraint.relative_to.should == nil
37
+ @constraint.attribute.should == [:width, :height]
38
+ @constraint.attribute2.should == [:width, :height]
39
+ end
40
+ it 'should support `max_size 10`' do
41
+ @layout.context(UIView.new) do
42
+ @layout.constraints do
43
+ @constraint = @layout.max_size(10)
44
+ end
45
+ end
46
+
47
+ @constraint.constant.should == [10, 10]
48
+ @constraint.relationship.should == :lte
49
+ @constraint.multiplier.should == [1, 1]
50
+ @constraint.relative_to.should == nil
51
+ @constraint.attribute.should == [:width, :height]
52
+ @constraint.attribute2.should == [:width, :height]
53
+ end
54
+ it 'should support `size [10, 10]`' do
55
+ @layout.context(UIView.new) do
56
+ @layout.constraints do
57
+ @constraint = @layout.size([10, 10])
58
+ end
59
+ end
60
+
61
+ @constraint.constant.should == [10, 10]
62
+ @constraint.relationship.should == :equal
63
+ @constraint.multiplier.should == [1, 1]
64
+ @constraint.relative_to.should == nil
65
+ @constraint.attribute.should == [:width, :height]
66
+ @constraint.attribute2.should == [:width, :height]
67
+ end
68
+ it 'should support `min_size [10, 10]`' do
69
+ @layout.context(UIView.new) do
70
+ @layout.constraints do
71
+ @constraint = @layout.min_size([10, 10])
72
+ end
73
+ end
74
+
75
+ @constraint.constant.should == [10, 10]
76
+ @constraint.relationship.should == :gte
77
+ @constraint.multiplier.should == [1, 1]
78
+ @constraint.relative_to.should == nil
79
+ @constraint.attribute.should == [:width, :height]
80
+ @constraint.attribute2.should == [:width, :height]
81
+ end
82
+ it 'should support `max_size [10, 10]`' do
83
+ @layout.context(UIView.new) do
84
+ @layout.constraints do
85
+ @constraint = @layout.max_size([10, 10])
86
+ end
87
+ end
88
+
89
+ @constraint.constant.should == [10, 10]
90
+ @constraint.relationship.should == :lte
91
+ @constraint.multiplier.should == [1, 1]
92
+ @constraint.relative_to.should == nil
93
+ @constraint.attribute.should == [:width, :height]
94
+ @constraint.attribute2.should == [:width, :height]
95
+ end
96
+ it 'should support `size w: 10, h: 10`' do
97
+ @layout.context(UIView.new) do
98
+ @layout.constraints do
99
+ @constraint = @layout.size(w: 10, h: 10)
100
+ end
101
+ end
102
+
103
+ @constraint.constant.should == [10, 10]
104
+ @constraint.relationship.should == :equal
105
+ @constraint.multiplier.should == [1, 1]
106
+ @constraint.relative_to.should == nil
107
+ @constraint.attribute.should == [:width, :height]
108
+ @constraint.attribute2.should == [:width, :height]
109
+ end
110
+ it 'should support `min_size w: 10, h: 10`' do
111
+ @layout.context(UIView.new) do
112
+ @layout.constraints do
113
+ @constraint = @layout.min_size(w: 10, h: 10)
114
+ end
115
+ end
116
+
117
+ @constraint.constant.should == [10, 10]
118
+ @constraint.relationship.should == :gte
119
+ @constraint.multiplier.should == [1, 1]
120
+ @constraint.relative_to.should == nil
121
+ @constraint.attribute.should == [:width, :height]
122
+ @constraint.attribute2.should == [:width, :height]
123
+ end
124
+ it 'should support `max_size w: 10, h: 10`' do
125
+ @layout.context(UIView.new) do
126
+ @layout.constraints do
127
+ @constraint = @layout.max_size(w: 10, h: 10)
128
+ end
129
+ end
130
+
131
+ @constraint.constant.should == [10, 10]
132
+ @constraint.relationship.should == :lte
133
+ @constraint.multiplier.should == [1, 1]
134
+ @constraint.relative_to.should == nil
135
+ @constraint.attribute.should == [:width, :height]
136
+ @constraint.attribute2.should == [:width, :height]
137
+ end
138
+ it 'should support `size.equals(:another_view[, :size])`' do
139
+ @layout.context(UIView.new) do
140
+ @layout.constraints do
141
+ @constraint = @layout.size.equals(:another_view)
142
+ end
143
+ end
144
+
145
+ @constraint.constant.should == [0, 0]
146
+ @constraint.relationship.should == :equal
147
+ @constraint.multiplier.should == [1, 1]
148
+ @constraint.relative_to.should == :another_view
149
+ @constraint.attribute.should == [:width, :height]
150
+ @constraint.attribute2.should == [:width, :height]
151
+ end
152
+ it 'should support `size.equals(:another_view).plus(10).plus([5, 10])`' do
153
+ @layout.context(UIView.new) do
154
+ @layout.constraints do
155
+ @constraint = @layout.size.equals(:another_view).plus(10).plus([5, 10])
156
+ end
157
+ end
158
+
159
+ @constraint.constant.should == [15, 20]
160
+ @constraint.relationship.should == :equal
161
+ @constraint.multiplier.should == [1, 1]
162
+ @constraint.relative_to.should == :another_view
163
+ @constraint.attribute.should == [:width, :height]
164
+ @constraint.attribute2.should == [:width, :height]
165
+ end
166
+ it 'should support `min_size.equals(:another_view[, :size])`' do
167
+ @layout.context(UIView.new) do
168
+ @layout.constraints do
169
+ @constraint = @layout.min_size.equals(:another_view)
170
+ end
171
+ end
172
+
173
+ @constraint.constant.should == [0, 0]
174
+ @constraint.relationship.should == :gte
175
+ @constraint.multiplier.should == [1, 1]
176
+ @constraint.relative_to.should == :another_view
177
+ @constraint.attribute.should == [:width, :height]
178
+ @constraint.attribute2.should == [:width, :height]
179
+ end
180
+ it 'should support `max_size.equals(:another_view[, :size])`' do
181
+ @layout.context(UIView.new) do
182
+ @layout.constraints do
183
+ @constraint = @layout.max_size.equals(:another_view)
184
+ end
185
+ end
186
+
187
+ @constraint.constant.should == [0, 0]
188
+ @constraint.relationship.should == :lte
189
+ @constraint.multiplier.should == [1, 1]
190
+ @constraint.relative_to.should == :another_view
191
+ @constraint.attribute.should == [:width, :height]
192
+ @constraint.attribute2.should == [:width, :height]
193
+ end
194
+ it 'should support `size.equals(:another_view).plus(10)`' do
195
+ @layout.context(UIView.new) do
196
+ @layout.constraints do
197
+ @constraint = @layout.size.equals(:another_view).plus(10)
198
+ end
199
+ end
200
+
201
+ @constraint.constant.should == [10, 10]
202
+ @constraint.relationship.should == :equal
203
+ @constraint.multiplier.should == [1, 1]
204
+ @constraint.relative_to.should == :another_view
205
+ @constraint.attribute.should == [:width, :height]
206
+ @constraint.attribute2.should == [:width, :height]
207
+ end
208
+ it 'should support `min_size.equals(:another_view).plus(10)`' do
209
+ @layout.context(UIView.new) do
210
+ @layout.constraints do
211
+ @constraint = @layout.min_size.equals(:another_view).plus(10)
212
+ end
213
+ end
214
+
215
+ @constraint.constant.should == [10, 10]
216
+ @constraint.relationship.should == :gte
217
+ @constraint.multiplier.should == [1, 1]
218
+ @constraint.relative_to.should == :another_view
219
+ @constraint.attribute.should == [:width, :height]
220
+ @constraint.attribute2.should == [:width, :height]
221
+ end
222
+ it 'should support `max_size.equals(:another_view).plus(10)`' do
223
+ @layout.context(UIView.new) do
224
+ @layout.constraints do
225
+ @constraint = @layout.max_size.equals(:another_view).plus(10)
226
+ end
227
+ end
228
+
229
+ @constraint.constant.should == [10, 10]
230
+ @constraint.relationship.should == :lte
231
+ @constraint.multiplier.should == [1, 1]
232
+ @constraint.relative_to.should == :another_view
233
+ @constraint.attribute.should == [:width, :height]
234
+ @constraint.attribute2.should == [:width, :height]
235
+ end
236
+ it 'should support `size.equals(:another_view).plus([10, 10])`' do
237
+ @layout.context(UIView.new) do
238
+ @layout.constraints do
239
+ @constraint = @layout.size.equals(:another_view).plus([10, 10])
240
+ end
241
+ end
242
+
243
+ @constraint.constant.should == [10, 10]
244
+ @constraint.relationship.should == :equal
245
+ @constraint.multiplier.should == [1, 1]
246
+ @constraint.relative_to.should == :another_view
247
+ @constraint.attribute.should == [:width, :height]
248
+ @constraint.attribute2.should == [:width, :height]
249
+ end
250
+ it 'should support `min_size.equals(:another_view).plus([10, 10])`' do
251
+ @layout.context(UIView.new) do
252
+ @layout.constraints do
253
+ @constraint = @layout.min_size.equals(:another_view).plus([10, 10])
254
+ end
255
+ end
256
+
257
+ @constraint.constant.should == [10, 10]
258
+ @constraint.relationship.should == :gte
259
+ @constraint.multiplier.should == [1, 1]
260
+ @constraint.relative_to.should == :another_view
261
+ @constraint.attribute.should == [:width, :height]
262
+ @constraint.attribute2.should == [:width, :height]
263
+ end
264
+ it 'should support `max_size.equals(:another_view).plus(w: 10, h: 10)`' do
265
+ @layout.context(UIView.new) do
266
+ @layout.constraints do
267
+ @constraint = @layout.max_size.equals(:another_view).plus(w: 10, h: 10)
268
+ end
269
+ end
270
+
271
+ @constraint.constant.should == [10, 10]
272
+ @constraint.relationship.should == :lte
273
+ @constraint.multiplier.should == [1, 1]
274
+ @constraint.relative_to.should == :another_view
275
+ @constraint.attribute.should == [:width, :height]
276
+ @constraint.attribute2.should == [:width, :height]
277
+ end
278
+ it 'should support `size.equals(:another_view).times(2).plus(10)`' do
279
+ @layout.context(UIView.new) do
280
+ @layout.constraints do
281
+ @constraint = @layout.size.equals(:another_view).times(2).plus(10)
282
+ end
283
+ end
284
+
285
+ @constraint.constant.should == [10, 10]
286
+ @constraint.relationship.should == :equal
287
+ @constraint.multiplier.should == [2, 2]
288
+ @constraint.relative_to.should == :another_view
289
+ @constraint.attribute.should == [:width, :height]
290
+ @constraint.attribute2.should == [:width, :height]
291
+ end
292
+ it 'should support `min_size.equals(:another_view).times(2).plus(10)`' do
293
+ @layout.context(UIView.new) do
294
+ @layout.constraints do
295
+ @constraint = @layout.min_size.equals(:another_view).times(2).plus(10)
296
+ end
297
+ end
298
+
299
+ @constraint.constant.should == [10, 10]
300
+ @constraint.relationship.should == :gte
301
+ @constraint.multiplier.should == [2, 2]
302
+ @constraint.relative_to.should == :another_view
303
+ @constraint.attribute.should == [:width, :height]
304
+ @constraint.attribute2.should == [:width, :height]
305
+ end
306
+ it 'should support `max_size.equals(:another_view).times(2).plus(10)`' do
307
+ @layout.context(UIView.new) do
308
+ @layout.constraints do
309
+ @constraint = @layout.max_size.equals(:another_view).times(2).plus(10)
310
+ end
311
+ end
312
+
313
+ @constraint.constant.should == [10, 10]
314
+ @constraint.relationship.should == :lte
315
+ @constraint.multiplier.should == [2, 2]
316
+ @constraint.relative_to.should == :another_view
317
+ @constraint.attribute.should == [:width, :height]
318
+ @constraint.attribute2.should == [:width, :height]
319
+ end
320
+ it 'should support `max_size("50%")`' do
321
+ @layout.context(@parent_view) do
322
+ @view = @layout.add(UIView.new) do
323
+ @layout.constraints do
324
+ @constraint = @layout.max_size('50%')
325
+ end
326
+ end
327
+ end
328
+
329
+ @constraint.constant.should == [0, 0]
330
+ @constraint.relationship.should == :lte
331
+ @constraint.multiplier.should == [0.5, 0.5]
332
+ @constraint.relative_to.should == nil
333
+ @constraint.attribute.should == [:width, :height]
334
+ @constraint.attribute2.should == [:width, :height]
335
+ end
336
+ it 'should support `max_size("50% + 1").of(:another_view)`' do
337
+ @layout.context(@parent_view) do
338
+ @view = @layout.add(UIView.new) do
339
+ @layout.constraints do
340
+ @constraint = @layout.max_size('50% + 1').of(:another_view)
341
+ end
342
+ end
343
+ end
344
+
345
+ @constraint.constant.should == [1, 1]
346
+ @constraint.relationship.should == :lte
347
+ @constraint.multiplier.should == [0.5, 0.5]
348
+ @constraint.relative_to.should == :another_view
349
+ @constraint.attribute.should == [:width, :height]
350
+ @constraint.attribute2.should == [:width, :height]
351
+ end
352
+ it 'should support `size.equals(:another_view).times([2, 2]).plus(10)`' do
353
+ @layout.context(UIView.new) do
354
+ @layout.constraints do
355
+ @constraint = @layout.size.equals(:another_view).times([2, 2]).plus(10)
356
+ end
357
+ end
358
+
359
+ @constraint.constant.should == [10, 10]
360
+ @constraint.relationship.should == :equal
361
+ @constraint.multiplier.should == [2, 2]
362
+ @constraint.relative_to.should == :another_view
363
+ @constraint.attribute.should == [:width, :height]
364
+ @constraint.attribute2.should == [:width, :height]
365
+ end
366
+ it 'should support `min_size.equals(:another_view).times([2, 2]).plus(10)`' do
367
+ @layout.context(UIView.new) do
368
+ @layout.constraints do
369
+ @constraint = @layout.min_size.equals(:another_view).times([2, 2]).plus(10)
370
+ end
371
+ end
372
+
373
+ @constraint.constant.should == [10, 10]
374
+ @constraint.relationship.should == :gte
375
+ @constraint.multiplier.should == [2, 2]
376
+ @constraint.relative_to.should == :another_view
377
+ @constraint.attribute.should == [:width, :height]
378
+ @constraint.attribute2.should == [:width, :height]
379
+ end
380
+ it 'should support `max_size.equals(:another_view).times(w: 2, h: 2).plus(10)`' do
381
+ @layout.context(UIView.new) do
382
+ @layout.constraints do
383
+ @constraint = @layout.max_size.equals(:another_view).times(w: 2, h: 2).plus(10)
384
+ end
385
+ end
386
+
387
+ @constraint.constant.should == [10, 10]
388
+ @constraint.relationship.should == :lte
389
+ @constraint.multiplier.should == [2, 2]
390
+ @constraint.relative_to.should == :another_view
391
+ @constraint.attribute.should == [:width, :height]
392
+ @constraint.attribute2.should == [:width, :height]
393
+ end
394
+ it 'should support `size.equals(:another_view).times(2).times([3, 4])`' do
395
+ @layout.context(UIView.new) do
396
+ @layout.constraints do
397
+ @constraint = @layout.size.equals(:another_view).times(2).times([3, 4])
398
+ end
399
+ end
400
+
401
+ @constraint.constant.should == [0, 0]
402
+ @constraint.relationship.should == :equal
403
+ @constraint.multiplier.should == [6, 8]
404
+ @constraint.relative_to.should == :another_view
405
+ @constraint.attribute.should == [:width, :height]
406
+ @constraint.attribute2.should == [:width, :height]
407
+ end
408
+ it 'should support `size.equals(:another_view).divided_by(2)`' do
409
+ @layout.context(UIView.new) do
410
+ @layout.constraints do
411
+ @constraint = @layout.size.equals(:another_view).divided_by(2)
412
+ end
413
+ end
414
+
415
+ @constraint.constant.should == [0, 0]
416
+ @constraint.relationship.should == :equal
417
+ @constraint.multiplier.should == [0.5, 0.5]
418
+ @constraint.relative_to.should == :another_view
419
+ @constraint.attribute.should == [:width, :height]
420
+ @constraint.attribute2.should == [:width, :height]
421
+ end
422
+
423
+ end
@@ -0,0 +1,95 @@
1
+ describe 'Constraints - view_lookup method' do
2
+
3
+ before do
4
+ @layout = MK::Layout.new
5
+ @constraint = nil
6
+ @view = UIView.new
7
+ @parent_view = UIView.new
8
+ @parent_view.addSubview(@view)
9
+ @another_view = nil
10
+ end
11
+
12
+ it 'should support :superview' do
13
+ @layout.context(@parent_view) do
14
+ @layout.context(@view) do
15
+ @layout.constraints do
16
+ @constraint = @layout.left.equals(:superview).plus(10)
17
+ end
18
+ end
19
+ end
20
+
21
+ @constraint.constant.should == 10
22
+ @constraint.relationship.should == :equal
23
+ @constraint.multiplier.should == 1
24
+ @constraint.relative_to.should == :superview
25
+ @constraint.attribute.should == :left
26
+ @constraint.attribute2.should == :left
27
+
28
+ resolved = @constraint.resolve_all(@layout, @view)
29
+ resolved.length.should == 1
30
+ resolved[0].firstItem.should.be.kind_of(UIView)
31
+ resolved[0].firstAttribute.should == NSLayoutAttributeLeft
32
+ resolved[0].relation.should == NSLayoutRelationEqual
33
+ resolved[0].secondItem.should == @parent_view
34
+ resolved[0].secondAttribute.should == NSLayoutAttributeLeft
35
+ resolved[0].multiplier.should == 1
36
+ resolved[0].constant.should == 10
37
+ end
38
+
39
+ it 'should support :another_view' do
40
+ @layout.context(@parent_view) do
41
+ @layout.context(@view) do
42
+ @layout.constraints do
43
+ @constraint = @layout.left.equals(:another_view).plus(10)
44
+ end
45
+ end
46
+ @another_view = @layout.add UIView.alloc.initWithFrame([[1, 1], [2, 2]]), :another_view
47
+ end
48
+
49
+ @constraint.constant.should == 10
50
+ @constraint.relationship.should == :equal
51
+ @constraint.multiplier.should == 1
52
+ @constraint.relative_to.should == :another_view
53
+ @constraint.attribute.should == :left
54
+ @constraint.attribute2.should == :left
55
+
56
+ resolved = @constraint.resolve_all(@layout, @view)
57
+ resolved.length.should == 1
58
+ resolved[0].firstItem.should.be.kind_of(UIView)
59
+ resolved[0].firstAttribute.should == NSLayoutAttributeLeft
60
+ resolved[0].relation.should == NSLayoutRelationEqual
61
+ resolved[0].secondItem.should == @another_view
62
+ resolved[0].secondAttribute.should == NSLayoutAttributeLeft
63
+ resolved[0].multiplier.should == 1
64
+ resolved[0].constant.should == 10
65
+ end
66
+
67
+ it 'should support @another_view' do
68
+ @layout.context(@parent_view) do
69
+ @another_view = @layout.add UIView.alloc.initWithFrame([[1, 1], [2, 2]]), :another_view
70
+ @layout.context(@view) do
71
+ @layout.constraints do
72
+ @constraint = @layout.left.equals(@another_view).plus(10)
73
+ end
74
+ end
75
+ end
76
+
77
+ @constraint.constant.should == 10
78
+ @constraint.relationship.should == :equal
79
+ @constraint.multiplier.should == 1
80
+ @constraint.relative_to.should == @another_view
81
+ @constraint.attribute.should == :left
82
+ @constraint.attribute2.should == :left
83
+
84
+ resolved = @constraint.resolve_all(@layout, @view)
85
+ resolved.length.should == 1
86
+ resolved[0].firstItem.should.be.kind_of(UIView)
87
+ resolved[0].firstAttribute.should == NSLayoutAttributeLeft
88
+ resolved[0].relation.should == NSLayoutRelationEqual
89
+ resolved[0].secondItem.should == @another_view
90
+ resolved[0].secondAttribute.should == NSLayoutAttributeLeft
91
+ resolved[0].multiplier.should == 1
92
+ resolved[0].constant.should == 10
93
+ end
94
+
95
+ end