| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <title>CSS Test: handling of invalid url() functions</title> |
| <link rel="author" title="L. David Baron" href="https://dbaron.org/" /> |
| <link rel="author" title="Mozilla Corporation" href="http://mozilla.com/" /> |
| <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#tokenization" /> |
| <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#parsing-errors" /> |
| <link rel="match" href="uri-013-ref.xht"/> |
| <meta name="flags" content="invalid" /> |
| <style type="text/css"> |
| div { background-color: red } |
| </style> |
| <style type="text/css"> |
| /* not a URI token, but handled according to rules for parsing errors */ |
| #one { background: url(foo"bar") } |
| #one { background-color: green; } |
| </style> |
| <style type="text/css"> |
| /* not a URI token, but handled according to rules for parsing errors */ |
| #foo { background: url(foo"bar |
| ) } |
| #two { background-color: green; } |
| </style> |
| <style type="text/css"> |
| /* not a URI token; the unterminated string ends at end of line, so |
| the brace never matches */ |
| #three { background-color: green; } |
| #foo { background: url(foo"bar) } |
| #three { background-color: red; } |
| </style> |
| <style type="text/css"> |
| /* not a URI token; the unterminated string ends at end of line */ |
| #foo { background: url(foo"bar) } |
| ) } |
| #four { background-color: green; } |
| </style> |
| <style type="text/css"> |
| /* not a URI token; the unterminated string ends at end of line, so |
| the brace never matches */ |
| #five { background-color: green; } |
| #foo { background: url("bar) } |
| #five { background-color: red; } |
| </style> |
| <style type="text/css"> |
| /* not a URI token; the unterminated string ends at end of line */ |
| #foo { background: url("bar) } |
| ) } |
| #six { background-color: green; } |
| </style> |
| <style type="text/css"> |
| /* not a URI token, but brace matching should work */ |
| #seven { background: url(()); background-color: green; } |
| </style> |
| <style type="text/css"> |
| /* not a URI token, but brace matching should work */ |
| #eight { background: url([{}]); background-color: green; } |
| </style> |
| <style type="text/css"> |
| /* not a URI token, but brace matching should work */ |
| #nine { background: url([)]); background-color: green; } |
| </style> |
| <style type="text/css"> |
| /* perfectly good URI token (image is a 404, though) */ |
| #ten { background: url({) green; } |
| </style> |
| <style type="text/css"> |
| /* perfectly good URI token (image is a 404, though) */ |
| #eleven { background: url([) green; } |
| </style> |
| <style type="text/css"> |
| /* not a URI token; brace matching should work only after invalid URI token */ |
| #twelve { background: url(}{""{)}); background-color: green; } |
| </style> |
| <style type="text/css"> |
| /* invalid URI token absorbs the [ */ |
| #thirteen { background: url([""); background-color: green; } |
| </style> |
| <style type="text/css"> |
| /* not a URI token; the opening ( is never matched */ |
| #fourteen { background-color: green; } |
| #foo { background: url(() } |
| #fourteen { background-color: red; } |
| </style> |
| <!-- The next three tests test that invalid URI tokens absorb [ and { --> |
| <style type="text/css"> |
| #foo { background: url(a()); } |
| #fifteen { background-color: green } |
| </style> |
| <style type="text/css"> |
| #foo { background: url([()); } |
| #sixteen { background-color: green } |
| </style> |
| <style type="text/css"> |
| #foo { background: url({()); } |
| #seventeen { background-color: green } |
| </style> |
| </head> |
| <body> |
| <div id="one">This should have a green background</div> |
| <div id="two">This should have a green background</div> |
| <div id="three">This should have a green background</div> |
| <div id="four">This should have a green background</div> |
| <div id="five">This should have a green background</div> |
| <div id="six">This should have a green background</div> |
| <div id="seven">This should have a green background</div> |
| <div id="eight">This should have a green background</div> |
| <div id="nine">This should have a green background</div> |
| <div id="ten">This should have a green background</div> |
| <div id="eleven">This should have a green background</div> |
| <div id="twelve">This should have a green background</div> |
| <div id="thirteen">This should have a green background</div> |
| <div id="fourteen">This should have a green background</div> |
| <div id="fifteen">This should have a green background</div> |
| <div id="sixteen">This should have a green background</div> |
| <div id="seventeen">This should have a green background</div> |
| </body> |
| </html> |