oreorenasass 3.4.4 → 3.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +50 -70
  4. data/Rakefile +5 -26
  5. data/VERSION +1 -1
  6. data/VERSION_NAME +1 -1
  7. data/bin/sass +1 -1
  8. data/bin/scss +1 -1
  9. data/lib/sass.rb +12 -19
  10. data/lib/sass/cache_stores/base.rb +2 -2
  11. data/lib/sass/cache_stores/chain.rb +1 -2
  12. data/lib/sass/cache_stores/filesystem.rb +5 -1
  13. data/lib/sass/cache_stores/memory.rb +1 -1
  14. data/lib/sass/cache_stores/null.rb +2 -2
  15. data/lib/sass/callbacks.rb +0 -1
  16. data/lib/sass/css.rb +13 -11
  17. data/lib/sass/engine.rb +173 -424
  18. data/lib/sass/environment.rb +58 -148
  19. data/lib/sass/error.rb +14 -11
  20. data/lib/sass/exec.rb +703 -5
  21. data/lib/sass/importers/base.rb +6 -49
  22. data/lib/sass/importers/filesystem.rb +19 -44
  23. data/lib/sass/logger.rb +4 -1
  24. data/lib/sass/logger/base.rb +4 -2
  25. data/lib/sass/logger/log_level.rb +7 -3
  26. data/lib/sass/media.rb +23 -20
  27. data/lib/sass/plugin.rb +7 -7
  28. data/lib/sass/plugin/compiler.rb +145 -304
  29. data/lib/sass/plugin/configuration.rb +23 -18
  30. data/lib/sass/plugin/merb.rb +1 -1
  31. data/lib/sass/plugin/staleness_checker.rb +3 -3
  32. data/lib/sass/repl.rb +3 -3
  33. data/lib/sass/script.rb +8 -35
  34. data/lib/sass/script/{value/arg_list.rb → arg_list.rb} +25 -9
  35. data/lib/sass/script/bool.rb +18 -0
  36. data/lib/sass/script/color.rb +606 -0
  37. data/lib/sass/script/css_lexer.rb +4 -8
  38. data/lib/sass/script/css_parser.rb +2 -5
  39. data/lib/sass/script/funcall.rb +245 -0
  40. data/lib/sass/script/functions.rb +408 -1491
  41. data/lib/sass/script/interpolation.rb +79 -0
  42. data/lib/sass/script/lexer.rb +68 -172
  43. data/lib/sass/script/list.rb +85 -0
  44. data/lib/sass/script/literal.rb +221 -0
  45. data/lib/sass/script/{tree/node.rb → node.rb} +12 -22
  46. data/lib/sass/script/{value/null.rb → null.rb} +7 -14
  47. data/lib/sass/script/{value/number.rb → number.rb} +75 -152
  48. data/lib/sass/script/{tree/operation.rb → operation.rb} +24 -17
  49. data/lib/sass/script/parser.rb +110 -245
  50. data/lib/sass/script/string.rb +51 -0
  51. data/lib/sass/script/{tree/string_interpolation.rb → string_interpolation.rb} +4 -5
  52. data/lib/sass/script/{tree/unary_operation.rb → unary_operation.rb} +6 -6
  53. data/lib/sass/script/variable.rb +58 -0
  54. data/lib/sass/scss/css_parser.rb +3 -9
  55. data/lib/sass/scss/parser.rb +421 -450
  56. data/lib/sass/scss/rx.rb +11 -19
  57. data/lib/sass/scss/static_parser.rb +7 -321
  58. data/lib/sass/selector.rb +194 -68
  59. data/lib/sass/selector/abstract_sequence.rb +14 -29
  60. data/lib/sass/selector/comma_sequence.rb +25 -108
  61. data/lib/sass/selector/sequence.rb +66 -159
  62. data/lib/sass/selector/simple.rb +25 -23
  63. data/lib/sass/selector/simple_sequence.rb +63 -173
  64. data/lib/sass/shared.rb +1 -1
  65. data/lib/sass/supports.rb +15 -13
  66. data/lib/sass/tree/charset_node.rb +1 -1
  67. data/lib/sass/tree/comment_node.rb +3 -3
  68. data/lib/sass/tree/css_import_node.rb +11 -11
  69. data/lib/sass/tree/debug_node.rb +2 -2
  70. data/lib/sass/tree/directive_node.rb +4 -21
  71. data/lib/sass/tree/each_node.rb +8 -8
  72. data/lib/sass/tree/extend_node.rb +7 -14
  73. data/lib/sass/tree/for_node.rb +4 -4
  74. data/lib/sass/tree/function_node.rb +4 -9
  75. data/lib/sass/tree/if_node.rb +1 -1
  76. data/lib/sass/tree/import_node.rb +5 -4
  77. data/lib/sass/tree/media_node.rb +14 -4
  78. data/lib/sass/tree/mixin_def_node.rb +4 -4
  79. data/lib/sass/tree/mixin_node.rb +8 -21
  80. data/lib/sass/tree/node.rb +12 -54
  81. data/lib/sass/tree/prop_node.rb +20 -39
  82. data/lib/sass/tree/return_node.rb +2 -3
  83. data/lib/sass/tree/root_node.rb +3 -19
  84. data/lib/sass/tree/rule_node.rb +22 -35
  85. data/lib/sass/tree/supports_node.rb +13 -0
  86. data/lib/sass/tree/trace_node.rb +1 -2
  87. data/lib/sass/tree/variable_node.rb +3 -9
  88. data/lib/sass/tree/visitors/base.rb +8 -5
  89. data/lib/sass/tree/visitors/check_nesting.rb +19 -49
  90. data/lib/sass/tree/visitors/convert.rb +56 -74
  91. data/lib/sass/tree/visitors/cssize.rb +74 -202
  92. data/lib/sass/tree/visitors/deep_copy.rb +5 -10
  93. data/lib/sass/tree/visitors/extend.rb +7 -7
  94. data/lib/sass/tree/visitors/perform.rb +185 -278
  95. data/lib/sass/tree/visitors/set_options.rb +6 -20
  96. data/lib/sass/tree/visitors/to_css.rb +81 -234
  97. data/lib/sass/tree/warn_node.rb +2 -2
  98. data/lib/sass/tree/while_node.rb +2 -2
  99. data/lib/sass/util.rb +152 -522
  100. data/lib/sass/util/multibyte_string_scanner.rb +0 -2
  101. data/lib/sass/util/subset_map.rb +3 -4
  102. data/lib/sass/util/test.rb +1 -0
  103. data/lib/sass/version.rb +22 -20
  104. data/test/Gemfile +3 -0
  105. data/test/Gemfile.lock +10 -0
  106. data/test/sass/cache_test.rb +20 -62
  107. data/test/sass/callbacks_test.rb +1 -1
  108. data/test/sass/conversion_test.rb +2 -296
  109. data/test/sass/css2sass_test.rb +4 -23
  110. data/test/sass/engine_test.rb +354 -411
  111. data/test/sass/exec_test.rb +2 -2
  112. data/test/sass/extend_test.rb +145 -324
  113. data/test/sass/functions_test.rb +86 -873
  114. data/test/sass/importer_test.rb +21 -241
  115. data/test/sass/logger_test.rb +1 -1
  116. data/test/sass/more_results/more_import.css +1 -1
  117. data/test/sass/plugin_test.rb +26 -16
  118. data/test/sass/results/compact.css +1 -1
  119. data/test/sass/results/complex.css +4 -4
  120. data/test/sass/results/expanded.css +1 -1
  121. data/test/sass/results/import.css +1 -1
  122. data/test/sass/results/import_charset_ibm866.css +2 -2
  123. data/test/sass/results/mixins.css +17 -17
  124. data/test/sass/results/nested.css +1 -1
  125. data/test/sass/results/parent_ref.css +2 -2
  126. data/test/sass/results/script.css +3 -3
  127. data/test/sass/results/scss_import.css +1 -1
  128. data/test/sass/script_conversion_test.rb +7 -36
  129. data/test/sass/script_test.rb +53 -485
  130. data/test/sass/scss/css_test.rb +28 -143
  131. data/test/sass/scss/rx_test.rb +4 -4
  132. data/test/sass/scss/scss_test.rb +325 -2119
  133. data/test/sass/templates/scss_import.scss +1 -2
  134. data/test/sass/test_helper.rb +1 -1
  135. data/test/sass/util/multibyte_string_scanner_test.rb +1 -1
  136. data/test/sass/util/subset_map_test.rb +2 -2
  137. data/test/sass/util_test.rb +1 -86
  138. data/test/test_helper.rb +8 -37
  139. metadata +19 -66
  140. data/lib/sass/exec/base.rb +0 -187
  141. data/lib/sass/exec/sass_convert.rb +0 -264
  142. data/lib/sass/exec/sass_scss.rb +0 -424
  143. data/lib/sass/features.rb +0 -47
  144. data/lib/sass/script/tree.rb +0 -16
  145. data/lib/sass/script/tree/funcall.rb +0 -306
  146. data/lib/sass/script/tree/interpolation.rb +0 -118
  147. data/lib/sass/script/tree/list_literal.rb +0 -77
  148. data/lib/sass/script/tree/literal.rb +0 -45
  149. data/lib/sass/script/tree/map_literal.rb +0 -64
  150. data/lib/sass/script/tree/selector.rb +0 -26
  151. data/lib/sass/script/tree/variable.rb +0 -57
  152. data/lib/sass/script/value.rb +0 -11
  153. data/lib/sass/script/value/base.rb +0 -240
  154. data/lib/sass/script/value/bool.rb +0 -35
  155. data/lib/sass/script/value/color.rb +0 -680
  156. data/lib/sass/script/value/helpers.rb +0 -262
  157. data/lib/sass/script/value/list.rb +0 -113
  158. data/lib/sass/script/value/map.rb +0 -70
  159. data/lib/sass/script/value/string.rb +0 -97
  160. data/lib/sass/selector/pseudo.rb +0 -256
  161. data/lib/sass/source/map.rb +0 -210
  162. data/lib/sass/source/position.rb +0 -39
  163. data/lib/sass/source/range.rb +0 -41
  164. data/lib/sass/stack.rb +0 -120
  165. data/lib/sass/tree/at_root_node.rb +0 -83
  166. data/lib/sass/tree/error_node.rb +0 -18
  167. data/lib/sass/tree/keyframe_rule_node.rb +0 -15
  168. data/lib/sass/util/cross_platform_random.rb +0 -19
  169. data/lib/sass/util/normalized_map.rb +0 -130
  170. data/lib/sass/util/ordered_hash.rb +0 -192
  171. data/test/sass/compiler_test.rb +0 -232
  172. data/test/sass/encoding_test.rb +0 -219
  173. data/test/sass/source_map_test.rb +0 -977
  174. data/test/sass/superselector_test.rb +0 -191
  175. data/test/sass/util/normalized_map_test.rb +0 -51
  176. data/test/sass/value_helpers_test.rb +0 -179
