| 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 |