grass/tests/interpolation.rs

83 lines
1.9 KiB
Rust
Raw Normal View History

2020-02-01 23:09:22 -05:00
#[macro_use]
mod macros;
test!(
removes_double_quotes,
"a {\n color: #{\"red\"};\n}\n",
"a {\n color: red;\n}\n"
);
test!(
removes_single_quotes,
"a {\n color: #{'red'};\n}\n",
"a {\n color: red;\n}\n"
);
test!(
number_after_interpolation,
"a {\n color: a#{foo}1;\n}\n",
"a {\n color: afoo1;\n}\n"
);
2020-02-14 13:27:08 -05:00
test!(
double_hyphen_before_interpolation,
"a {\n --#{foo}: red;\n}\n",
"a {\n --foo: red;\n}\n"
);
test!(
preserves_inner_single_quotes,
2020-03-01 12:03:14 -05:00
"a {\n color: #{\"''\"};\n}\n",
"a {\n color: '';\n}\n"
);
test!(
single_quotes_converted_to_double_when_interpolated,
2020-03-01 12:03:14 -05:00
"a {\n color: '#{foo}';\n}\n",
"a {\n color: \"foo\";\n}\n"
);
test!(
double_quotes_inside_double_quoted_string,
"a {\n color: #{\"#{'\"'}\"};\n}\n",
"a {\n color: \";\n}\n"
);
2020-04-19 22:54:56 -04:00
test!(
unquotes_space_separated_list,
"a {\n color: #{\"a\" 'b'};\n}\n",
"a {\n color: a b;\n}\n"
);
2020-04-20 11:34:49 -04:00
test!(
interpolated_newline,
2020-04-20 11:34:49 -04:00
"a {\n color: \"#{\"\\a\"}\";\n}\n",
"a {\n color: \"\\a\";\n}\n"
);
test!(
double_interpolated_newline,
"a {\n color: \"#{#{\"\\a\"}}\";\n}\n",
"a {\n color: \"\\a\";\n}\n"
);
test!(
interpolated_quoted_newline,
"a {\n color: #{\"\\a\"};\n}\n",
"a {\n color: ;\n}\n"
);
2020-04-22 10:57:57 -04:00
test!(
interpolate_escaped_quotes,
"a {\n color: #{\\\"\\'};\n}\n",
"a {\n color: \\\"\\';\n}\n"
);
test!(
interpolate_escaped_quotes_in_quotes,
"a {\n color: \"#{\\\"\\'}\";\n}\n",
"a {\n color: \"\\\\\\\"\\\\'\";\n}\n"
);
test!(
interpolated_plain_css_fn,
"$f: foo;\na {\n color: #{$f}(a, 1+2, c);\n}\n",
"a {\n color: foo(a, 3, c);\n}\n"
);
test!(
interpolated_builtin_fn,
"a {\n color: uni#{t}less(1px);\n}\n",
"a {\n color: unitless(1px);\n}\n"
);
error!(
error_message_when_at_start_of_value,
"a {\n color: #{2px*5px};\n}\n", "Error: 10px*px isn't a valid CSS value."
);