Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  browser_bug396843.js   Sprache: JAVA

 
/** Test for Bug 396843 **/

function testInDocument(doc, documentID) {
  var allNodes = [];
  var XMLNodes = [];

  // HTML
  function HTML_TAG(name) {
    allNodes.push(doc.createElementNS("http://www.w3.org/1999/xhtml", name));
  }

  /* List copy/pasted from nsHTMLTagList.h */
  HTML_TAG("a""Anchor");
  HTML_TAG("abbr""Span");
  HTML_TAG("acronym""Span");
  HTML_TAG("address""Span");
  HTML_TAG("applet""Unknown");
  HTML_TAG("area""Area");
  HTML_TAG("b""Span");
  HTML_TAG("base""Shared");
  HTML_TAG("basefont""Span");
  HTML_TAG("bdi""");
  HTML_TAG("bdo""Span");
  HTML_TAG("bgsound""Span");
  HTML_TAG("big""Span");
  HTML_TAG("blockquote""Shared");
  HTML_TAG("body""Body");
  HTML_TAG("br""BR");
  HTML_TAG("button""Button");
  HTML_TAG("canvas""Canvas");
  HTML_TAG("caption""TableCaption");
  HTML_TAG("center""Span");
  HTML_TAG("cite""Span");
  HTML_TAG("code""Span");
  HTML_TAG("col""TableCol");
  HTML_TAG("colgroup""TableCol");
  HTML_TAG("dd""Span");
  HTML_TAG("del""Mod");
  HTML_TAG("dfn""Span");
  HTML_TAG("dir""Shared");
  HTML_TAG("div""Div");
  HTML_TAG("dl""SharedList");
  HTML_TAG("dt""Span");
  HTML_TAG("em""Span");
  HTML_TAG("embed""Embed");
  HTML_TAG("fieldset""FieldSet");
  HTML_TAG("font""Font");
  HTML_TAG("form""Form");
  HTML_TAG("frame""Frame");
  HTML_TAG("frameset""FrameSet");
  HTML_TAG("h1""Heading");
  HTML_TAG("h2""Heading");
  HTML_TAG("h3""Heading");
  HTML_TAG("h4""Heading");
  HTML_TAG("h5""Heading");
  HTML_TAG("h6""Heading");
  HTML_TAG("head""Head");
  HTML_TAG("hr""HR");
  HTML_TAG("html""Html");
  HTML_TAG("i""Span");
  HTML_TAG("iframe""IFrame");
  HTML_TAG("image""");
  HTML_TAG("img""Image");
  HTML_TAG("input""Input");
  HTML_TAG("ins""Mod");
  HTML_TAG("isindex""Unknown");
  HTML_TAG("kbd""Span");
  HTML_TAG("keygen""Span");
  HTML_TAG("label""Label");
  HTML_TAG("legend""Legend");
  HTML_TAG("li""LI");
  HTML_TAG("link""Link");
  HTML_TAG("listing""Span");
  HTML_TAG("map""Map");
  HTML_TAG("marquee""Div");
  HTML_TAG("menu""Shared");
  HTML_TAG("meta""Meta");
  HTML_TAG("multicol""Unknown");
  HTML_TAG("nobr""Span");
  HTML_TAG("noembed""Div");
  HTML_TAG("noframes""Div");
  HTML_TAG("noscript""Div");
  HTML_TAG("object""Object");
  HTML_TAG("ol""SharedList");
  HTML_TAG("optgroup""OptGroup");
  HTML_TAG("option""Option");
  HTML_TAG("p""Paragraph");
  HTML_TAG("param""Shared");
  HTML_TAG("plaintext""Span");
  HTML_TAG("pre""Pre");
  HTML_TAG("q""Shared");
  HTML_TAG("s""Span");
  HTML_TAG("samp""Span");
  HTML_TAG("script""Script");
  HTML_TAG("select""Select");
  HTML_TAG("small""Span");
  HTML_TAG("spacer""Unknown");
  HTML_TAG("span""Span");
  HTML_TAG("strike""Span");
  HTML_TAG("strong""Span");
  HTML_TAG("style""Style");
  HTML_TAG("sub""Span");
  HTML_TAG("sup""Span");
  HTML_TAG("table""Table");
  HTML_TAG("tbody""TableSection");
  HTML_TAG("td""TableCell");
  HTML_TAG("textarea""TextArea");
  HTML_TAG("tfoot""TableSection");
  HTML_TAG("th""TableCell");
  HTML_TAG("thead""TableSection");
  HTML_TAG("template""Template");
  HTML_TAG("title""Title");
  HTML_TAG("tr""TableRow");
  HTML_TAG("tt""Span");
  HTML_TAG("u""Span");
  HTML_TAG("ul""SharedList");
  HTML_TAG("var""Span");
  HTML_TAG("wbr""Shared");
  HTML_TAG("xmp""Span");

  function SVG_TAG(name) {
    allNodes.push(doc.createElementNS("http://www.w3.org/2000/svg", name));
  }

  // List sorta stolen from SVG element factory.
  SVG_TAG("a");
  SVG_TAG("polyline");
  SVG_TAG("polygon");
  SVG_TAG("circle");
  SVG_TAG("ellipse");
  SVG_TAG("line");
  SVG_TAG("rect");
  SVG_TAG("svg");
  SVG_TAG("g");
  SVG_TAG("foreignObject");
  SVG_TAG("path");
  SVG_TAG("text");
  SVG_TAG("tspan");
  SVG_TAG("image");
  SVG_TAG("style");
  SVG_TAG("linearGradient");
  SVG_TAG("metadata");
  SVG_TAG("radialGradient");
  SVG_TAG("stop");
  SVG_TAG("defs");
  SVG_TAG("desc");
  SVG_TAG("script");
  SVG_TAG("use");
  SVG_TAG("symbol");
  SVG_TAG("marker");
  SVG_TAG("title");
  SVG_TAG("clipPath");
  SVG_TAG("textPath");
  SVG_TAG("filter");
  SVG_TAG("feBlend");
  SVG_TAG("feColorMatrix");
  SVG_TAG("feComponentTransfer");
  SVG_TAG("feComposite");
  SVG_TAG("feFuncR");
  SVG_TAG("feFuncG");
  SVG_TAG("feFuncB");
  SVG_TAG("feFuncA");
  SVG_TAG("feGaussianBlur");
  SVG_TAG("feMerge");
  SVG_TAG("feMergeNode");
  SVG_TAG("feMorphology");
  SVG_TAG("feOffset");
  SVG_TAG("feFlood");
  SVG_TAG("feTile");
  SVG_TAG("feTurbulence");
  SVG_TAG("feConvolveMatrix");
  SVG_TAG("feDistantLight");
  SVG_TAG("fePointLight");
  SVG_TAG("feSpotLight");
  SVG_TAG("feDiffuseLighting");
  SVG_TAG("feSpecularLighting");
  SVG_TAG("feDisplacementMap");
  SVG_TAG("feImage");
  SVG_TAG("pattern");
  SVG_TAG("mask");
  SVG_TAG("svgSwitch");

  // Toss in some other namespaced stuff too, for good measure
  // XUL stuff might not be creatable in content documents
  try {
    allNodes.push(
      doc.createElementNS(
        "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",
        "window"
      )
    );
  } catch (e) {}
  allNodes.push(
    doc.createElementNS("http://www.w3.org/1998/Math/MathML", "math")
  );
  allNodes.push(
    doc.createElementNS("http://www.w3.org/2001/xml-events", "testname")
  );
  allNodes.push(doc.createElementNS("bogus.namespace""testname"));

  var XMLDoc = doc.implementation.createDocument(""""null);

  // And non-elements
  allNodes.push(doc.createTextNode("some text"));
  allNodes.push(doc.createComment("some text"));
  allNodes.push(doc.createDocumentFragment());
  XMLNodes.push(XMLDoc.createCDATASection("some text"));
  XMLNodes.push(XMLDoc.createProcessingInstruction("PI""data"));

  function runTestUnwrapped() {
    if (!("wrappedJSObject" in doc)) {
      return;
    }
    Assert.strictEqual(
      doc.wrappedJSObject.nodePrincipal,
      undefined,
      "Must not have document principal for " + documentID
    );
    Assert.strictEqual(
      doc.wrappedJSObject.baseURIObject,
      undefined,
      "Must not have document base URI for " + documentID
    );
    Assert.strictEqual(
      doc.wrappedJSObject.documentURIObject,
      undefined,
      "Must not have document URI for " + documentID
    );

    for (var i = 0; i < allNodes.length; ++i) {
      Assert.strictEqual(
        allNodes[i].wrappedJSObject.nodePrincipal,
        undefined,
        "Unexpected principal appears for " +
          allNodes[i].nodeName +
          " in " +
          documentID
      );
      Assert.strictEqual(
        allNodes[i].wrappedJSObject.baseURIObject,
        undefined,
        "Unexpected base URI appears for " +
          allNodes[i].nodeName +
          " in " +
          documentID
      );
    }
  }

  function runTestProps() {
    isnot(
      doc.nodePrincipal,
      null,
      "Must have document principal in " + documentID
    );
    is(
      doc.nodePrincipal instanceof Ci.nsIPrincipal,
      true,
      "document principal must be a principal in " + documentID
    );
    isnot(
      doc.baseURIObject,
      null,
      "Must have document base URI in" + documentID
    );
    is(
      doc.baseURIObject instanceof Ci.nsIURI,
      true,
      "document base URI must be a URI in " + documentID
    );
    isnot(doc.documentURIObject, null"Must have document URI " + documentID);
    is(
      doc.documentURIObject instanceof Ci.nsIURI,
      true,
      "document URI must be a URI in " + documentID
    );
    is(
      doc.documentURIObject.spec,
      doc.documentURI,
      "document URI must be the right URI in " + documentID
    );

    for (var i = 0; i < allNodes.length; ++i) {
      is(
        allNodes[i].nodePrincipal,
        doc.nodePrincipal,
        "Unexpected principal for " + allNodes[i].nodeName + " in " + documentID
      );
      is(
        allNodes[i].baseURIObject,
        doc.baseURIObject,
        "Unexpected base URI for " + allNodes[i].nodeName + " in " + documentID
      );
    }

    for (i = 0; i < XMLNodes.length; ++i) {
      is(
        XMLNodes[i].nodePrincipal,
        doc.nodePrincipal,
        "Unexpected principal for " + XMLNodes[i].nodeName + " in " + documentID
      );
      is(
        XMLNodes[i].baseURIObject.spec,
        "about:blank",
        "Unexpected base URI for " + XMLNodes[i].nodeName + " in " + documentID
      );
    }
  }

  runTestUnwrapped();
  runTestProps();
  runTestUnwrapped();
}

add_task(async function test1() {
  testInDocument(document, "browser window");
});

async function newTabTest(location) {
  await BrowserTestUtils.withNewTab(
    { gBrowser, url: location },
    async function (browser) {
      await SpecialPowers.spawn(
        browser,
        [{ location, testInDocument_: testInDocument.toSource() }],
        async function ({ location, testInDocument_ }) {
          // eslint-disable-next-line no-eval
          let testInDocument = eval(`(() => (${testInDocument_}))()`);
          testInDocument(content.document, location);
        }
      );
    }
  );
}

add_task(async function test2() {
  await newTabTest("about:blank");
});

add_task(async function test3() {
  await newTabTest("about:config");
});

Messung V0.5
C=93 H=62 G=78

¤ Dauer der Verarbeitung: 0.1 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge