#![cfg(test)] #[macro_use] mod macros; test!( classes_single, "a {\n color: selector-append(\".c\", \".d\");\n}\n", "a {\n color: .c.d;\n}\n" ); test!( classes_multiple, "a {\n color: selector-append(\".c, .d\", \".e, .f\");\n}\n", "a {\n color: .c.e, .c.f, .d.e, .d.f;\n}\n" ); test!( suffix_single, "a {\n color: selector-append(\".c\", \"d\");\n}\n", "a {\n color: .cd;\n}\n" ); test!( suffix_multiple, "a {\n color: selector-append(\".c, .d\", \"e, f\");\n}\n", "a {\n color: .ce, .cf, .de, .df;\n}\n" ); test!( suffix_descendant, "a {\n color: selector-append(\"c d\", \"e f\");\n}\n", "a {\n color: c de f;\n}\n" ); test!( one_arg, "a {\n color: selector-append(\".c.d\");\n}\n", "a {\n color: .c.d;\n}\n" ); test!( many_args, "a {\n color: selector-append(\".c\", \".d\", \".e\");\n}\n", "a {\n color: .c.d.e;\n}\n" ); test!( paren_first_arg, "a {\n color: selector-append((c, d e), f);\n}\n", "a {\n color: cf, d ef;\n}\n" ); test!( paren_second_arg, "a {\n color: selector-append(c, (d, e f));\n}\n", "a {\n color: cd, ce f;\n}\n" ); test!( output_structure, "a {\n color: selector-append(\"c d, e f\", \"g\") == (\"c\" \"dg\", \"e\" \"fg\");\n}\n", "a {\n color: true;\n}\n" ); error!( universal_in_second_arg, "a {\n color: selector-append(\".c\", \"*\");\n}\n", "Error: Can't append * to .c." ); error!( parent_in_second_arg, "a {\n color: selector-append(\"c\", \"&\");\n}\n", "Error: Parent selectors aren't allowed here." ); error!( malformed_selector_in_first_arg, "a {\n color: selector-append(\"[c\", \".d\");\n}\n", "Error: expected more input." ); error!( invalid_type_in_first_arg, "a {\n color: selector-append(\"c\", 1);\n}\n", "Error: $selectors: 1 is not a valid selector: it must be a string, a list of strings, or a list of lists of strings." ); error!( no_args, "a {\n color: selector-append();\n}\n", "Error: $selectors: At least one selector must be passed." );