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


Quelle  make_unknownFiles.js   Sprache: JAVA

 
/**
 * Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/
 */


loadScript("dom/quota/test/common/file.js");

async function testSteps() {
  const principal = getPrincipal("http://example.com");

  const repoRelativePath = "storage/default";
  const originRelativePath = `${repoRelativePath}/http+++example.com`;

  let unknownFileCounter = 1;
  let unknownDirCounter = 1;

  function createUnknownFileIn(dirRelativePath, recursive) {
    const dir = getRelativeFile(dirRelativePath);

    let file = dir.clone();
    file.append("foo" + unknownFileCounter + ".bar");

    const ostream = Cc[
      "@mozilla.org/network/file-output-stream;1"
    ].createInstance(Ci.nsIFileOutputStream);

    ostream.init(file, -1, parseInt("0644", 8), 0);

    ostream.write("x".repeat(unknownFileCounter), unknownFileCounter);

    ostream.close();

    unknownFileCounter++;

    if (recursive) {
      const entries = dir.directoryEntries;
      while ((file = entries.nextFile)) {
        if (file.isDirectory()) {
          createUnknownFileIn(dirRelativePath + "/" + file.leafName);
        }
      }
    }
  }

  function createUnknownDirectoryIn(dirRelativePath) {
    createUnknownFileIn(dirRelativePath + "/foo" + unknownDirCounter++);
  }

  // storage.sqlite and storage/ls-archive.sqlite
  {
    const request = init();
    await requestFinished(request);
  }

  // Unknown file in the repository
  {
    createUnknownFileIn(repoRelativePath);
  }

  // Unknown file and unknown directory in the origin directory
  {
    let request = init();
    await requestFinished(request);

    request = initTemporaryStorage();
    await requestFinished(request);

    request = initTemporaryOrigin("default", principal);
    await requestFinished(request);

    Assert.strictEqual(
      request.result,
      true,
      "The origin directory was created"
    );

    createUnknownFileIn(originRelativePath);
    createUnknownDirectoryIn(originRelativePath);
  }

  // Unknown files in idb client directory and its subdirectories and unknown
  // directory in .files directory
  {
    const request = indexedDB.openForPrincipal(principal, "myIndexedDB");
    await openDBRequestUpgradeNeeded(request);

    const database = request.result;

    const objectStore = database.createObjectStore("Blobs", {});

    objectStore.add(getNullBlob(200), 42);

    await openDBRequestSucceeded(request);

    database.close();

    createUnknownFileIn(`${originRelativePath}/idb`);
    createUnknownFileIn(
      `${originRelativePath}/idb/2320029346mByDIdnedxe.files`
    );
    createUnknownDirectoryIn(
      `${originRelativePath}/idb/2320029346mByDIdnedxe.files`
    );
    createUnknownFileIn(
      `${originRelativePath}/idb/2320029346mByDIdnedxe.files/journals`
    );
  }

  // Unknown files in cache client directory and its subdirectories
  {
    async function sandboxScript() {
      const cache = await caches.open("myCache");
      const request = new Request("http://example.com/index.html");
      const response = new Response("hello world");
      await cache.put(request, response);
    }

    const sandbox = new Cu.Sandbox(principal, {
      wantGlobalProperties: ["caches""fetch"],
    });

    const promise = new Promise(function (resolve, reject) {
      sandbox.resolve = resolve;
      sandbox.reject = reject;
    });

    Cu.evalInSandbox(
      sandboxScript.toSource() + " sandboxScript().then(resolve, reject);",
      sandbox
    );
    await promise;

    createUnknownFileIn(`${originRelativePath}/cache`);
    createUnknownFileIn(
      `${originRelativePath}/cache/morgue`,
      /* recursive */ true
    );
  }

  // Unknown file and unknown directory in sdb client directory
  {
    const database = getSimpleDatabase(principal);

    let request = database.open("mySimpleDB");
    await requestFinished(request);

    request = database.write(getBuffer(100));
    await requestFinished(request);

    request = database.close();
    await requestFinished(request);

    createUnknownFileIn(`${originRelativePath}/sdb`);
    createUnknownDirectoryIn(`${originRelativePath}/sdb`);
  }

  // Unknown file and unknown directory in ls client directory
  {
    Services.prefs.setBoolPref("dom.storage.testing"true);
    Services.prefs.setBoolPref("dom.storage.client_validation"false);

    const storage = Services.domStorageManager.createStorage(
      null,
      principal,
      principal,
      ""
    );

    storage.setItem("foo""bar");

    storage.close();

    createUnknownFileIn(`${originRelativePath}/ls`);
    createUnknownDirectoryIn(`${originRelativePath}/ls`);
  }
}

Messung V0.5
C=94 H=96 G=94

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