@@ -1166,6 +1166,60 @@ let test_at_rule_scope () =
11661166  Alcotest. (check (testable Css_fmt_printer. dump_stylesheet eq_ast))
11671167    " different CSS 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" 
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