Newer
Older
import {assert} from '@esm-bundle/chai';
import '../src/dbp-qr-code-scanner';
import {QrCodeScannerEngine} from '../src';
suite('dbp-qr-code-scanner basics', () => {
setup(async () => {
node = document.createElement('dbp-qr-code-scanner');
document.body.appendChild(node);
await node.updateComplete;
});
test('should render', () => {
assert.isNotNull(node.shadowRoot);
});
suite('scan image', () => {
test('should detect', async () => {
let engine = new QrCodeScannerEngine();
let image = new Image();
image.setAttribute(
'src',
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmAQMAAACS83vtAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9bi1IqDu0gopChdbIgKuKoVShChVArtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APE0clJ0UVK/F9SaBHjwXE/3t173L0D/M0qU82ecUDVLCOTSgq5/KrQ+4ogIghhBHGJmfqcKKbhOb7u4ePrXYJneZ/7c/QrBZMBPoF4lumGRbxBPL1p6Zz3iaOsLCnE58RjBl2Q+JHrsstvnEsO+3lm1Mhm5omjxEKpi+UuZmVDJZ4ijimqRvn+nMsK5y3OarXO2vfkLwwXtJVlrtMcRgqLWIIIATLqqKAKCwlaNVJMZGg/6eEfcvwiuWRyVcDIsYAaVEiOH/wPfndrFicn3KRwEgi+2PZHHOjdBVoN2/4+tu3WCRB4Bq60jr/WBGY+SW90tNgRMLANXFx3NHkPuNwBBp90yZAcKUDTXywC72f0TXkgcguE1tze2vs4fQCy1FX6Bjg4BEZLlL3u8e6+7t7+PdPu7wdo/XKjkhoyogAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+YFEwogFupCMRsAAAAGUExURQAAAP///6XZn90AAAABYktHRAH/Ai3eAAAAuUlEQVQI12P4DwR/GDDJD1KfFWwYvt/ctn4Pw5fYnRpAMrz1BZCM6wKS3y97vN/D8EHUa4ENw//PrPZ/GH7e7FwKJA19l9ow/Lv4extQzdPvjEBzBH+31jB80jyVu4fh//09JjDyn1Ef5x+Gz7caltswfM2xOruH4Y8Qd8Ueho8rnHhrGP6yWjPWAE0+uNOG4YMM+wqgaTe3WtYwfInoZQaS0b1BQDKcZRLQhZf99gJtkSieuIcBh18ArRODGZrlUXYAAAAASUVORK5CYII='
);
let res;
res = await engine.scanImage(image);
assert.strictEqual(res.data, 'http://en.m.wikipedia.org');
// the second time the same
res = await engine.scanImage(image);
assert.strictEqual(res.data, 'http://en.m.wikipedia.org');
// if we don't scan the whole thing then it fails
res = await engine.scanImage(image, {x: 0, y: 0, width: 5, height: 5});
assert.isNull(res);
// if we pass the right size, then everything is OK again
res = await engine.scanImage(image, {x: 0, y: 0, width: image.width, height: image.height});
assert.strictEqual(res.data, 'http://en.m.wikipedia.org');
});
});