Blame dom/base/test/test_getTranslationNodes.html

Packit f0b94e
Packit f0b94e
<html>
Packit f0b94e
<head>
Packit f0b94e
  <title>Test for nsIDOMWindowUtils.getTranslationNodes</title>
Packit f0b94e
  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
Packit f0b94e
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
Packit f0b94e
</head>
Packit f0b94e
<body onload="runTest()">
Packit f0b94e
<script type="application/javascript">
Packit f0b94e
  var utils = SpecialPowers.wrap(window).
Packit f0b94e
              QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor).
Packit f0b94e
              getInterface(SpecialPowers.Ci.nsIDOMWindowUtils);
Packit f0b94e
Packit f0b94e
Packit f0b94e
  function testTranslationRoot(rootNode) {
Packit f0b94e
    var translationNodes = utils.getTranslationNodes(rootNode);
Packit f0b94e
Packit f0b94e
    var expectedResult = rootNode.getAttribute("expected");
Packit f0b94e
    var expectedLength = expectedResult.split(" ").length;
Packit f0b94e
Packit f0b94e
    is(translationNodes.length, expectedLength,
Packit f0b94e
       "Correct number of translation nodes for testcase " + rootNode.id);
Packit f0b94e
Packit f0b94e
    var resultList = [];
Packit f0b94e
    for (var i = 0; i < translationNodes.length; i++) {
Packit f0b94e
      var node = translationNodes.item(i).localName;
Packit f0b94e
      if (translationNodes.isTranslationRootAtIndex(i)) {
Packit f0b94e
        node += "[root]"
Packit f0b94e
      }
Packit f0b94e
      resultList.push(node);
Packit f0b94e
    }
Packit f0b94e
Packit f0b94e
    is(resultList.length, translationNodes.length,
Packit f0b94e
       "Correct number of translation nodes for testcase " + rootNode.id);
Packit f0b94e
Packit f0b94e
    is(resultList.join(" "), expectedResult,
Packit f0b94e
       "Correct list of translation nodes for testcase " + rootNode.id);
Packit f0b94e
  }
Packit f0b94e
Packit f0b94e
  function runTest() {
Packit f0b94e
    isnot(utils, null, "nsIDOMWindowUtils");
Packit f0b94e
Packit f0b94e
    var testcases = document.querySelectorAll("div[expected]");
Packit f0b94e
    for (var testcase of testcases) {
Packit f0b94e
      testTranslationRoot(testcase);
Packit f0b94e
    }
Packit f0b94e
Packit f0b94e
    var testiframe = document.getElementById("testiframe");
Packit f0b94e
    var iframediv = testiframe.contentDocument.querySelector("div");
Packit f0b94e
    try {
Packit f0b94e
      var foo = utils.getTranslationNodes(iframediv);
Packit f0b94e
      ok(false, "Cannot use a node from a different document");
Packit f0b94e
    } catch (e) {
Packit f0b94e
      is(e.name, "WrongDocumentError", "Cannot use a node from a different document");
Packit f0b94e
    }
Packit f0b94e
Packit f0b94e
    SimpleTest.finish();
Packit f0b94e
  }
Packit f0b94e
Packit f0b94e
  SimpleTest.waitForExplicitFinish();
Packit f0b94e
</script>
Packit f0b94e
Packit f0b94e
Packit f0b94e
Packit f0b94e
     expected="div[root] span">
Packit f0b94e
  
Packit f0b94e
    lorem ipsum dolor sit amet
Packit f0b94e
  
Packit f0b94e
Packit f0b94e
Packit f0b94e
Packit f0b94e
     displayed as a block -->
Packit f0b94e
Packit f0b94e
     expected="div[root] span[root]">
Packit f0b94e
  
Packit f0b94e
    lorem ipsum dolor sit amet
Packit f0b94e
  
Packit f0b94e
Packit f0b94e
Packit f0b94e
Packit f0b94e
     

with content is returned -->

Packit f0b94e
Packit f0b94e
     expected="p[root]">
Packit f0b94e
  
Packit f0b94e
    

lorem ipsum

Packit f0b94e
  
Packit f0b94e
Packit f0b94e
Packit f0b94e
Packit f0b94e
     becomes a root -->
Packit f0b94e
Packit f0b94e
     expected="span[root]">
