Files
sousa-gecko/toolkit/components/qrcode/tests/xpcshell/test_encode.js
T

60 lines
1.9 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Test encoding a simple message.
*/
const { QR } = ChromeUtils.importESModule(
"moz-src:///toolkit/components/qrcode/encoder.mjs"
);
function run_test() {
const imgData = QR.encodeToDataURI("HELLO", "L");
Assert.equal(
imgData.src,
"data:image/gif;base64,R0lGODdhOgA6AIAAAAAAAP///ywAAAAAOgA6AAAC" +
"/4yPqcvtD6OctNqLs968+w+G4gKU5nkaKKquLuW+QVy2tAkDTj3rfQts8CRDko" +
"+HPPoYRUgy9YsyldDm44mLWhHYZM6W7WaDqyCRGkZDySxpRGw2sqvLt1q5w/fo" +
"XyE6vnUQOJUHBlinMGh046V1F5PDqNcoqcgBOWKBKbK2N+aY+Ih49VkmqMcl2l" +
"dkhZUK1umE6jZXJ2ZJaujZaRqH4bpb2uZrJxvIt4Ebe9qoYYrJOsw8apz2bCut" +
"m9kqDcw52uuImyr5Oh1KXH1jrn2anuunywtODU/o2c6teceW39ZcLFg/fNMo1b" +
"t3jVw2dwTPwJq1KYG3gAklCgu37yGxeScYKyiCc+7DR34hPVQiuQ7UhJMagyEb" +
"lymmzJk0a9q8iTOnzp0NCgAAOw=="
);
Assert.equal(imgData.width, 58);
Assert.equal(imgData.height, 58);
Assert.equal(imgData.matrix, undefined, "matrix omitted by default");
Assert.equal(imgData.dotCount, undefined, "dotCount omitted by default");
const justMatrix = QR.encodeToMatrix("HELLO", "L");
Assert.equal(
justMatrix.dotCount,
21,
"HELLO at L correction is version 1 (21 dots)"
);
Assert.equal(justMatrix.src, undefined, "matrix encoding omits image data");
Assert.equal(justMatrix.width, undefined, "matrix encoding omits width");
Assert.equal(justMatrix.height, undefined, "matrix encoding omits height");
Assert.equal(
justMatrix.matrix.length,
justMatrix.dotCount,
"matrix has correct number of rows"
);
Assert.equal(
justMatrix.matrix[0].length,
justMatrix.dotCount,
"matrix rows have correct number of columns"
);
Assert.strictEqual(
typeof justMatrix.matrix[0][0],
"boolean",
"matrix entries are booleans"
);
Assert.ok(
justMatrix.matrix[0][0],
"top-left corner of finder pattern is dark"
);
}