| <head> |
| <style> |
| #a { content: url(c); } |
| #b { content: url( d); } |
| #c { content: url(e ); } |
| #d { content: url( f ); } |
| #f { content: url('c'); } |
| #g { content: url(' d'); } |
| #h { content: url('e '); } |
| #i { content: url(' f '); } |
| #j { content: url("url(g)"); } |
| #l { content: url("c"); } |
| #m { content: url(" d"); } |
| #n { content: url("e "); } |
| #o { content: url(" f "); } |
| #p { content: url("url(g)"); } |
| #q { cursor: url("url(q)"), default; } |
| #r { list-style-image: url("url(r)"); } |
| #s { background-image: url("url(s)"); } |
| #t { -webkit-mask-image: url("url(t)"); } |
| #u { -webkit-border-image: url("url(u)") 1 2 3 4 fill stretch round; } |
| #v { -webkit-mask-box-image: url("url(v)") 1 2 3 4 fill stretch round; } |
| #w { content: url("w\0d\ |
| w"); /* URL string contains twice newline */ } |
| #x { content: url(" x x x "); } /* URL string contains space and tab */ |
| #y { content: url( y\20y\9y ); } /* URL string contains space and tab */ |
| </style> |
| |
| <script> |
| |
| // Some ideas for additional things to test in the future: |
| // 1) Actual control characters in the <style> element. |
| // 2) URL with only space characters in it. |
| // 3) Different CSS space characters, and spaces that are not allowed in CSS. |
| // 4) Different CSS space characters, and spaces that are not allowed in CSS. |
| // 5) The src property inside font-face. |
| // 6) Quoted values that are themselves inside quotes (two levels of quotes). |
| |
| function runTest() |
| { |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var rules = document.styleSheets[0].cssRules; |
| var text = ""; |
| for (var i = 0; i < rules.length; i++) { |
| var itemText = rules.item(i).cssText; |
| |
| // Work around bug where WebKit completes the URLs in the CSS DOM. |
| // The completion of the URL should be when they are used, not in the DOM. |
| itemText = itemText.replace(/file:.*LayoutTests\/fast\/css\//, ""); |
| |
| text += itemText; |
| text += "\n"; |
| } |
| |
| document.getElementById("result").appendChild(document.createTextNode(text)); |
| |
| if (document.getElementById("result").firstChild.data === document.getElementById("expected").firstChild.data) |
| document.getElementById("message").firstChild.data = "SUCCESS"; |
| else |
| document.getElementById("message").firstChild.data = "FAILURE"; |
| } |
| |
| </script> |
| |
| </head> |
| |
| <body onload="runTest()"> |
| |
| <p>Test parsing of CSS URI tokens. Older versions of WebKit did some double processing of these, hence this test would have failed.</p> |
| |
| <p id="message">TEST DID NOT COMPLETE</p> |
| |
| <p>Rules from the stylesheet:</p> |
| |
| <pre id="result"></pre> |
| |
| <p>Expected result:</p> |
| |
| <pre id="expected">#a { content: url("c"); } |
| #b { content: url("d"); } |
| #c { content: url("e"); } |
| #d { content: url("f"); } |
| #f { content: url("c"); } |
| #g { content: url("d"); } |
| #h { content: url("e"); } |
| #i { content: url("f"); } |
| #j { content: url("url(g)"); } |
| #l { content: url("c"); } |
| #m { content: url("d"); } |
| #n { content: url("e"); } |
| #o { content: url("f"); } |
| #p { content: url("url(g)"); } |
| #q { cursor: url("url(q)"), default; } |
| #r { list-style-image: url("url(r)"); } |
| #s { background-image: url("url(s)"); } |
| #t { -webkit-mask-image: url("url(t)"); } |
| #u { -webkit-border-image: url("url(u)") 1 2 3 4 fill stretch round; } |
| #v { -webkit-mask-box-image: url("url(v)") 1 2 3 4 fill stretch round; } |
| #w { content: url("ww"); } |
| #x { content: url("x%20xx"); } |
| #y { content: url("y%20yy"); } |
| </pre> |
| |
| <script> |
| |
| </script> |
| </body> |