| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/inspector-test.js"></script> |
| <script> |
| function test() { |
| let suite = InspectorTest.createAsyncSuite("WI.DOMNodeStyles.keyframes"); |
| |
| for (let selector of ["#single", "#multiple", "#none"]) { |
| suite.addTestCase({ |
| name: `WI.DOMNodeStyles.keyframes.${selector}`, |
| async test() { |
| let documentNode = await WI.domManager.requestDocument(); |
| let nodeId = await documentNode.querySelector(selector); |
| let domNodeStyles = WI.cssManager.stylesForNode(WI.domManager.nodeForId(nodeId)); |
| await domNodeStyles.refresh(); |
| |
| let keysForName = new Multimap; |
| for (let keyframe of domNodeStyles.keyframes) { |
| let grouping = keyframe.groupings.find((grouping) => grouping.type === WI.CSSGrouping.Type.KeyframesRule); |
| keysForName.add(grouping.text, keyframe.selectorText); |
| } |
| InspectorTest.log(Array.from(keysForName.sets(), ([name, keys]) => `${name} { ${Array.from(keys).join(", ")} }`).join("\n") || "(none)"); |
| }, |
| }); |
| } |
| |
| suite.addTestCase({ |
| name: `WI.DOMNodeStyles.keyframes.#pseudo::before`, |
| async test() { |
| let documentNode = await WI.domManager.requestDocument(); |
| let nodeId = await documentNode.querySelector("#pseudo"); |
| let domNodeStyles = WI.cssManager.stylesForNode(WI.domManager.nodeForId(nodeId)); |
| await domNodeStyles.refresh(); |
| |
| let keysForName = new Multimap; |
| for (let keyframe of domNodeStyles.pseudoElements.firstValue.keyframes) { |
| let grouping = keyframe.groupings.find((grouping) => grouping.type === WI.CSSGrouping.Type.KeyframesRule); |
| keysForName.add(grouping.text, keyframe.selectorText); |
| } |
| InspectorTest.log(Array.from(keysForName.sets(), ([name, keys]) => `${name} { ${Array.from(keys).join(", ")} }`).join("\n") || "(none)"); |
| }, |
| }); |
| |
| suite.runTestCasesAndFinish(); |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Testing WI.DOMNodeStyles.keyframes.</p> |
| <style> |
| @keyframes fade { from { opacity: 0; } 50% { opacity: 0.5; } to { opacity: 1; } } |
| @keyframes spin { 0%, 100% { transform: rotate(0deg); } } |
| #single { animation: fade 1s; } |
| #multiple { animation: fade 1s, spin 2s; } |
| #pseudo::before { content: ""; animation: fade 1s; } |
| #none { color: red; } |
| </style> |
| <div id="single"></div> |
| <div id="multiple"></div> |
| <div id="pseudo"></div> |
| <div id="none"></div> |
| </body> |
| </html> |