Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/dom/base/test/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 5 kB image not shown  

Quelle  test_getTranslationNodes.html   Sprache: HTML

 
 products/sources/formale Sprachen/C/Firefox/dom/base/test/test_getTranslationNodes.html


<!DOCTYPE HTML>
<html>
<head>
  <title>Test for nsIDOMWindowUtils.getTranslationNodes</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</head>
<body onload="runTest()">
<script type="application/javascript">
  var utils = SpecialPowers.getDOMWindowUtils(window);


  function testTranslationRoot(rootNode) {
    var translationNodes = utils.getTranslationNodes(rootNode);

    var expectedResult = rootNode.getAttribute("expected");
    var expectedLength = expectedResult.split(" ").length;

    is(translationNodes.length, expectedLength,
       "Correct number of translation nodes for testcase " + rootNode.id);

    var resultList = [];
    for (var i = 0; i < translationNodes.length; i++) {
      var node = translationNodes.item(i).localName;
      if (translationNodes.isTranslationRootAtIndex(i)) {
        node += "[root]"
      }
      resultList.push(node);
    }

    is(resultList.length, translationNodes.length,
       "Correct number of translation nodes for testcase " + rootNode.id);

    is(resultList.join(" "), expectedResult,
       "Correct list of translation nodes for testcase " + rootNode.id);
  }

  function runTest() {
    isnot(utils, null, "nsIDOMWindowUtils");

    var testcases = document.querySelectorAll("div[expected]");
    for (var testcase of testcases) {
      testTranslationRoot(testcase);
    }

    var testiframe = document.getElementById("testiframe");
    var iframediv = testiframe.contentDocument.querySelector("div");
    try {
      var foo = utils.getTranslationNodes(iframediv);
      ok(false, "Cannot use a node from a different document");
    } catch (e) {
      is(e.name, "WrongDocumentError""Cannot use a node from a different document");
    }

    SimpleTest.finish();
  }

  SimpleTest.waitForExplicitFinish();
</script>

<!-- Test that an inline element inside a root is not a root -->
<div id="testcase1"
     expected="div[root] span">
  <div>
    lorem ipsum <span>dolor</span> sit amet
  </div>
</div>

<!-- Test that a usually inline element becomes a root if it is
     displayed as a block -->

<div id="testcase2"
     expected="div[root] span[root]">
  <div>
    lorem ipsum <span style="display: block;">dolor</span> sit amet
  </div>
</div>

<!-- Test that the content-less <div> is ignored and only the
     <p> with content is returned -->

<div id="testcase3"
     expected="p[root]">
  <div>
    <p>lorem ipsum</p>
  </div>
</div>

<!-- Test that an inline element which the parent is not a root
     becomes a root -->

<div id="testcase4"
     expected="span[root]">
  <div>
    <span>lorem ipsum</span>
  </div>
</div>

<!-- Test siblings -->
<div id="testcase5"
     expected="li[root] li[root]">
  <ul>
    <li>lorem</li>
    <li>ipsum</li>
  </ul>
</div>

<!-- Test <ul> with content outside li -->
<div id="testcase6"
     expected="ul[root] li[root] li[root]">
  <ul>Lorem
    <li>lorem</li>
    <li>ipsum</li>
  </ul>
</div>

<!-- Test inline siblings -->
<div id="testcase7"
     expected="ul[root] li li">
  <ul>Lorem
    <li style="display: inline">lorem</li>
    <li style="display: inline">ipsum</li>
  </ul>
</div>

<!-- Test inline siblings becoming roots -->
<div id="testcase8"
     expected="li[root] li[root]">
  <ul>
    <li style="display: inline">lorem</li>
    <li style="display: inline">ipsum</li>
  </ul>
</div>

<!-- Test that nodes with only punctuation, whitespace
     or numbers are ignored -->

<div id="testcase9"
     expected="li[root] li[root]">
  <ul>
    <li>lorem</li>
    <li>ipsum</li>
    <li>-.,;'/!@#$%^*()
    <li>0123456789</li>
    <li>
          </li>
  </ul>
</div>

<!-- Test paragraphs -->
<div id="testcase10"
     expected="p[root] a b p[root] a b">
  <p>Lorem ipsum <a href="a.htm">dolor</a> sit <b>amet</b>, consetetur</p>
  <p>Lorem ipsum <a href="a.htm">dolor</a> sit <b>amet</b>, consetetur</p>
</div>

<!-- Test that a display:none element is not ignored -->
<div id="testcase11"
     expected="p[root] a b">
  <p>Lorem ipsum <a href="a.htm">dolor</a> sit <b style="display:none">amet</b>, consetetur</p>
</div>

<!-- Test that deep nesting does not cause useless content to be returned -->
<div id="testcase12"
     expected="p[root]">
  <div>
    <div>
      <div>
        <p>Lorem ipsum</p>
      </div>
    </div>
  </div>
</div>

<!-- Test that deep nesting does not cause useless content to be returned -->
<div id="testcase13"
     expected="div[root] p[root]">
  <div>Lorem ipsum
    <div>
      <div>
        <p>Lorem ipsum</p>
      </div>
    </div>
  </div>
</div>

<!-- Test that non-html elements and elements that usually have non-translatable
     content are ignored -->

<div id="testcase14"
     expected="div[root]">
  <div>
    Lorem Ipsum
    <noscript>Lorem Ipsum</noscript>
    <style>.dummyClass { color: blue; }</style>
    <script> /* script tag */ </script>
    <codecode </code>
    <iframe id="testiframe"
            srcdoc="
Lorem ipsum
"
>
    </iframe>
    <svg>lorem</svg>
    <math>ipsum</math>
  </div>
</div>

<!-- Test that nesting of inline elements won't produce roots as long as
     the parents are in the list of translation nodes -->

<div id="testcase15"
     expected="p[root] a b span em">
  <p>Lorem <a>ipsum <b>dolor <span>sit</span> amet</b></a>, <em>consetetur</em></p>
</div>

<!-- Test that comment nodes are not considered for translation -->
<div id="testcase16"
     expected="p[root] p[root]">
  <p>Lorem ipsum</p>
  <div>  <!-- Comment -->  </div>
  <p>Lorem ipsum</p>
</div>

<!-- Test that comment nodes are not considered for translation -->
<div id="testcase17"
     expected="p[root]">
  <div>
    <!-- Comment -->
    <p>Lorem Ipsum</p>
  </div>
</div>
</body>
</html>

Messung V0.5
C=99 H=100 G=99

¤ Dauer der Verarbeitung: 0.28 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.