Packit f0b94e
  
Packit f0b94e
    lorem ipsum
Packit f0b94e
  
Packit f0b94e
Packit f0b94e
Packit f0b94e
Packit f0b94e
Packit f0b94e
     expected="li[root] li[root]">
Packit f0b94e
  
    Packit f0b94e
        
  • lorem
  • Packit f0b94e
        
  • ipsum
  • Packit f0b94e
      
    Packit f0b94e
    Packit f0b94e
    Packit f0b94e
    Packit f0b94e
    Packit f0b94e
         expected="ul[root] li[root] li[root]">
    Packit f0b94e
      
      Lorem
    Packit f0b94e
        
  • lorem
  • Packit f0b94e
        
  • ipsum
  • Packit f0b94e
      
    Packit f0b94e
    Packit f0b94e
    Packit f0b94e
    Packit f0b94e
    Packit f0b94e
         expected="ul[root] li li">
    Packit f0b94e
      
      Lorem
    Packit f0b94e
        
  • lorem
  • Packit f0b94e
        
  • ipsum
  • Packit f0b94e
      
    Packit f0b94e
    Packit f0b94e
    Packit f0b94e
    Packit f0b94e
    Packit f0b94e
         expected="li[root] li[root]">
    Packit f0b94e
      
      Packit f0b94e
          
    • lorem
    • Packit f0b94e
          
    • ipsum
    • Packit f0b94e
        
      Packit f0b94e
      Packit f0b94e
      Packit f0b94e
      Packit f0b94e
           or numbers are ignored -->
      Packit f0b94e
      Packit f0b94e
           expected="li[root] li[root]">
      Packit f0b94e
        
        Packit f0b94e
            
      • lorem
      • Packit f0b94e
            
      • ipsum
      • Packit f0b94e
            
      • -.,;'/!@#$%^*()
      • Packit f0b94e
            
      • 0123456789
      • Packit f0b94e
            
      • Packit f0b94e
                  
        Packit f0b94e
          
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
             expected="p[root] a b p[root] a b">
        Packit f0b94e
          

        Lorem ipsum dolor sit amet, consetetur

        Packit f0b94e
          

        Lorem ipsum dolor sit amet, consetetur

        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
             expected="p[root] a b">
        Packit f0b94e
          

        Lorem ipsum dolor sit amet, consetetur

        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
             expected="p[root]">
        Packit f0b94e
          
        Packit f0b94e
            
        Packit f0b94e
              
        Packit f0b94e
                

        Lorem ipsum

        Packit f0b94e
              
        Packit f0b94e
            
        Packit f0b94e
          
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
             expected="div[root] p[root]">
        Packit f0b94e
          
        Lorem ipsum
        Packit f0b94e
            
        Packit f0b94e
              
        Packit f0b94e
                

        Lorem ipsum

        Packit f0b94e
              
        Packit f0b94e
            
        Packit f0b94e
          
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
             content are ignored -->
        Packit f0b94e
        Packit f0b94e
             expected="div[root]">
        Packit f0b94e
          
        Packit f0b94e
            Lorem Ipsum
        Packit f0b94e
            
        Packit f0b94e
            <style>.dummyClass { color: blue; }</style>
        Packit f0b94e
            <script> /* script tag */ </script>
        Packit f0b94e
             code 
        Packit f0b94e
            
        Packit f0b94e
                    srcdoc="
        Lorem ipsum
        ">
        Packit f0b94e
            </iframe>
        Packit f0b94e
            <svg>lorem</svg>
        Packit f0b94e
            <math>ipsum</math>
        Packit f0b94e
          
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
             the parents are in the list of translation nodes -->
        Packit f0b94e
        Packit f0b94e
             expected="p[root] a b span em">
        Packit f0b94e
          

        Lorem ipsum dolor sit amet, consetetur

        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
             expected="p[root] p[root]">
        Packit f0b94e
          

        Lorem ipsum

        Packit f0b94e
          
        Packit f0b94e
          

        Lorem ipsum

        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
        Packit f0b94e
             expected="p[root]">
        Packit f0b94e
          
        Packit f0b94e
            
        Packit f0b94e
            

        Lorem Ipsum

        Packit f0b94e
          
        Packit f0b94e
        Packit f0b94e
        </body>
        Packit f0b94e
        </html>