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


Quelle  test_mozfiledataurl.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/dom/file/tests/test_mozfiledataurl.html


<!DOCTYPE HTML>
<html>
<head>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
  <title>Test for File urls</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body onload="start()">
<p id="display">
<iframe id=inner></iframe>
<iframe id=iframe></iframe>
<img id=img onload="gen.next(event);">
<audio id=audio onloadeddata="gen.next(event);">
</p>
<div id="content" style="display: none">

</div>
<pre id="test">
<script class="testbody" type="application/javascript">

try {
  URL.createObjectURL(undefined);
} catch(e) { }

window.addEventListener("message", function(e) {
  gen.next(JSON.parse(e.data));
});

const innerSameSiteURI = "file_mozfiledataurl_inner.html";
const innerCrossSiteURI = "http://example.com/tests/dom/file/tests/file_mozfiledataurl_inner.html"

var fileNames = ["file_mozfiledataurl_img.jpg",
                 "file_mozfiledataurl_audio.ogg",
                 "file_mozfiledataurl_doc.html",
                 "file_mozfiledataurl_text.txt"];

function start() {
  let xhr = new XMLHttpRequest;
  xhr.open("GET""/dynamic/getMyDirectory.sjs", false);
  xhr.send();
  let basePath = xhr.responseText;

  let fullFileNames = [];
  for (let name of fileNames) {
    fullFileNames.push(basePath + name);
  }

  var script = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("create_file_objects.js"));

  script.addMessageListener("created-file-objects", function handler(files) {
    script.removeMessageListener("created-file-objects", handler);
    gen = runTest(files);
    gen.next();
  });

  script.sendAsyncMessage("create-file-objects", {fileNames: fullFileNames});
};

SimpleTest.waitForExplicitFinish();
SimpleTest.expectAssertions(0, 3);

