under-os 1.3.0 → 1.4.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 (140) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +25 -2
  4. data/README.md +1 -1
  5. data/Rakefile +2 -4
  6. data/lib/under-os.rb +3 -8
  7. data/under-os.gemspec +6 -2
  8. metadata +47 -191
  9. data/lib/assets/fontawesome-webfont.ttf +0 -0
  10. data/lib/assets/under-os.css +0 -115
  11. data/lib/under_os.rb +0 -41
  12. data/lib/under_os/app.rb +0 -33
  13. data/lib/under_os/color.rb +0 -184
  14. data/lib/under_os/config.rb +0 -33
  15. data/lib/under_os/core/array.rb +0 -5
  16. data/lib/under_os/core/hash.rb +0 -10
  17. data/lib/under_os/core/json.rb +0 -19
  18. data/lib/under_os/core/kernel.rb +0 -16
  19. data/lib/under_os/core/numeric.rb +0 -23
  20. data/lib/under_os/core/object.rb +0 -9
  21. data/lib/under_os/core/string.rb +0 -80
  22. data/lib/under_os/delegate.rb +0 -10
  23. data/lib/under_os/events.rb +0 -85
  24. data/lib/under_os/file.rb +0 -110
  25. data/lib/under_os/history.rb +0 -53
  26. data/lib/under_os/http.rb +0 -31
  27. data/lib/under_os/http/cookies.rb +0 -30
  28. data/lib/under_os/http/receiver.rb +0 -44
  29. data/lib/under_os/http/request.rb +0 -106
  30. data/lib/under_os/http/response.rb +0 -28
  31. data/lib/under_os/http/session.rb +0 -49
  32. data/lib/under_os/page.rb +0 -169
  33. data/lib/under_os/page/builder.rb +0 -96
  34. data/lib/under_os/page/layout.rb +0 -43
  35. data/lib/under_os/page/matcher.rb +0 -128
  36. data/lib/under_os/page/stylesheet.rb +0 -67
  37. data/lib/under_os/parser.rb +0 -24
  38. data/lib/under_os/parser/css.rb +0 -37
  39. data/lib/under_os/parser/html.rb +0 -97
  40. data/lib/under_os/point.rb +0 -47
  41. data/lib/under_os/screen.rb +0 -9
  42. data/lib/under_os/timer.rb +0 -65
  43. data/lib/under_os/ui.rb +0 -3
  44. data/lib/under_os/ui/alert.rb +0 -52
  45. data/lib/under_os/ui/button.rb +0 -42
  46. data/lib/under_os/ui/collection.rb +0 -65
  47. data/lib/under_os/ui/collection/cell.rb +0 -21
  48. data/lib/under_os/ui/collection/delegate.rb +0 -70
  49. data/lib/under_os/ui/collection/item.rb +0 -32
  50. data/lib/under_os/ui/collection/layout.rb +0 -43
  51. data/lib/under_os/ui/collection/styles.rb +0 -15
  52. data/lib/under_os/ui/div.rb +0 -3
  53. data/lib/under_os/ui/form.rb +0 -60
  54. data/lib/under_os/ui/icon.rb +0 -61
  55. data/lib/under_os/ui/icon/awesome.rb +0 -376
  56. data/lib/under_os/ui/icon/engine.rb +0 -10
  57. data/lib/under_os/ui/image.rb +0 -31
  58. data/lib/under_os/ui/input.rb +0 -140
  59. data/lib/under_os/ui/label.rb +0 -21
  60. data/lib/under_os/ui/locker.rb +0 -42
  61. data/lib/under_os/ui/navbar.rb +0 -123
  62. data/lib/under_os/ui/progress.rb +0 -17
  63. data/lib/under_os/ui/scroll.rb +0 -41
  64. data/lib/under_os/ui/select.rb +0 -95
  65. data/lib/under_os/ui/sidebar.rb +0 -45
  66. data/lib/under_os/ui/slider.rb +0 -37
  67. data/lib/under_os/ui/spinner.rb +0 -23
  68. data/lib/under_os/ui/style.rb +0 -21
  69. data/lib/under_os/ui/style/fonts.rb +0 -54
  70. data/lib/under_os/ui/style/margins.rb +0 -164
  71. data/lib/under_os/ui/style/outlining.rb +0 -170
  72. data/lib/under_os/ui/style/positioning.rb +0 -169
  73. data/lib/under_os/ui/switch.rb +0 -26
  74. data/lib/under_os/ui/textarea.rb +0 -19
  75. data/lib/under_os/ui/utils/animation.rb +0 -99
  76. data/lib/under_os/ui/utils/commons.rb +0 -70
  77. data/lib/under_os/ui/utils/dimensions.rb +0 -37
  78. data/lib/under_os/ui/utils/events.rb +0 -170
  79. data/lib/under_os/ui/utils/manipulation.rb +0 -44
  80. data/lib/under_os/ui/utils/position.rb +0 -21
  81. data/lib/under_os/ui/utils/size.rb +0 -21
  82. data/lib/under_os/ui/utils/styles.rb +0 -89
  83. data/lib/under_os/ui/utils/traversing.rb +0 -44
  84. data/lib/under_os/ui/utils/wrap.rb +0 -77
  85. data/lib/under_os/ui/view.rb +0 -31
  86. data/resources/test.png +0 -0
  87. data/spec/assets/app.css +0 -13
  88. data/spec/assets/test.css +0 -7
  89. data/spec/assets/test.html +0 -3
  90. data/spec/assets/test_page.rb +0 -2
  91. data/spec/lib/core/hash_spec.rb +0 -19
  92. data/spec/lib/core/json_spec.rb +0 -32
  93. data/spec/lib/core/numeric_spec.rb +0 -37
  94. data/spec/lib/core/string_spec.rb +0 -121
  95. data/spec/lib/under_os/color_spec.rb +0 -133
  96. data/spec/lib/under_os/events_spec.rb +0 -71
  97. data/spec/lib/under_os/file_spec.rb +0 -98
  98. data/spec/lib/under_os/http/cookies_spec.rb +0 -13
  99. data/spec/lib/under_os/http/request_spec.rb +0 -44
  100. data/spec/lib/under_os/http_spec.rb +0 -20
  101. data/spec/lib/under_os/page/builder_spec.rb +0 -128
  102. data/spec/lib/under_os/page/layout_spec.rb +0 -18
  103. data/spec/lib/under_os/page/matcher_spec.rb +0 -260
  104. data/spec/lib/under_os/page/stylesheet_spec.rb +0 -83
  105. data/spec/lib/under_os/page_spec.rb +0 -5
  106. data/spec/lib/under_os/parser/css_spec.rb +0 -77
  107. data/spec/lib/under_os/parser/html_spec.rb +0 -152
  108. data/spec/lib/under_os/parser_spec.rb +0 -16
  109. data/spec/lib/under_os/point_spec.rb +0 -54
  110. data/spec/lib/under_os/screen_spec.rb +0 -11
  111. data/spec/lib/under_os/timer_spec.rb +0 -93
  112. data/spec/lib/under_os/ui/button_spec.rb +0 -50
  113. data/spec/lib/under_os/ui/collection_spec.rb +0 -19
  114. data/spec/lib/under_os/ui/div_spec.rb +0 -24
  115. data/spec/lib/under_os/ui/form_spec.rb +0 -156
  116. data/spec/lib/under_os/ui/icon_spec.rb +0 -57
  117. data/spec/lib/under_os/ui/image_spec.rb +0 -39
  118. data/spec/lib/under_os/ui/input_spec.rb +0 -109
  119. data/spec/lib/under_os/ui/label_spec.rb +0 -22
  120. data/spec/lib/under_os/ui/locker_spec.rb +0 -31
  121. data/spec/lib/under_os/ui/progress_spec.rb +0 -31
  122. data/spec/lib/under_os/ui/scroll_spec.rb +0 -40
  123. data/spec/lib/under_os/ui/select_spec.rb +0 -135
  124. data/spec/lib/under_os/ui/sidebar_spec.rb +0 -35
  125. data/spec/lib/under_os/ui/slider_spec.rb +0 -69
  126. data/spec/lib/under_os/ui/spinner_spec.rb +0 -57
  127. data/spec/lib/under_os/ui/style/fonts_spec.rb +0 -73
  128. data/spec/lib/under_os/ui/style/margins_spec.rb +0 -106
  129. data/spec/lib/under_os/ui/style/outlining_spec.rb +0 -101
  130. data/spec/lib/under_os/ui/style/positioning_spec.rb +0 -69
  131. data/spec/lib/under_os/ui/style_spec.rb +0 -19
  132. data/spec/lib/under_os/ui/switch_spec.rb +0 -60
  133. data/spec/lib/under_os/ui/textarea_spec.rb +0 -34
  134. data/spec/lib/under_os/ui/utils/commons_spec.rb +0 -81
  135. data/spec/lib/under_os/ui/utils/events_spec.rb +0 -87
  136. data/spec/lib/under_os/ui/utils/manipulation_spec.rb +0 -130
  137. data/spec/lib/under_os/ui/utils/styles_spec.rb +0 -140
  138. data/spec/lib/under_os/ui/utils/traversing_spec.rb +0 -124
  139. data/spec/lib/under_os/ui/utils/wrap_spec.rb +0 -69
  140. data/spec/lib/under_os/ui/view_spec.rb +0 -39
