@@ -1166,6 +1166,60 @@ let test_at_rule_scope () =
11661166 Alcotest. (check (testable Css_fmt_printer. dump_stylesheet eq_ast))
11671167 " different CSS AST" expected_ast ast
11681168
1169+ let test_at_rule_keyframes_with_vendor_prefixes () =
1170+ let css =
1171+ {|
1172+ @- webkit- keyframes slidein {}
1173+ @- moz- keyframes slidein {}
1174+ @- o- keyframes slidein {}
1175+ @- ms- keyframes slidein {}
1176+ | }
1177+ in
1178+ let ast = Css.Parser. parse_stylesheet css in
1179+ let expected_ast =
1180+ ( [
1181+ Rule. At_rule
1182+ {
1183+ At_rule. name = (" -webkit-keyframes" , Location. none);
1184+ prelude =
1185+ ( [ (Component_value. Ident " slidein" , Location. none) ],
1186+ Location. none );
1187+ block = Brace_block. Stylesheet ([] , Location. none);
1188+ loc = Location. none;
1189+ };
1190+ Rule. At_rule
1191+ {
1192+ At_rule. name = (" -moz-keyframes" , Location. none);
1193+ prelude =
1194+ ( [ (Component_value. Ident " slidein" , Location. none) ],
1195+ Location. none );
1196+ block = Brace_block. Stylesheet ([] , Location. none);
1197+ loc = Location. none;
1198+ };
1199+ Rule. At_rule
1200+ {
1201+ At_rule. name = (" -o-keyframes" , Location. none);
1202+ prelude =
1203+ ( [ (Component_value. Ident " slidein" , Location. none) ],
1204+ Location. none );
1205+ block = Brace_block. Stylesheet ([] , Location. none);
1206+ loc = Location. none;
1207+ };
1208+ Rule. At_rule
1209+ {
1210+ At_rule. name = (" -ms-keyframes" , Location. none);
1211+ prelude =
1212+ ( [ (Component_value. Ident " slidein" , Location. none) ],
1213+ Location. none );
1214+ block = Brace_block. Stylesheet ([] , Location. none);
1215+ loc = Location. none;
1216+ };
1217+ ],
1218+ Location. none )
1219+ in
1220+ Alcotest. (check (testable Css_fmt_printer. dump_stylesheet eq_ast))
1221+ " different CSS AST" expected_ast ast
1222+
11691223let test_set =
11701224 [
11711225 (" CSS parser" , `Quick , test_stylesheet_parser);
@@ -1189,4 +1243,7 @@ let test_set =
11891243 (" negative values" , `Quick , test_negative_numbers);
11901244 (" CSS variables" , `Quick , test_css_variables);
11911245 (" @scope" , `Quick , test_at_rule_scope);
1246+ ( " @keyframes with vendor prefixes" ,
1247+ `Quick ,
1248+ test_at_rule_keyframes_with_vendor_prefixes );
11921249 ]
0 commit comments