OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import 'dart:math' as math; | 5 import 'dart:math' as math; |
6 | 6 |
7 import 'package:test/test.dart'; | 7 import 'package:test/test.dart'; |
8 import 'package:mime/mime.dart'; | 8 import 'package:mime/mime.dart'; |
9 import 'package:mime/src/magic_number.dart'; | 9 import 'package:mime/src/magic_number.dart'; |
10 | 10 |
11 void _expectMimeType(String path, | 11 void _expectMimeType(String path, String expectedMimeType, |
12 String expectedMimeType, | 12 {List<int> headerBytes, MimeTypeResolver resolver}) { |
13 {List<int> headerBytes, | |
14 MimeTypeResolver resolver}) { | |
15 String mimeType; | 13 String mimeType; |
16 if (resolver == null) { | 14 if (resolver == null) { |
17 mimeType = lookupMimeType(path, headerBytes: headerBytes); | 15 mimeType = lookupMimeType(path, headerBytes: headerBytes); |
18 } else { | 16 } else { |
19 mimeType = resolver.lookup(path, headerBytes: headerBytes); | 17 mimeType = resolver.lookup(path, headerBytes: headerBytes); |
20 } | 18 } |
21 | 19 |
22 expect(mimeType, expectedMimeType); | 20 expect(mimeType, expectedMimeType); |
23 } | 21 } |
24 | 22 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 }); | 74 }); |
77 | 75 |
78 test('fallthrough-extension', () { | 76 test('fallthrough-extension', () { |
79 var resolver = new MimeTypeResolver(); | 77 var resolver = new MimeTypeResolver(); |
80 resolver.addExtension('jpg2', 'my-mime-type'); | 78 resolver.addExtension('jpg2', 'my-mime-type'); |
81 _expectMimeType('file.jpg', 'image/jpeg', resolver: resolver); | 79 _expectMimeType('file.jpg', 'image/jpeg', resolver: resolver); |
82 }); | 80 }); |
83 | 81 |
84 test('with-mask', () { | 82 test('with-mask', () { |
85 var resolver = new MimeTypeResolver.empty(); | 83 var resolver = new MimeTypeResolver.empty(); |
86 resolver.addMagicNumber([0x01, 0x02, 0x03], | 84 resolver.addMagicNumber([0x01, 0x02, 0x03], 'my-mime-type', |
87 'my-mime-type', | 85 mask: [0x01, 0xFF, 0xFE]); |
88 mask: [0x01, 0xFF, 0xFE]); | 86 _expectMimeType('file', 'my-mime-type', |
89 _expectMimeType('file', | 87 headerBytes: [0x01, 0x02, 0x03], resolver: resolver); |
90 'my-mime-type', | 88 _expectMimeType('file', null, |
91 headerBytes: [0x01, 0x02, 0x03], | 89 headerBytes: [0x01, 0x03, 0x03], resolver: resolver); |
92 resolver: resolver); | 90 _expectMimeType('file', 'my-mime-type', |
93 _expectMimeType('file', | 91 headerBytes: [0xFF, 0x02, 0x02], resolver: resolver); |
94 null, | |
95 headerBytes: [0x01, 0x03, 0x03], | |
96 resolver: resolver); | |
97 _expectMimeType('file', | |
98 'my-mime-type', | |
99 headerBytes: [0xFF, 0x02, 0x02], | |
100 resolver: resolver); | |
101 }); | 92 }); |
102 }); | 93 }); |
103 | 94 |
104 test('default magic number', () { | 95 test('default magic number', () { |
105 var actualMaxBytes = DEFAULT_MAGIC_NUMBERS.fold(0, (previous, magic) { | 96 var actualMaxBytes = DEFAULT_MAGIC_NUMBERS.fold(0, (previous, magic) { |
106 return math.max(previous, magic.numbers.length); | 97 return math.max(previous, magic.numbers.length); |
107 }); | 98 }); |
108 | 99 |
109 expect(defaultMagicNumbersMaxLength, actualMaxBytes); | 100 expect(defaultMagicNumbersMaxLength, actualMaxBytes); |
110 }); | 101 }); |
111 } | 102 } |
OLD | NEW |