Skip to content

Commit ce4d4a9

Browse files
committed
Added tests for exif-helper
1 parent 6d5fd9d commit ce4d4a9

File tree

5 files changed

+103
-11
lines changed

5 files changed

+103
-11
lines changed

.eslintrc

+6-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@
2424
"objectLiteralComputedProperties": true
2525
},
2626
"globals": {
27-
"ENV": true
27+
"ENV": true,
28+
"beforeEach": true,
29+
"describe": true,
30+
"it": true,
31+
"expect": true,
32+
"sinon": true
2833
},
2934
"rules": {
3035
"no-unused-expressions": 1,

dist/quagga.js

+19-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/quagga.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/input/exif_helper.js

+18-4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@ export function findTagsInObjectURL(src, tags = AvailableTags) {
1212
return Promise.resolve(null);
1313
}
1414

15+
export function base64ToArrayBuffer(dataUrl) {
16+
const base64 = dataUrl.replace(/^data\:([^\;]+)\;base64,/gmi, ''),
17+
binary = atob(base64),
18+
len = binary.length,
19+
buffer = new ArrayBuffer(len),
20+
view = new Uint8Array(buffer);
21+
22+
for (let i = 0; i < len; i++) {
23+
view[i] = binary.charCodeAt(i);
24+
}
25+
return buffer;
26+
}
27+
1528
function readToBuffer(blob) {
1629
return new Promise(resolve => {
1730
const fileReader = new FileReader();
@@ -23,20 +36,21 @@ function readToBuffer(blob) {
2336
}
2437

2538
function objectURLToBlob(url) {
26-
return new Promise(resolve => {
39+
return new Promise((resolve, reject) => {
2740
const http = new XMLHttpRequest();
2841
http.open("GET", url, true);
2942
http.responseType = "blob";
30-
http.onload = function() {
31-
if (this.status === 200 || this.status === 0) {
43+
http.onreadystatechange = function () {
44+
if (http.readyState === XMLHttpRequest.DONE && (http.status === 200 || http.status === 0)) {
3245
resolve(this.response);
3346
}
3447
};
48+
http.onerror = reject;
3549
http.send();
3650
});
3751
}
3852

39-
function findTagsInBuffer(file, selectedTags = AvailableTags) {
53+
export function findTagsInBuffer(file, selectedTags = AvailableTags) {
4054
const dataView = new DataView(file),
4155
length = file.byteLength,
4256
exifTags = selectedTags.reduce((result, selectedTag) => {

test/spec/exif_helper.spec.js

+59
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)