@@ -1,20 +0,0 @@
1
- describe UnderOs::HTTP do
2
- extend Facon::SpecHelpers
3
-
4
- before do
5
- @url = 'http://test.com'
6
- @req = mock 'request', send: :request
7
- end
8
-
9
- %w[get post put patch head delete].each do |method|
10
- describe ".#{method}" do
11
- it "sends a #{method.upcase} request" do
12
- UnderOs::HTTP::Request.should.receive(:new)
13
- .with(@url, foo: 'bar', method: method.to_sym)
14
- .and_return(@req)
15
-
16
- UnderOs::HTTP.__send__(method, @url, foo: 'bar').should == :request
17
- end
18
- end
19
- end
20
- end
@@ -1,128 +0,0 @@
1
- describe UnderOs::Page::Builder do
2
- def build(html)
3
- UnderOs::Page::Builder.views_from(html)
4
- end
5
-
6
- describe 'generic build' do
7
- before do
8
- @result = build("<view id='my-view'></view>")
9
- end
10
-
11
- it "should return an array" do
12
- @result.class.should == Array
13
- end
14
-
15
- it "should build just one item" do
16
- @result.size.should == 1
17
- end
18
-
19
- it "should build an UnderOs::UI::View instance" do
20
- @result[0].class.should == UnderOs::UI::View
21
- end
22
-
23
- it "should assign the element properties" do
24
- @result[0].id.should == 'my-view'
25
- end
26
- end
27
-
28
- describe 'types building' do
29
- it "should build buttons" do
30
- button = build(%Q{<button class="my-button">Some text</button>})[0]
31
- button.class.should == UnderOs::UI::Button
32
- button.classNames.should == ['my-button']
33
- button.text.should == 'Some text'
34
- end
35
-
36
- it "should build labels" do
37
- label = build(%Q{<label>The Text</label>})[0]
38
- label.class.should == UnderOs::UI::Label
39
- label.text.should == 'The Text'
40
- end
41
-
42
- it "should build images" do
43
- image = build(%Q{<img src="test.png">})[0]
44
- image.class.should == UnderOs::UI::Image
45
- image.src.class.should == UIImage
46
- end
47
-
48
- it "should build icons" do
49
- icon = build(%Q{<icon type="ok" />})[0]
50
- icon.class.should == UnderOs::UI::Icon
51
- icon.type.should == 'ok'
52
- end
53
- end
54
-
55
- describe 'nested build' do
56
- before do
57
- @result = build(%Q{
58
- <page id="level1">
59
- <view id="level2">
60
- <label>A</label>
61
- <button>B</button>
62
- </view>
63
- </page>
64
- })[0]
65
- end
66
-
67
- it "should still assign the top level element attributes" do
68
- @result.id.should == 'level1'
69
- end
70
-
71
- it "should build the second level elements" do
72
- level2 = @result.children
73
- level2.size.should == 1
74
- level2[0].id.should == 'level2'
75
- end
76
-
77
- it "should build the third level of the elements" do
78
- level3 = @result.children[0].children
79
- level3.size.should == 2
80
- level3.map(&:class).should == [UnderOs::UI::Label, UnderOs::UI::Button]
81
- level3.map(&:text).should == ['A', 'B']
82
- end
83
- end
84
-
85
- describe 'selectboxes build' do
86
- before do
87
- @result = build(%Q{
88
- <select>
89
- <option value="1">One</option>
90
- <option value="2">Two</option>
91
- <option>Three</option>
92
- </select>
93
- })[0]
94
- end
95
-
96
- it "should allow to build a select box" do
97
- @result.class.should == UnderOs::UI::Select
98
- end
99
-
100
- it "should recognize options" do
101
- @result.options.should == {
102
- '1' => 'One',
103
- '2' => 'Two',
104
- 'Three' => 'Three'
105
- }
106
- end
107
-
108
- it "should allow to build multi-select boxes" do
109
- select = build(%Q{
110
- <select>
111
- <optgroup>
112
- <option value="1">One</option>
113
- </optgroup>
114
- <optgroup>
115
- <option value="2">Two</option>
116
- </optgroup>
117
- <optgroup>
118
- <option value="3">Three</option>
119
- </optgroup>
120
- </select>
121
- })[0]
122
-
123
- select.optgroups.should == [
124
- {'1' => 'One'}, {'2' => 'Two'}, {'3' => 'Three'}
125
- ]
126
- end
127
- end
128
- end
@@ -1,18 +0,0 @@
1
- describe UnderOs::Page::Layout do
2
- before do
3
- @page = TestPage.new
4
- @layout = UnderOs::Page::Layout.new(@page)
5
- end
6
-
7
- it "should pickup the elements from the layout.html file" do
8
- @page.view.should.not == nil
9
- children = @page.view.children
10
- children.size.should == 1
11
- children[0].class.should == UnderOs::UI::Button
12
- children[0].text.should == 'Say Hello'
13
- end
14
-
15
- it "should pickup the page title from the test layout" do
16
- @page.title.should == 'Hello World'
17
- end
18
- end
@@ -1,260 +0,0 @@
1
- describe UnderOs::Page::StylesMatcher do
2
- before do
3
- @view = UnderOs::UI::View.new
4
- @view1 = UnderOs::UI::View.new
5
- @view2 = UnderOs::UI::View.new
6
- @matcher = UnderOs::Page::StylesMatcher.new('smth')
7
- end
8
-
9
- describe '.new' do
10
- it "should cache instances" do
11
- @i1 = UnderOs::Page::StylesMatcher.new('.one')
12
- @i2 = UnderOs::Page::StylesMatcher.new('.one')
13
- @i3 = UnderOs::Page::StylesMatcher.new('.two')
14
-
15
- @i1.should.be.same_as @i2
16
- @i1.should.not == @i3
17
- end
18
- end
19
-
20
- describe '#match' do
21
- it "should return 'true' for views with score > 0" do
22
- def @matcher.score_for(view); 1 end
23
- @matcher.match(@view).should == true
24
- end
25
-
26
- it "should return 'false' for views with score == 0" do
27
- def @matcher.score_for(view); 0 end
28
- @matcher.match(@view).should == false
29
- end
30
- end
31
-
32
- describe '#score_for' do
33
- def score_for(view, css_rule)
34
- UnderOs::Page::StylesMatcher.new(css_rule).score_for(view)
35
- end
36
-
37
- describe 'tags matching' do
38
- it "should add score for tag match" do
39
- score_for(@view, 'view').should == 1
40
- end
41
-
42
- it "should not add score for not matching tags" do
43
- score_for(@view, 'button').should == 0
44
- end
45
-
46
- it "should not add score if the id is wrong" do
47
- score_for(@view, 'view#some-id').should == 0
48
- end
49
-
50
- it "should not add score if the css-rule is wrong" do
51
- score_for(@view, 'view.some-class').should == 0
52
- end
53
-
54
- it "should handle the * as the tag name" do
55
- score_for(@view, '*').should == 1
56
- end
57
- end
58
-
59
- describe 'IDs matching' do
60
- it "should add score for IDs matches" do
61
- @view.id = 'my-id'
62
- score_for(@view, '#my-id').should == 1
63
- end
64
-
65
- it "should not add score for mismatching IDs" do
66
- @view.id = 'my-id'
67
- score_for(@view, '#another-id').should == 0
68
- end
69
-
70
- it "should not crash if ID is missing" do
71
- score_for(@view, 'button').should == 0
72
- end
73
-
74
- it "should not add points if the tag is different" do
75
- @view.id = 'my-id'
76
- score_for(@view, 'button#my-id').should == 0
77
- end
78
- end
79
-
80
- describe 'className matching' do
81
- it "should add score for matching class names" do
82
- @view.className = 'my-class'
83
- score_for(@view, '.my-class').should == 1
84
- end
85
-
86
- it "should not add score for mismatching class names" do
87
- @view.className = 'my-class'
88
- score_for(@view, '.another-class').should == 0
89
- end
90
-
91
- it "should add point for every matching class name" do
92
- @view.className = 'class1 class2'
93
- score_for(@view, '.class1.class2').should == 2
94
- score_for(@view, '.class2.class1').should == 2
95
- end
96
-
97
- it "should not add points one of multiple classes don't match" do
98
- @view.className = 'class1 class2'
99
- score_for(@view, '.class1.class3').should == 0
100
- score_for(@view, '.class3.class2').should == 0
101
- end
102
-
103
- it "should not add points if the tag is different" do
104
- @view.className = 'my-class'
105
- score_for(@view, 'button.my-class').should == 0
106
- end
107
-
108
- it "should not add points if the ID is different" do
109
- @view.className = 'my-class'
110
- score_for(@view, '#another-id.my-class').should == 0
111
- end
112
- end
113
-
114
- describe "attribute matchers" do
115
- before do
116
- @view.id = "my-view"
117
- end
118
-
119
- def score_for(view, css_rule)
120
- UnderOs::Page::StylesMatcher.new(css_rule).score_for(view)
121
- end
122
-
123
- describe "with the '=' operator" do
124
- it "scores when the value matches exactly" do
125
- score_for(@view, '[id="my-view"]').should == 1
126
- end
127
-
128
- it "doesn't count when the value does not match" do
129
- score_for(@view, "[id='my']").should == 0
130
- end
131
- end
132
-
133
- describe "with the '*=' operator" do
134
- it "scores when the attribute includes the value" do
135
- score_for(@view, '[id*=vie]').should == 1
136
- end
137
-
138
- it "doesn't count when the value doesn't match attribute" do
139
- score_for(@view, '[id*=mismatch]').should == 0
140
- end
141
- end
142
-
143
- describe "with the ^= operator" do
144
- it "scores when the attribute starts with the value" do
145
- score_for(@view, '[id^=my]').should == 1
146
- end
147
-
148
- it "doesn't count when the attribute doesn't start with the value" do
149
- score_for(@view, '[id^=view]').should == 0
150
- end
151
- end
152
-
153
- describe "with the $= operator" do
154
- it "scores when the attribute ends with the value" do
155
- score_for(@view, '[id$=view]').should == 1
156
- end
157
-
158
- it "doesn't count when the attribute doesn't ends with the value" do
159
- score_for(@view, '[id$=my]').should == 0
160
- end
161
- end
162
-
163
- describe "with the ~= operator" do
164
- before { @view.id = "one two three" }
165
-
166
- it "scores when the value is a token from the attribute" do
167
- score_for(@view, '[id~=one]').should == 1
168
- score_for(@view, '[id~=two]').should == 1
169
- score_for(@view, '[id~=three]').should == 1
170
- end
171
-
172
- it "doesn't trigger on completely different strings" do
173
- score_for(@view, '[id~=four]').should == 0
174
- end
175
-
176
- it "doesn't trigger on partial substrings" do
177
- score_for(@view, '[id~=tw]').should == 0
178
- end
179
- end
180
-
181
- describe "with the |= operator" do
182
- it "scores when value is a dashed token of the attribute" do
183
- score_for(@view, '[id|=my]').should == 1
184
- score_for(@view, '[id|=view]').should == 1
185
- end
186
-
187
- it "doesn't trigger on completely different values" do
188
- score_for(@view, '[id|=mismatch]').should == 0
189
- end
190
-
191
- it "doesn't trigger on partial matches" do
192
- score_for(@view, '[id|=vie]').should == 0
193
- end
194
- end
195
- end
196
-
197
- describe 'multiple nested matches' do
198
- it "should count in all the matches" do
199
- @view.id = 'my-id'
200
- @view.className = 'class1 class2'
201
- score_for(@view, 'view#my-id.class1.class2').should == 4
202
- end
203
- end
204
-
205
- describe 'in multi-leveled structures' do
206
- before do
207
- @v1 = UnderOs::UI::View.new(class: 'v1')
208
- @v2 = UnderOs::UI::View.new(class: 'v2')
209
- @v3 = UnderOs::UI::View.new(class: 'v3')
210
- @v4 = UnderOs::UI::View.new(class: 'v4')
211
-
212
- @v1.append(@v2.append(@v3.append(@v4.append(@view))))
213
-
214
- @view.id = 'my-view'
215
- end
216
-
217
- it "should still match singular rules" do
218
- score_for(@view, '#my-view').should == 1
219
- end
220
-
221
- it "should add points for matching parent" do
222
- score_for(@view, '.v4 #my-view').should == 2
223
- score_for(@view, 'view.v4 #my-view').should == 3
224
- end
225
-
226
- it "should add multiple points for multiple matching parents" do
227
- score_for(@view, '.v1 .v2 .v3 .v4 #my-view').should == 5
228
- end
229
-
230
- it "should match parents at any level" do
231
- score_for(@view, '.v3 #my-view').should == 2
232
- score_for(@view, '.v2 #my-view').should == 2
233
- score_for(@view, '.v1 .v3 #my-view').should == 3
234
- end
235
-
236
- it "should return 0 if no matching parent found" do
237
- score_for(@view, '.non-existing #my-view').should == 0
238
- end
239
- end
240
-
241
- describe "multiple different matchers" do
242
- before do
243
- @view.id = 'my-view'
244
- @view.className = 'classy'
245
- end
246
-
247
- it "gets score out of multiple matchers if one of them is matching" do
248
- score_for(@view, "view, input, form").should == 1
249
- end
250
-
251
- it "return 0 if none of the matchers are matching" do
252
- score_for(@view, "input,select").should == 0
253
- end
254
-
255
- it "gets the max score if there are multiple matches" do
256
- score_for(@view, "view,.classy,view#my-view").should == 2
257
- end
258
- end
259
- end
260
- end
@@ -1,83 +0,0 @@
1
- describe UnderOs::Page::Stylesheet do
2
- before do
3
- @stylesheet = UnderOs::Page::Stylesheet.new
4
- end
5
-
6
- describe '#initialize' do
7
- it "should make an empty stylesheet" do
8
- @stylesheet.rules.should == {}
9
- end
10
-
11
- it "should allow initialize with some rules" do
12
- stylesheet = UnderOs::Page::Stylesheet.new(button: {color: 'orange'})
13
- stylesheet.rules.should == {'button' => {color: 'orange'}}
14
- end
15
- end
16
-
17
- describe '#[]' do
18
- it "should allow to set new style rules" do
19
- @stylesheet['button'] = {color: :red}
20
- @stylesheet['button'].should == {color: :red}
21
- end
22
-
23
- it "should allow to extend the rules" do
24
- @stylesheet['button'] = {color: 'red'}
25
- @stylesheet['button'] = {right: 50 }
26
- @stylesheet['button'].should == {color: 'red', right: 50}
27
- end
28
-
29
- it "should overwrite existing rules when match" do
30
- @stylesheet['button'] = {color: 'red', left: 20}
31
- @stylesheet['button'] = {color: 'blue'}
32
- @stylesheet['button'].should == {color: 'blue', left: 20}
33
- end
34
- end
35
-
36
- describe '#<<' do
37
- it "should merge another stylesheet into the current one" do
38
- other_sytles = UnderOs::Page::Stylesheet.new(button: { color: 'blue' })
39
- @stylesheet['button'] = {left: 30}
40
- @stylesheet << other_sytles
41
- @stylesheet['button'].should == {color: 'blue', left: 30}
42
- end
43
- end
44
-
45
- describe '#+' do
46
- it "should create a new stylesheet combined out of the two" do
47
- sheet1 = UnderOs::Page::Stylesheet.new(button: { color: 'blue' })
48
- sheet2 = UnderOs::Page::Stylesheet.new(button: { left: 20 })
49
-
50
- sheet3 = sheet1 + sheet2
51
-
52
- sheet1['button'].should == {color: 'blue'}
53
- sheet2['button'].should == {left: 20}
54
- sheet3['button'].should == {color: 'blue', left: 20}
55
- end
56
- end
57
-
58
- describe '#load' do
59
- it "should load rules from the given test stylesheet file" do
60
- @stylesheet.load('test.css')
61
- @stylesheet.rules.should == {
62
- "page"=>{:backgroundColor=>"yellow"},
63
- ".test"=>{:backgroundColor=>"green"}
64
- }
65
- end
66
- end
67
-
68
- describe '#styles_for' do
69
- before do
70
- @view = UnderOs::UI::View.new(class: 'test')
71
- @stylesheet.load('app.css')
72
- @stylesheet.load('test.css')
73
- end
74
-
75
- it "should calculate the styles correctly" do
76
- @stylesheet.styles_for(@view).should == {
77
- color: 'yellow',
78
- backgroundColor: 'green',
79
- borderRadius: 10
80
- }
81
- end
82
- end
83
- end