function* runTest([imgFile, audioFile, docFile, xhrFile]) {
  inner = document.getElementById('inner');
  img = document.getElementById('img');
  audio = document.getElementById('audio');
  iframe = document.getElementById('iframe');
  inner.onload = function() { gen.next("inner loaded"); };

  // Attempt to load a image in this document
  var fileurl = URL.createObjectURL(imgFile);
  img.src = fileurl;
  var e = (yield);
  is(e.type, "load""loaded successfully");
  is(img.width, 120, "correct width");
  is(img.height, 90, "correct height");

  // Revoke url and attempt to load a image in this document
  img.src = "file_mozfiledataurl_img.jpg";
  is((yield).type, "load""successfull reset image");
  URL.revokeObjectURL(fileurl);
  todo(false, "urls need to act like 404s, not fail to parse");
/*  img.src = fileurl;
  var e = (yield);
  is(e.type, "error""failed successfully");
  isnot(img.width, 120, "correct error width");
  isnot(img.height, 90, "correct error height");
*/
  // Generate new fileurl and make sure it's different from the old
  var oldFileurl = fileurl;
  fileurl = URL.createObjectURL(imgFile);
  isnot(fileurl, oldFileurl, "URL.createObjectURL generated the same url twice");

  // Attempt to load an image in a different same-origin document
  inner.src = innerSameSiteURI;
  yield undefined;
  inner.contentWindow.postMessage(JSON.stringify({img:fileurl}), "*");
  var res = (yield);
  is(res.type, "load""loaded successfully");
  is(res.width, 120, "correct width");
  is(res.height, 90, "correct height");

  // Attempt to load an image in a different cross-origin document
  inner.src = innerCrossSiteURI;
  yield undefined;
  inner.contentWindow.postMessage(JSON.stringify({img:fileurl}), "*");
  var res = (yield);
  is(res.type, "error""failed successfully");
  isnot(res.width, 120, "correct error width");
  isnot(res.height, 90, "correct error height");

  // Attempt to load an audio in this document
  fileurl = URL.createObjectURL(audioFile);
  audio.src = fileurl;
  var e = (yield);
  is(e.type, "loadeddata""loaded successfully");

  // Revoke url and attempt to load a audio in this document
  audio.src = "file_mozfiledataurl_audio.ogg";
  is((yield).type, "loadeddata""successfully reset audio");
  URL.revokeObjectURL(fileurl);
  todo(false, "urls need to act like 404s, not fail to parse");
/*  img.src = fileurl;
  var e = (yield);
  is(e.type, "error""failed successfully");
  isnot(img.width, 120, "correct error width");
  isnot(img.height, 90, "correct error height");
*/
  // Generate new fileurl and make sure it's different from the old
  var oldFileurl = fileurl;
  fileurl = URL.createObjectURL(audioFile);
  isnot(fileurl, oldFileurl, "URL.createObjectURL generated the same url twice");

  // Attempt to load an audio in a different same-origin document
  inner.src = innerSameSiteURI;
  yield undefined;
  inner.contentWindow.postMessage(JSON.stringify({audio:fileurl}), "*");
  var res = (yield);
  is(res.type, "loadeddata""loaded successfully");

  // Attempt to load an audio in a different cross-origin document
  inner.src = innerCrossSiteURI;
  yield undefined;
  inner.contentWindow.postMessage(JSON.stringify({audio:fileurl}), "*");
  var res = (yield);
  is(res.type, "error""failed successfully");

  // Attempt to load a HTML document in an iframe in this document
  iframe.onload = function() { gen.next(); };
  iframe.src = "file_mozfiledataurl_doc.html";
  yield undefined;
  is(iframe.contentDocument.getElementsByTagName("p")[0].textContent,
     "This here is a document!",
     "iframe loaded successfully");
  is(iframe.contentDocument.getElementById("img").width, 120,
     "image in iframe width");
  is(iframe.contentDocument.getElementById("img").height, 90,
     "image in iframe height");

  // Attempt to load a HTML document in an iframe in this document, using file url
  fileurl = URL.createObjectURL(docFile);
  iframe.src = fileurl;
  yield undefined;
  is(iframe.contentDocument.getElementsByTagName("p")[0].textContent,
     "This here is a document!",
     "iframe loaded successfully");
  isnot(iframe.contentDocument.getElementById("img").width, 120,
        "failed image in iframe width");
  isnot(iframe.contentDocument.getElementById("img").height, 90,
        "failed image in iframe height");

  // Attempt to load a HTML document in an iframe in inner document
  inner.src = innerSameSiteURI;
  is((yield), "inner loaded""correct gen.next()");
  inner.contentWindow.postMessage(JSON.stringify({iframe:"file_mozfiledataurl_doc.html"}), "*");
  var res = (yield);
  is(res.type, "load""loaded successfully");
  is(res.text, "This here is a document!""loaded successfully");
  is(res.imgWidth, 120, "correct width");

  // Attempt to load a HTML document in an iframe in inner document, using file url
  inner.contentWindow.postMessage(JSON.stringify({iframe:fileurl}), "*");
  var res = (yield);
  is(res.type, "load""loaded successfully");
  is(res.text, "This here is a document!""loaded successfully");
  isnot(res.imgWidth, 120, "correct width");

  // Attempt to load a HTML document in an iframe in inner cross-site document, using file url
  inner.src = innerCrossSiteURI;
  is((yield), "inner loaded""correct gen.next()");
  inner.contentWindow.postMessage(JSON.stringify({iframe:fileurl}), "*");
  var res = (yield);
  is(res.type, "error""load failed successfully");

  // Attempt to load file url using XHR
  fileurl = URL.createObjectURL(xhrFile);
  xhr = new XMLHttpRequest;
  xhr.onload = function() { gen.next("XHR finished"); };
  xhr.open("GET", fileurl);
  xhr.send();
  is((yield), "XHR finished""correct gen.next()");
  xhr.responseText == "Yarr, here be plaintext file, ya landlubber\n";

  // Attempt to load file url using XHR in inner document
  inner.src = innerSameSiteURI;
  is((yield), "inner loaded""correct gen.next()");
  inner.contentWindow.postMessage(JSON.stringify({xhr:fileurl}), "*");
  var res = (yield);
  is(res.didThrow, undefined, "load successful");
  is(res.text, "Yarr, here be plaintext file, ya landlubber\n""load successful");

  // Attempt to load file url using XHR
  inner.src = innerCrossSiteURI;
  is((yield), "inner loaded""correct gen.next()");
  inner.contentWindow.postMessage(JSON.stringify({xhr:fileurl}), "*");
  var res = (yield);
  is(res.didError, true, "load failed successfully");

  SimpleTest.finish();
}
</script>
</pre>
</body>
</html>

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

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