layout/reftests/css-parsing/invalid-url-handling.xhtml
author Xidorn Quan <quanxunzhen@gmail.com>
Thu, 02 Oct 2014 14:24:32 -0400
changeset 235931 d79568d581e64100b24d4612fee26e74d6dd33a4
parent 43065 fb1e226d7c1171084d32d1c0ec5ee1e0a8bd8fe5
permissions -rw-r--r--
Bug 1075336 - Fix lifetime management of CounterStyle. r=dbaron, a=sledru

<!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="http://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" />
  <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>