@@ -1,191 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../test_helper'
3
-
4
- class SuperselectorTest < MiniTest::Test
5
- def test_superselector_reflexivity
6
- assert_superselector 'h1', 'h1'
7
- assert_superselector '.foo', '.foo'
8
- assert_superselector '#foo > .bar, baz', '#foo > .bar, baz'
9
- end
10
-
11
- def test_smaller_compound_superselector
12
- assert_strict_superselector '.foo', '.foo.bar'
13
- assert_strict_superselector '.bar', '.foo.bar'
14
- assert_strict_superselector 'a', 'a#b'
15
- assert_strict_superselector '#b', 'a#b'
16
- end
17
-
18
- def test_smaller_complex_superselector
19
- assert_strict_superselector '.bar', '.foo .bar'
20
- assert_strict_superselector '.bar', '.foo > .bar'
21
- assert_strict_superselector '.bar', '.foo + .bar'
22
- assert_strict_superselector '.bar', '.foo ~ .bar'
23
- end
24
-
25
- def test_selector_list_subset_superselector
26
- assert_strict_superselector '.foo, .bar', '.foo'
27
- assert_strict_superselector '.foo, .bar, .baz', '.foo, .baz'
28
- assert_strict_superselector '.foo, .baz, .qux', '.foo.bar, .baz.bang'
29
- end
30
-
31
- def test_leading_combinator_superselector
32
- refute_superselector '+ .foo', '.foo'
33
- refute_superselector '+ .foo', '.bar + .foo'
34
- end
35
-
36
- def test_trailing_combinator_superselector
37
- refute_superselector '.foo +', '.foo'
38
- refute_superselector '.foo +', '.foo + .bar'
39
- end
40
-
41
- def test_matching_combinator_superselector
42
- assert_strict_superselector '.foo + .bar', '.foo + .bar.baz'
43
- assert_strict_superselector '.foo + .bar', '.foo.baz + .bar'
44
- assert_strict_superselector '.foo > .bar', '.foo > .bar.baz'
45
- assert_strict_superselector '.foo > .bar', '.foo.baz > .bar'
46
- assert_strict_superselector '.foo ~ .bar', '.foo ~ .bar.baz'
47
- assert_strict_superselector '.foo ~ .bar', '.foo.baz ~ .bar'
48
- end
49
-
50
- def test_following_sibling_is_superselector_of_next_sibling
51
- assert_strict_superselector '.foo ~ .bar', '.foo + .bar.baz'
52
- assert_strict_superselector '.foo ~ .bar', '.foo.baz + .bar'
53
- end
54
-
55
- def test_descendant_is_superselector_of_child
56
- assert_strict_superselector '.foo .bar', '.foo > .bar.baz'
57
- assert_strict_superselector '.foo .bar', '.foo.baz > .bar'
58
- end
59
-
60
- def test_matches_is_superselector_of_constituent_selectors
61
- %w[matches -moz-any].each do |name|
62
- assert_strict_superselector ":#{name}(.foo, .bar)", '.foo.baz'
63
- assert_strict_superselector ":#{name}(.foo, .bar)", '.bar.baz'
64
- assert_strict_superselector ":#{name}(.foo .bar, .baz)", '.x .foo .bar'
65
- end
66
- end
67
-
68
- def test_matches_is_superselector_of_subset_matches
69
- assert_strict_superselector ':matches(.foo, .bar, .baz)', '#x:matches(.foo.bip, .baz.bang)'
70
- assert_strict_superselector ':-moz-any(.foo, .bar, .baz)', '#x:-moz-any(.foo.bip, .baz.bang)'
71
- end
72
-
73
- def test_matches_is_not_superselector_of_any
74
- refute_superselector ':matches(.foo, .bar)', ':-moz-any(.foo, .bar)'
75
- refute_superselector ':-moz-any(.foo, .bar)', ':matches(.foo, .bar)'
76
- end
77
-
78
- def test_matches_can_be_subselector
79
- %w[matches -moz-any].each do |name|
80
- assert_superselector '.foo', ":#{name}(.foo.bar)"
81
- assert_superselector '.foo.bar', ":#{name}(.foo.bar.baz)"
82
- assert_superselector '.foo', ":#{name}(.foo.bar, .foo.baz)"
83
- end
84
- end
85
-
86
- def test_any_is_not_superselector_of_different_prefix
87
- refute_superselector ':-moz-any(.foo, .bar)', ':-s-any(.foo, .bar)'
88
- end
89
-
90
- def test_not_is_superselector_of_less_complex_not
91
- assert_strict_superselector ':not(.foo.bar)', ':not(.foo)'
92
- assert_strict_superselector ':not(.foo .bar)', ':not(.bar)'
93
- end
94
-
95
- def test_not_is_superselector_of_superset
96
- assert_strict_superselector ':not(.foo.bip, .baz.bang)', ':not(.foo, .bar, .baz)'
97
- assert_strict_superselector ':not(.foo.bip, .baz.bang)', ':not(.foo):not(.bar):not(.baz)'
98
- end
99
-
100
- def test_not_is_superselector_of_unique_selectors
101
- assert_strict_superselector ':not(h1.foo)', 'a'
102
- assert_strict_superselector ':not(.baz #foo)', '#bar'
103
- end
104
-
105
- def test_not_is_not_superselector_of_non_unique_selectors
106
- refute_superselector ':not(.foo)', '.bar'
107
- refute_superselector ':not(:hover)', ':visited'
108
- end
109
-
110
- def test_current_is_superselector_with_identical_innards
111
- assert_superselector ':current(.foo)', ':current(.foo)'
112
- end
113
-
114
- def test_current_is_superselector_with_subselector_innards
115
- refute_superselector ':current(.foo)', ':current(.foo.bar)'
116
- refute_superselector ':current(.foo.bar)', ':current(.foo)'
117
- end
118
-
119
- def test_nth_match_is_superselector_of_subset_nth_match
120
- assert_strict_superselector(
121
- ':nth-child(2n of .foo, .bar, .baz)', '#x:nth-child(2n of .foo.bip, .baz.bang)')
122
- assert_strict_superselector(
123
- ':nth-last-child(2n of .foo, .bar, .baz)', '#x:nth-last-child(2n of .foo.bip, .baz.bang)')
124
- end
125
-
126
- def test_nth_match_is_not_superselector_of_nth_match_with_different_arg
127
- refute_superselector(
128
- ':nth-child(2n of .foo, .bar, .baz)', '#x:nth-child(2n + 1 of .foo.bip, .baz.bang)')
129
- refute_superselector(
130
- ':nth-last-child(2n of .foo, .bar, .baz)', '#x:nth-last-child(2n + 1 of .foo.bip, .baz.bang)')
131
- end
132
-
133
- def test_nth_match_is_not_superselector_of_nth_last_match
134
- refute_superselector ':nth-child(2n of .foo, .bar)', ':nth-last-child(2n of .foo, .bar)'
135
- refute_superselector ':nth-last-child(2n of .foo, .bar)', ':nth-child(2n of .foo, .bar)'
136
- end
137
-
138
- def test_nth_match_can_be_subselector
139
- %w[nth-child nth-last-child].each do |name|
140
- assert_superselector '.foo', ":#{name}(2n of .foo.bar)"
141
- assert_superselector '.foo.bar', ":#{name}(2n of .foo.bar.baz)"
142
- assert_superselector '.foo', ":#{name}(2n of .foo.bar, .foo.baz)"
143
- end
144
- end
145
-
146
- def has_is_superselector_of_subset_host
147
- assert_strict_superselector ':has(.foo, .bar, .baz)', ':has(.foo.bip, .baz.bang)'
148
- end
149
-
150
- def has_isnt_superselector_of_contained_selector
151
- assert_strict_superselector ':has(.foo, .bar, .baz)', '.foo'
152
- end
153
-
154
- def host_is_superselector_of_subset_host
155
- assert_strict_superselector ':host(.foo, .bar, .baz)', ':host(.foo.bip, .baz.bang)'
156
- end
157
-
158
- def host_isnt_superselector_of_contained_selector
159
- assert_strict_superselector ':host(.foo, .bar, .baz)', '.foo'
160
- end
161
-
162
- def host_context_is_superselector_of_subset_host
163
- assert_strict_superselector(
164
- ':host-context(.foo, .bar, .baz)', ':host-context(.foo.bip, .baz.bang)')
165
- end
166
-
167
- def host_context_isnt_superselector_of_contained_selector
168
- assert_strict_superselector ':host-context(.foo, .bar, .baz)', '.foo'
169
- end
170
-
171
- private
172
-
173
- def assert_superselector(superselector, subselector)
174
- assert(parse_selector(superselector).superselector?(parse_selector(subselector)),
175
- "Expected #{superselector} to be a superselector of #{subselector}.")
176
- end
177
-
178
- def refute_superselector(superselector, subselector)
179
- assert(!parse_selector(superselector).superselector?(parse_selector(subselector)),
180
- "Expected #{superselector} not to be a superselector of #{subselector}.")
181
- end
182
-
183
- def assert_strict_superselector(superselector, subselector)
184
- assert_superselector(superselector, subselector)
185
- refute_superselector(subselector, superselector)
186
- end
187
-
188
- def parse_selector(selector)
189
- Sass::SCSS::CssParser.new(selector, filename_for_test, nil).parse_selector
190
- end
191
- end
@@ -1,51 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../../test_helper'
3
- require 'sass/util/normalized_map'
4
-
5
- class NormalizedMapTest < MiniTest::Test
6
- extend PublicApiLinter
7
-
8
- lint_api Hash, Sass::Util::NormalizedMap
9
-
10
- def lint_instance
11
- Sass::Util::NormalizedMap.new
12
- end
13
-
14
- def test_normalized_map_errors_unless_explicitly_implemented
15
- assert Sass.tests_running
16
- assert_raise_message(ArgumentError, "The method invert must be implemented explicitly") do
17
- Sass::Util::NormalizedMap.new.invert
18
- end
19
- end
20
-
21
- def test_normalized_map_does_not_error_when_released
22
- Sass.tests_running = false
23
- assert_equal({}, Sass::Util::NormalizedMap.new.invert)
24
- ensure
25
- Sass.tests_running = true
26
- end
27
-
28
- def test_basic_lifecycle
29
- m = Sass::Util::NormalizedMap.new
30
- m["a-b"] = 1
31
- assert_equal ["a_b"], m.keys
32
- assert_equal 1, m["a_b"]
33
- assert_equal 1, m["a-b"]
34
- assert m.has_key?("a_b")
35
- assert m.has_key?("a-b")
36
- assert_equal({"a-b" => 1}, m.as_stored)
37
- assert_equal 1, m.delete("a-b")
38
- assert !m.has_key?("a-b")
39
- m["a_b"] = 2
40
- assert_equal({"a_b" => 2}, m.as_stored)
41
- end
42
-
43
- def test_dup
44
- m = Sass::Util::NormalizedMap.new
45
- m["a-b"] = 1
46
- m2 = m.dup
47
- m.delete("a-b")
48
- assert !m.has_key?("a-b")
49
- assert m2.has_key?("a-b")
50
- end
51
- end
@@ -1,179 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../test_helper'
3
-
4
- class ValueHelpersTest < MiniTest::Test
5
- include Sass::Script
6
- include Sass::Script::Value::Helpers
7
-
8
- def test_bool
9
- assert_same Value::Bool::TRUE, bool(true)
10
- assert_same Value::Bool::FALSE, bool(false)
11
- assert_same Value::Bool::FALSE, bool(nil)
12
- assert_same Value::Bool::TRUE, bool(Object.new)
13
- end
14
-
15
- def test_hex_color_with_three_digits
16
- color = hex_color("F07")
17
- assert_equal 255, color.red
18
- assert_equal 0, color.green
19
- assert_equal 119, color.blue
20
- assert_equal 1, color.alpha
21
- end
22
-
23
- def test_hex_color_without_hash
24
- color_without_hash = hex_color("FF007F")
25
- assert_equal 255, color_without_hash.red
26
- assert_equal 0, color_without_hash.green
27
- assert_equal 127, color_without_hash.blue
28
- assert_equal 1, color_without_hash.alpha
29
- end
30
-
31
- def test_hex_color_with_hash
32
- color_with_hash = hex_color("#FF007F")
33
- assert_equal 255, color_with_hash.red
34
- assert_equal 0, color_with_hash.green
35
- assert_equal 127, color_with_hash.blue
36
- assert_equal 1, color_with_hash.alpha
37
- end
38
-
39
- def test_malformed_hex_color
40
- assert_raises ArgumentError do
41
- hex_color("green")
42
- end
43
- assert_raises ArgumentError do
44
- hex_color("#abcd")
45
- end
46
- end
47
-
48
-
49
- def test_hex_color_with_alpha
50
- color_with_alpha = hex_color("FF007F", 0.5)
51
- assert_equal 0.5, color_with_alpha.alpha
52
- end
53
-
54
- def test_hex_color_alpha_clamps_0_to_1
55
- assert_equal 1, hex_color("FF007F", 50).alpha
56
- end
57
-
58
- def test_hsl_color_without_alpha
59
- no_alpha = hsl_color(1, 0.5, 1)
60
- assert_equal 1, no_alpha.hue
61
- assert_equal 0.5, no_alpha.saturation
62
- assert_equal 1, no_alpha.lightness
63
- assert_equal 1, no_alpha.alpha
64
- end
65
-
66
- def test_hsl_color_with_alpha
67
- has_alpha = hsl_color(1, 0.5, 1, 0.5)
68
- assert_equal 1, has_alpha.hue
69
- assert_equal 0.5, has_alpha.saturation
70
- assert_equal 1, has_alpha.lightness
71
- assert_equal 0.5, has_alpha.alpha
72
- end
73
-
74
- def test_rgb_color_without_alpha
75
- no_alpha = rgb_color(255, 0, 0)
76
- assert_equal 255, no_alpha.red
77
- assert_equal 0, no_alpha.green
78
- assert_equal 0, no_alpha.blue
79
- assert_equal 1, no_alpha.alpha
80
- end
81
-
82
- def test_rgb_color_with_alpha
83
- has_alpha = rgb_color(255, 255, 255, 0.5)
84
- assert_equal 255, has_alpha.red
85
- assert_equal 255, has_alpha.green
86
- assert_equal 255, has_alpha.blue
87
- assert_equal 0.5, has_alpha.alpha
88
- end
89
-
90
- def test_number
91
- n = number(1)
92
- assert_equal 1, n.value
93
- assert_equal "1", n.to_sass
94
- end
95
-
96
- def test_number_with_single_unit
97
- n = number(1, "px")
98
- assert_equal 1, n.value
99
- assert_equal "1px", n.to_sass
100
- end
101
-
102
- def test_number_with_singal_numerator_and_denominator
103
- ratio = number(1, "px/em")
104
- assert_equal "1px/em", ratio.to_sass
105
- end
106
-
107
- def test_number_with_many_numerator_and_denominator_units
108
- complex = number(1, "px*in/em*%")
109
- assert_equal "1in*px/%*em", complex.to_sass
110
- end
111
-
112
- def test_number_with_many_numerator_and_denominator_units_with_spaces
113
- complex = number(1, "px * in / em * %")
114
- assert_equal "1in*px/%*em", complex.to_sass
115
- end
116
-
117
- def test_number_with_malformed_units
118
- assert_raises ArgumentError do
119
- number(1, "px/em/%")
120
- end
121
- assert_raises ArgumentError do
122
- number(1, "/")
123
- end
124
- assert_raises ArgumentError do
125
- number(1, "px/")
126
- end
127
- end
128
-
129
- def test_space_list
130
- l = list(number(1, "px"), hex_color("#f71"), :space)
131
- l.options = {}
132
- assert_kind_of Sass::Script::Value::List, l
133
- assert_equal "1px #f71", l.to_sass
134
- end
135
-
136
- def test_comma_list
137
- l = list(number(1, "px"), hex_color("#f71"), :comma)
138
- l.options = {}
139
- assert_kind_of Sass::Script::Value::List, l
140
- assert_equal "1px, #f71", l.to_sass
141
- end
142
-
143
- def test_missing_list_type
144
- assert_raises ArgumentError do
145
- list(number(1, "px"), hex_color("#f71"))
146
- end
147
- end
148
-
149
- def test_null
150
- assert_kind_of Sass::Script::Value::Null, null
151
- end
152
-
153
- def test_quoted_string
154
- s = quoted_string("sassy string")
155
- s.options = {}
156
- assert_kind_of Sass::Script::Value::String, s
157
- assert_equal "sassy string", s.value
158
- assert_equal :string, s.type
159
- assert_equal '"sassy string"', s.to_sass
160
- end
161
-
162
- def test_identifier
163
- s = identifier("a-sass-ident")
164
- s.options = {}
165
- assert_kind_of Sass::Script::Value::String, s
166
- assert_equal "a-sass-ident", s.value
167
- assert_equal :identifier, s.type
168
- assert_equal "a-sass-ident", s.to_sass
169
- end
170
-
171
- def test_unquoted_string
172
- s = unquoted_string("a-sass-ident")
173
- s.options = {}
174
- assert_kind_of Sass::Script::Value::String, s
175
- assert_equal "a-sass-ident", s.value
176
- assert_equal :identifier, s.type
177
- assert_equal "a-sass-ident", s.to_sass
178
- end
179
- end