forked from sindresorhus/file-type
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.old.js
125 lines (120 loc) · 1.87 KB
/
test.old.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import path from 'path';
import test from 'ava';
import readChunk from 'read-chunk';
import fileType from '.';
function check(ext, name) {
const file = path.join(__dirname, 'fixture', `${(name || 'fixture')}.${ext}`);
const fileInfo = fileType(readChunk.sync(file, 0, 4 + 4096)) || {};
return fileInfo.ext;
}
const types = [
'jpg',
'png',
'gif',
'webp',
'flif',
'cr2',
'tif',
'bmp',
'jxr',
'psd',
'zip',
'tar',
'rar',
'gz',
'bz2',
'7z',
'dmg',
'mp4',
'mid',
'mkv',
'webm',
'mov',
'avi',
'wmv',
'mpg',
'mp3',
'm4a',
'oga',
'ogg',
'ogv',
'opus',
'flac',
'wav',
'spx',
'amr',
'pdf',
'epub',
'exe',
'swf',
'rtf',
'wasm',
'woff',
'woff2',
'eot',
'ttf',
'otf',
'ico',
'flv',
'ps',
'xz',
'sqlite',
'nes',
'crx',
'xpi',
'cab',
'deb',
'ar',
'rpm',
'Z',
'lz',
'msi',
'mxf',
'mts',
'blend',
'bpg',
'docx',
'pptx',
'xlsx',
'3gp',
'jp2',
'jpm',
'jpx',
'mj2',
'aif',
'odt',
'ods',
'odp',
'xml',
'mobi',
'heic'
];
const names = {
woff2: ['fixture', 'fixture-otto'],
woff: ['fixture', 'fixture-otto'],
eot: ['fixture', 'fixture-0x20001'],
mov: ['fixture', 'fixture-mjpeg'],
mp3: ['fixture', 'fixture-offset1-id3', 'fixture-offset1', 'fixture-mp2l3', 'fixture-ffe3'],
mp4: ['fixture-imovie', 'fixture-isom', 'fixture-isomv2', 'fixture-mp4v2', 'fixture-m4v', 'fixture-dash'],
tif: ['fixture-big-endian', 'fixture-little-endian'],
gz: ['fixture.tar'],
xz: ['fixture.tar'],
lz: ['fixture.tar'],
Z: ['fixture.tar'],
mkv: ['fixture', 'fixture2'],
mxf: ['fixture'],
mpg: ['fixture', 'fixture2'],
heic: ['fixture-mif1', 'fixture-msf1', 'fixture-heic']
};
function testFile(t, type, name) {
t.is(check(type, name), type);
}
for (const type of types) {
if (Object.prototype.hasOwnProperty.call(names, type)) {
for (const name of names[type]) {
test(type, testFile, type, name);
}
} else {
test(type, testFile, type);
}
}