34 lines
940 B
JavaScript
34 lines
940 B
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
"use strict";
|
|
|
|
const { sinon } = ChromeUtils.importESModule(
|
|
"resource://testing-common/Sinon.sys.mjs"
|
|
);
|
|
|
|
const { OPFS } = ChromeUtils.importESModule(
|
|
"chrome://global/content/ml/OPFS.sys.mjs"
|
|
);
|
|
|
|
add_task(async function test_opfs_file() {
|
|
const iconUrl = "chrome://global/content/ml/mozilla-logo.webp";
|
|
const icon = await new OPFS.File({
|
|
urls: [iconUrl],
|
|
localPath: "/icons/icon.webp",
|
|
});
|
|
|
|
let blobUrl = await icon.getAsObjectURL();
|
|
|
|
Assert.notEqual(blobUrl, null, "we got a blob url");
|
|
|
|
// second call will get it from the cache
|
|
let spy = sinon.spy(OPFS.File.prototype, "getBlobFromOPFS");
|
|
blobUrl = await icon.getAsObjectURL();
|
|
Assert.notEqual(blobUrl, null);
|
|
|
|
// check that it cames from OPFS
|
|
Assert.notEqual(await spy.lastCall.returnValue, null);
|
|
sinon.restore();
|
|
|
|
await icon.delete();
|
|
});
|