Skip to content
Snippets Groups Projects
unit.js 2.33 KiB
Newer Older
import {assert} from '@esm-bundle/chai';
import '../src/dbp-qr-code-scanner';
import {QrCodeScannerEngine} from '../src';
suite('dbp-qr-code-scanner basics', () => {
Reiter, Christoph's avatar
Reiter, Christoph committed
    let node;
Reiter, Christoph's avatar
Reiter, Christoph committed
    setup(async () => {
        node = document.createElement('dbp-qr-code-scanner');
        document.body.appendChild(node);
        await node.updateComplete;
    });
Reiter, Christoph's avatar
Reiter, Christoph committed
    teardown(() => {
        node.remove();
    });
Reiter, Christoph's avatar
Reiter, Christoph committed
    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');
    });
});