| Index: pkg/mime/test/mime_type_test.dart | 
| diff --git a/pkg/mime/test/mime_type_test.dart b/pkg/mime/test/mime_type_test.dart | 
| index 36c728d80447a754fe80775d53519c291dd2af98..23cc10e3cbd708e7c93b1d1a643b75aa98df01e6 100644 | 
| --- a/pkg/mime/test/mime_type_test.dart | 
| +++ b/pkg/mime/test/mime_type_test.dart | 
| @@ -2,10 +2,13 @@ | 
| // for details. All rights reserved. Use of this source code is governed by a | 
| // BSD-style license that can be found in the LICENSE file. | 
|  | 
| -import "package:unittest/unittest.dart"; | 
| +import 'dart:math' as math; | 
| + | 
| +import 'package:unittest/unittest.dart'; | 
| import 'package:mime/mime.dart'; | 
| +import 'package:mime/src/magic_number.dart'; | 
|  | 
| -void expectMimeType(String path, | 
| +void _expectMimeType(String path, | 
| String expectedMimeType, | 
| {List<int> headerBytes, | 
| MimeTypeResolver resolver}) { | 
| @@ -16,51 +19,49 @@ void expectMimeType(String path, | 
| mimeType = resolver.lookup(path, headerBytes: headerBytes); | 
| } | 
|  | 
| -  if (mimeType != expectedMimeType) { | 
| -    throw "Expect '$expectedMimeType' but got '$mimeType'"; | 
| -  } | 
| +  expect(mimeType, expectedMimeType); | 
| } | 
|  | 
| void main() { | 
| group('global-lookup', () { | 
| test('by-path', () { | 
| -      expectMimeType('file.dart', 'application/dart'); | 
| +      _expectMimeType('file.dart', 'application/dart'); | 
| // Test mixed-case | 
| -      expectMimeType('file.DaRT', 'application/dart'); | 
| -      expectMimeType('file.html', 'text/html'); | 
| -      expectMimeType('file.xhtml', 'application/xhtml+xml'); | 
| -      expectMimeType('file.jpeg', 'image/jpeg'); | 
| -      expectMimeType('file.jpg', 'image/jpeg'); | 
| -      expectMimeType('file.png', 'image/png'); | 
| -      expectMimeType('file.gif', 'image/gif'); | 
| -      expectMimeType('file.cc', 'text/x-c'); | 
| -      expectMimeType('file.c', 'text/x-c'); | 
| -      expectMimeType('file.css', 'text/css'); | 
| -      expectMimeType('file.js', 'application/javascript'); | 
| -      expectMimeType('file.ps', 'application/postscript'); | 
| -      expectMimeType('file.pdf', 'application/pdf'); | 
| -      expectMimeType('file.tiff', 'image/tiff'); | 
| -      expectMimeType('file.tif', 'image/tiff'); | 
| +      _expectMimeType('file.DaRT', 'application/dart'); | 
| +      _expectMimeType('file.html', 'text/html'); | 
| +      _expectMimeType('file.xhtml', 'application/xhtml+xml'); | 
| +      _expectMimeType('file.jpeg', 'image/jpeg'); | 
| +      _expectMimeType('file.jpg', 'image/jpeg'); | 
| +      _expectMimeType('file.png', 'image/png'); | 
| +      _expectMimeType('file.gif', 'image/gif'); | 
| +      _expectMimeType('file.cc', 'text/x-c'); | 
| +      _expectMimeType('file.c', 'text/x-c'); | 
| +      _expectMimeType('file.css', 'text/css'); | 
| +      _expectMimeType('file.js', 'application/javascript'); | 
| +      _expectMimeType('file.ps', 'application/postscript'); | 
| +      _expectMimeType('file.pdf', 'application/pdf'); | 
| +      _expectMimeType('file.tiff', 'image/tiff'); | 
| +      _expectMimeType('file.tif', 'image/tiff'); | 
| }); | 
|  | 
| test('unknown-mime-type', () { | 
| -      expectMimeType('file.unsupported-extension', null); | 
| +      _expectMimeType('file.unsupported-extension', null); | 
| }); | 
|  | 
| test('by-header-bytes', () { | 
| -      expectMimeType('file.jpg', | 
| +      _expectMimeType('file.jpg', | 
| 'image/png', | 
| headerBytes: [0x89, 0x50, 0x4E, 0x47, | 
| 0x0D, 0x0A, 0x1A, 0x0A]); | 
| -      expectMimeType('file.jpg', | 
| +      _expectMimeType('file.jpg', | 
| 'image/gif', | 
| headerBytes: [0x47, 0x49, 0x46, 0x38, 0x39, | 
| 0x61, 0x0D, 0x0A, 0x1A, 0x0A]); | 
| -      expectMimeType('file.gif', | 
| +      _expectMimeType('file.gif', | 
| 'image/jpeg', | 
| headerBytes: [0xFF, 0xD8, 0x46, 0x38, 0x39, | 
| 0x61, 0x0D, 0x0A, 0x1A, 0x0A]); | 
| -      expectMimeType('file.mp4', | 
| +      _expectMimeType('file.mp4', | 
| 'video/mp4', | 
| headerBytes: [0x00, 0x00, 0x00, 0x04, 0x66, 0x74, | 
| 0x79, 0x70, 0x33, 0x67, 0x70, 0x35]); | 
| @@ -71,13 +72,13 @@ void main() { | 
| test('override-extension', () { | 
| var resolver = new MimeTypeResolver(); | 
| resolver.addExtension('jpg', 'my-mime-type'); | 
| -      expectMimeType('file.jpg', 'my-mime-type', resolver: resolver); | 
| +      _expectMimeType('file.jpg', 'my-mime-type', resolver: resolver); | 
| }); | 
|  | 
| test('fallthrough-extension', () { | 
| var resolver = new MimeTypeResolver(); | 
| resolver.addExtension('jpg2', 'my-mime-type'); | 
| -      expectMimeType('file.jpg', 'image/jpeg', resolver: resolver); | 
| +      _expectMimeType('file.jpg', 'image/jpeg', resolver: resolver); | 
| }); | 
|  | 
| test('with-mask', () { | 
| @@ -85,19 +86,26 @@ void main() { | 
| resolver.addMagicNumber([0x01, 0x02, 0x03], | 
| 'my-mime-type', | 
| mask: [0x01, 0xFF, 0xFE]); | 
| -      expectMimeType('file', | 
| +      _expectMimeType('file', | 
| 'my-mime-type', | 
| headerBytes: [0x01, 0x02, 0x03], | 
| resolver: resolver); | 
| -      expectMimeType('file', | 
| +      _expectMimeType('file', | 
| null, | 
| headerBytes: [0x01, 0x03, 0x03], | 
| resolver: resolver); | 
| -      expectMimeType('file', | 
| +      _expectMimeType('file', | 
| 'my-mime-type', | 
| headerBytes: [0xFF, 0x02, 0x02], | 
| resolver: resolver); | 
| }); | 
| }); | 
| -} | 
|  | 
| +  test('default magic number', () { | 
| +    var actualMaxBytes = DEFAULT_MAGIC_NUMBERS.fold(0, (previous, magic) { | 
| +      return math.max(previous, magic.numbers.length); | 
| +    }); | 
| + | 
| +    expect(defaultMagicNumbersMaxLength, actualMaxBytes); | 
| +  }); | 
| +} | 
|  |