DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Untracked file

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=375363
-->
<head>
  <title>Test for parsing, storage, and serialization of CSS '-moz-initial'</title>
  <script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <script type="text/javascript" src="property_database.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=375363">Mozilla Bug 375363</a>
<p id="display"></p>
<div id="content" style="display: none">

<div id="testnode"></div>
  
</div>
<pre id="test">
<script class="testbody" type="text/javascript">

/** Test for parsing, storage, and serialization of CSS '-moz-initial' **/

var gDeclaration = document.getElementById("testnode").style;

var gKnownFails = {
  /* bug 377519: */
  "-moz-border-end": true,
  "-moz-border-radius": true,
  "-moz-border-start": true,
  "-moz-outline-radius": true,
  "background": true,
  "border": true,
  "border-bottom": true,
  "border-color": true,
  "border-left": true,
  "border-right": true,
  "border-style": true,
  "border-top": true,
  "border-width": true,
  "cue": true,
  "font": true,
  "list-style": true,
  "margin": true,
  "outline": true,
  "padding": true,
  "pause": true
};

var gKnownFails2 = {
  "-moz-border-end": true,
  "-moz-border-radius": true,
  "-moz-border-start": true,
  "-moz-outline-radius": true,
  "background": true,
  "border": true,
  "border-bottom": true,
  "border-left": true,
  "border-right": true,
  "border-top": true,
  "cue": true,
  "font": true,
  "list-style": true,
  "outline": true,
  "pause": true
};

function test_property(property)
{
  var info = gCSSProperties[property];

  function check_initial(sproperty) {
    var sinfo = gCSSProperties[sproperty];
    var val = gDeclaration.getPropertyValue(sproperty);
    is(val, "", "value of '" + sproperty + "' before we do anything");
    if (sinfo.domProp) {
      is(val, gDeclaration[sinfo.domProp],
         "consistency between decl.getPropertyValue('" + sproperty + "') and decl." + sinfo.domProp);
    }
  }
  check_initial(property);
  if ("subproperties" in info)
    for (var idx in info.subproperties)
      check_initial(info.subproperties[idx]);

  gDeclaration.setProperty(property, "-moz-initial", "");

  function check_set(sproperty) {
    var sinfo = gCSSProperties[sproperty];
    val = gDeclaration.getPropertyValue(sproperty);
    var func = is;
    if (sproperty == property && property in gKnownFails)
      func = todo_is;
    func(val, "-moz-initial",
         "-moz-initial reported back for property '" + sproperty + "'");
    if (sinfo.domProp) {
      is(val, gDeclaration[sinfo.domProp],
         "consistency between decl.getPropertyValue('" + sproperty +
         "') and decl." + sinfo.domProp);
    }
  }
  check_set(property);
  if ("subproperties" in info)
    for (var idx in info.subproperties)
      check_set(info.subproperties[idx]);

  // We don't care particularly about the whitespace or the placement of
  // semicolons, but for simplicity we'll test the current behavior.
  var cssTextFunc = is;
  if (property in gKnownFails2)
    cssTextFunc = todo_is;
  cssTextFunc(gDeclaration.cssText, property + ": -moz-initial;",
    "declaration should serialize to exactly what went in (for -moz-initial)");

  gDeclaration.removeProperty(property);

  function check_final(sproperty) {
    var sinfo = gCSSProperties[sproperty];
    var val = gDeclaration.getPropertyValue(sproperty);
    is(val, "", "value of '" + sproperty + "' after removal of value");
    if (sinfo.domProp) {
      is(val, gDeclaration[sinfo.domProp],
         "consistency between decl.getPropertyValue('" + sproperty + "') and decl." + sinfo.domProp);
    }
  }
  check_final(property);
  if ("subproperties" in info)
    for (var idx in info.subproperties)
      check_final(info.subproperties[idx]);
}

for (var prop in gCSSProperties)
  test_property(prop);

</script>
</pre>
</body>
</html>