layout/mathml/tests/stretchy-and-large-operators.html
author moz-wptsync-bot <wptsync@mozilla.com>
Wed, 20 Feb 2019 11:15:05 +0000
changeset 522542 db896ec3c023252eb95bac8b48cb422098224195
parent 129413 36477d961bf232785d062a48441e0da993de6268
permissions -rw-r--r--
Bug 1529092 [wpt PR 15464] - Update wpt metadata, a=testonly wpt-pr: 15464 wpt-type: metadata

<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80:  -->
<!DOCTYPE html>
<html>
  <head>
    <title>Test Stretchy and Large Operators</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this
   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
    <script type="text/javascript"
            src="stretchy-and-large-operators.js"></script>
    <script type="text/javascript">

      var mathml = "http://www.w3.org/1998/Math/MathML";

      function createMo(aOperator, aForm)
      {
        var mo = document.createElementNS(mathml, "mo");
        mo.appendChild(document.createTextNode(aOperator));
        mo.setAttribute("form", aForm);
        return mo;
      }

      function createTest(aEntry)
      {
        var opname = aEntry[0];
        var operator = aEntry[1];
        var type = aEntry[2];
        var form = aEntry[3];

        var div = document.createElement("div");
        div.appendChild(document.createTextNode(opname));

        var math = document.createElementNS(mathml, "math");

        switch (type)
        {
          case "l": // largeop
            math.appendChild(createMo(operator, form));
            var mstyle = document.createElementNS(mathml, "mstyle");
            mstyle.setAttribute("displaystyle", "true");
            mstyle.appendChild(createMo(operator, form));
            math.appendChild(mstyle);
          break;

          case "v": // vertical
            for (var i = 1; i < 10; i+=2) {
              var mo = createMo(operator, form);
              mo.setAttribute("minsize", (.5 * i) + "em");
              math.appendChild(mo);
            }
          break;

          case "h": // horizontal
            for (var i = 1; i < 10; i+=2) {
              var mo = createMo(operator, form);
              var mspace = document.createElementNS(mathml, "mspace");
              mspace.setAttribute("width", (.5 * i) + "em");
              var mover = document.createElementNS(mathml, "mover");
              mover.setAttribute("accent", "false");
              mover.appendChild(mspace);
              mover.appendChild(mo);
              math.appendChild(mover);
            }
          break;

          default:
          break;
        }

        div.appendChild(math);
        document.body.appendChild(div);
      }

      function init()
      {
        for (var i in stretchy_and_large_operators) {
          createTest(stretchy_and_large_operators[i]);
        }
      }
    </script>
  </head>

  <body onload="init()">

 </body>
</html>