auto-name-get-animations.html (2124B)
1 <!DOCTYPE html> 2 <html > 3 <title>View transitions: generated names should be prefixed with -ua- in script</title> 4 <link rel="help" href="https://drafts.csswg.org/css-view-transitions-2/"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <style> 8 9 :root { 10 view-transition-name: none; 11 } 12 13 div { 14 width: 100px; 15 height: 100px; 16 } 17 18 main { 19 display: flex; 20 flex-direction: column; 21 } 22 23 .item1 { 24 view-transition-name: auto; 25 } 26 27 .item2 { 28 view-transition-name: match-element; 29 } 30 31 main.switch .item1 { 32 order: 2; 33 } 34 35 .item1 { 36 background: green; 37 } 38 39 .item2 { 40 background: yellow; 41 position: relative; 42 left: 100px; 43 } 44 45 </style> 46 47 <main> 48 <div class="item item1"></div> 49 <div class="item item2"></div> 50 </main> 51 52 <script> 53 promise_test(async t => { 54 await new Promise(resolve => requestAnimationFrame(() => resolve())); 55 await document.startViewTransition(() => { 56 document.querySelector("main").classList.add("switch"); 57 }).ready; 58 const animations = document.documentElement.getAnimations({subtree: true}); 59 const pseudos = Array.from(new Set(animations.map(a => a.effect.pseudoElement))); 60 const item1GeneratedName = pseudos[0].replace("::view-transition-group(", "").slice(0, -1); 61 const item2GeneratedName = pseudos[3].replace("::view-transition-group(", "").slice(0, -1); 62 assert_true(item1GeneratedName.startsWith("-ua-"), "Item 1 generated name starts with -ua-"); 63 assert_true(item2GeneratedName.startsWith("-ua-"), "Item 2 generated name starts with -ua-"); 64 assert_array_equals(pseudos, 65 [ 66 `::view-transition-group(${item1GeneratedName})`, 67 `::view-transition-old(${item1GeneratedName})`, 68 `::view-transition-new(${item1GeneratedName})`, 69 `::view-transition-group(${item2GeneratedName})`, 70 `::view-transition-old(${item2GeneratedName})`, 71 `::view-transition-new(${item2GeneratedName})` 72 ], "Generated names should start with -ua- and pseudo-elements should be in tree order"); 73 }, "Generated view-transition-names should be prefixed with -ua- in script"); 74 </script> 75 76 </body>