<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class</title>
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#attributes-common-to-html-and-mathml-elements">
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dom-and-javascript">
<meta name="assert" content="Verify whether the getElementsByClassName() works for MathML elements.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
  setup({ explicit_done: true });
  window.addEventListener("DOMContentLoaded", function() {
    var mtext = document.getElementsByClassName("cl");
    test(function() {
      assert_equals(mtext.length, 3);
      var mtext_ref = document.body.lastElementChild.firstElementChild;
      mtext_ref = mtext_ref.nextElementSibling.nextElementSibling
      assert_equals(mtext[0], mtext_ref);
      mtext_ref = mtext_ref.nextElementSibling.nextElementSibling;
      assert_equals(mtext[1], mtext_ref);
      mtext_ref = mtext_ref.nextElementSibling.nextElementSibling;
      assert_equals(mtext[2], mtext_ref);
    }, "getElementsByClassName()");
    done();
  });
</script>
</head>
<body>
  <div id="log"></div>
  <math>
    <mtext class="cl_"></mtext>
    <mtext class="c"></mtext>
    <mtext class="cl"></mtext>
    <mtext class="cl_"></mtext>
    <mtext class="cl"></mtext>
    <mtext class="c"></mtext>
    <mtext class="cl"></mtext>
    <mtext class="cl_"></mtext>
  </math>
</body>
</html>
