Fix latest lints, remove author from pubspec (#30)
diff --git a/lib/src/bound_multipart_stream.dart b/lib/src/bound_multipart_stream.dart
index 4b32ef9..07418b2 100644
--- a/lib/src/bound_multipart_stream.dart
+++ b/lib/src/bound_multipart_stream.dart
@@ -45,24 +45,26 @@
void _expectByteValue(int val1, int val2) {
if (val1 != val2) {
- throw MimeMultipartException("Failed to parse multipart mime 1");
+ throw MimeMultipartException('Failed to parse multipart mime 1');
}
}
void _expectWhitespace(int byte) {
if (byte != CharCode.SP && byte != CharCode.HT) {
- throw MimeMultipartException("Failed to parse multipart mime 2");
+ throw MimeMultipartException('Failed to parse multipart mime 2');
}
}
class _MimeMultipart extends MimeMultipart {
+ @override
final Map<String, String> headers;
final Stream<List<int>> _stream;
_MimeMultipart(this.headers, this._stream);
- StreamSubscription<List<int>> listen(void onData(List<int> data),
- {void onDone(), Function onError, bool cancelOnError}) {
+ @override
+ StreamSubscription<List<int>> listen(void Function(List<int> data) onData,
+ {void Function() onDone, Function onError, bool cancelOnError}) {
return _stream.listen(onData,
onDone: onDone, onError: onError, cancelOnError: cancelOnError);
}
@@ -137,7 +139,7 @@
}, onDone: () {
if (_state != _DONE) {
_controller
- .addError(MimeMultipartException("Bad multipart ending"));
+ .addError(MimeMultipartException('Bad multipart ending'));
}
_controller.close();
}, onError: _controller.addError);
@@ -168,14 +170,14 @@
_subscription.cancel();
break;
default:
- throw StateError("This code should never be reached.");
+ throw StateError('This code should never be reached.');
}
}
}
void _parse() {
// Number of boundary bytes to artificially place before the supplied data.
- int boundaryPrefix = 0;
+ var boundaryPrefix = 0;
// Position where content starts. Will be null if no known content
// start exists. Will be negative of the content starts in the
// boundary prefix. Will be zero or position if the content starts
@@ -209,7 +211,7 @@
} else {
contentStartIndex = null;
}
- // The data to parse might be "artificially" prefixed with a
+ // The data to parse might be 'artificially' prefixed with a
// partial match of the boundary.
boundaryPrefix = _boundaryIndex;
@@ -256,7 +258,7 @@
break;
case _HEADER_START:
- _headers = Map<String, String>();
+ _headers = <String, String>{};
if (byte == CharCode.CR) {
_state = _HEADER_ENDING;
} else {
@@ -271,7 +273,7 @@
_state = _HEADER_VALUE_START;
} else {
if (!_isTokenChar(byte)) {
- throw MimeMultipartException("Invalid header field name");
+ throw MimeMultipartException('Invalid header field name');
}
_headerField.add(_toLowerCase(byte));
}
@@ -304,8 +306,8 @@
if (byte == CharCode.SP || byte == CharCode.HT) {
_state = _HEADER_VALUE_START;
} else {
- String headerField = utf8.decode(_headerField);
- String headerValue = utf8.decode(_headerValue);
+ var headerField = utf8.decode(_headerField);
+ var headerValue = utf8.decode(_headerValue);
_headers[headerField.toLowerCase()] = headerValue;
_headerField.clear();
_headerValue.clear();
@@ -353,7 +355,7 @@
} else {
// Restart matching of the boundary.
_index = _index - _boundaryIndex;
- if (contentStartIndex == null) contentStartIndex = _index;
+ contentStartIndex ??= _index;
_boundaryIndex = 0;
}
break;
diff --git a/lib/src/magic_number.dart b/lib/src/magic_number.dart
index d490346..50be18a 100644
--- a/lib/src/magic_number.dart
+++ b/lib/src/magic_number.dart
@@ -14,7 +14,7 @@
bool matches(List<int> header) {
if (header.length < numbers.length) return false;
- for (int i = 0; i < numbers.length; i++) {
+ for (var i = 0; i < numbers.length; i++) {
if (mask != null) {
if ((mask[i] & numbers[i]) != (mask[i] & header[i])) return false;
} else {
diff --git a/lib/src/mime_multipart_transformer.dart b/lib/src/mime_multipart_transformer.dart
index 5509339..1869480 100644
--- a/lib/src/mime_multipart_transformer.dart
+++ b/lib/src/mime_multipart_transformer.dart
@@ -37,6 +37,7 @@
MimeMultipartTransformer(String boundary)
: _boundary = _getBoundary(boundary);
+ @override
Stream<MimeMultipart> bind(Stream<List<int>> stream) {
return BoundMultipartStream(_boundary, stream).stream;
}
diff --git a/lib/src/mime_shared.dart b/lib/src/mime_shared.dart
index 5cc6a8f..00ade1d 100644
--- a/lib/src/mime_shared.dart
+++ b/lib/src/mime_shared.dart
@@ -8,9 +8,10 @@
class MimeMultipartException implements Exception {
final String message;
- const MimeMultipartException([this.message = ""]);
+ const MimeMultipartException([this.message = '']);
- String toString() => "MimeMultipartException: $message";
+ @override
+ String toString() => 'MimeMultipartException: $message';
}
/// A Mime Multipart class representing each part parsed by
diff --git a/lib/src/mime_type.dart b/lib/src/mime_type.dart
index 6fbe270..84ac306 100644
--- a/lib/src/mime_type.dart
+++ b/lib/src/mime_type.dart
@@ -104,7 +104,7 @@
}
static String _ext(String path) {
- int index = path.lastIndexOf('.');
+ var index = path.lastIndexOf('.');
if (index < 0 || index + 1 >= path.length) return path;
return path.substring(index + 1).toLowerCase();
}
diff --git a/pubspec.yaml b/pubspec.yaml
index e4038a7..b0c21b3 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,10 +1,9 @@
name: mime
-version: 0.9.6+3
+version: 0.9.7-dev
description: >-
Utilities for handling media (MIME) types, including determining a type from
a file extension and file contents.
-author: Dart Team <misc@dartlang.org>
homepage: https://www.github.com/dart-lang/mime
environment:
diff --git a/test/mime_multipart_transformer_test.dart b/test/mime_multipart_transformer_test.dart
index be8ca17..fbfe2b6 100644
--- a/test/mime_multipart_transformer_test.dart
+++ b/test/mime_multipart_transformer_test.dart
@@ -5,16 +5,16 @@
import 'dart:async';
import 'dart:math';
-import "package:test/test.dart";
-import "package:mime/mime.dart";
+import 'package:test/test.dart';
+import 'package:mime/mime.dart';
void _writeInChunks(
List<int> data, int chunkSize, StreamController<List<int>> controller) {
if (chunkSize == -1) chunkSize = data.length;
- for (int pos = 0; pos < data.length; pos += chunkSize) {
- int remaining = data.length - pos;
- int writeLength = min(chunkSize, remaining);
+ for (var pos = 0; pos < data.length; pos += chunkSize) {
+ var remaining = data.length - pos;
+ var writeLength = min(chunkSize, remaining);
controller.add(data.sublist(pos, pos + writeLength));
}
controller.close();
@@ -29,11 +29,11 @@
var stream =
controller.stream.transform(MimeMultipartTransformer(boundary));
- int i = 0;
+ var i = 0;
var completer = Completer();
var futures = <Future>[];
stream.listen((multipart) {
- int part = i++;
+ var part = i++;
if (expectedHeaders != null) {
expect(multipart.headers, equals(expectedHeaders[part]));
}
@@ -121,10 +121,10 @@
var stream =
controller.stream.transform(MimeMultipartTransformer(boundary));
var subscription;
- int i = 0;
+ var i = 0;
var futures = <Future>[];
subscription = stream.listen((multipart) {
- int partIndex = i;
+ var partIndex = i;
if (partIndex >= parts) {
throw StateError('Expected no more parts, but got one.');
@@ -153,7 +153,7 @@
// Test parsing the data three times delivering the data in
// different chunks.
- List<int> data = message.codeUnits;
+ var data = message.codeUnits;
test('test', () {
expect(
Future.wait([
@@ -178,7 +178,7 @@
});
test('test-n-parts-only', () {
- int numPartsExpected = expectedParts.length - 1;
+ var numPartsExpected = expectedParts.length - 1;
if (numPartsExpected == 0) numPartsExpected = 1;
expect(
@@ -206,10 +206,10 @@
void _testParseValid() {
// Empty message from Chrome form post.
var message = '------WebKitFormBoundaryU3FBruSkJKG0Yor1--\r\n';
- _testParse(message, "----WebKitFormBoundaryU3FBruSkJKG0Yor1", [], []);
+ _testParse(message, '----WebKitFormBoundaryU3FBruSkJKG0Yor1', [], []);
// Sample from Wikipedia.
- message = """
+ message = '''
This is a message with multiple parts in MIME format.\r
--frontier\r
Content-Type: text/plain\r
@@ -221,20 +221,20 @@
\r
PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg=\r
---frontier--\r\n""";
- var headers1 = <String, String>{"content-type": "text/plain"};
+--frontier--\r\n''';
+ var headers1 = <String, String>{'content-type': 'text/plain'};
var headers2 = <String, String>{
- "content-type": "application/octet-stream",
- "content-transfer-encoding": "base64"
+ 'content-type': 'application/octet-stream',
+ 'content-transfer-encoding': 'base64'
};
- var body1 = "This is the body of the message.";
- var body2 = """
+ var body1 = 'This is the body of the message.';
+ var body2 = '''
PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
-Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg=""";
- _testParse(message, "frontier", [headers1, headers2], [body1, body2]);
+Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg=''';
+ _testParse(message, 'frontier', [headers1, headers2], [body1, body2]);
// Sample from HTML 4.01 Specification.
- message = """
+ message = '''
\r\n--AaB03x\r
Content-Disposition: form-data; name=\"submit-name\"\r
\r
@@ -244,17 +244,17 @@
Content-Type: text/plain\r
\r
... contents of file1.txt ...\r
---AaB03x--\r\n""";
+--AaB03x--\r\n''';
headers1 = <String, String>{
- "content-disposition": "form-data; name=\"submit-name\""
+ 'content-disposition': 'form-data; name=\"submit-name\"'
};
headers2 = <String, String>{
- "content-type": "text/plain",
- "content-disposition": "form-data; name=\"files\"; filename=\"file1.txt\""
+ 'content-type': 'text/plain',
+ 'content-disposition': 'form-data; name=\"files\"; filename=\"file1.txt\"'
};
- body1 = "Larry";
- body2 = "... contents of file1.txt ...";
- _testParse(message, "AaB03x", [headers1, headers2], [body1, body2]);
+ body1 = 'Larry';
+ body2 = '... contents of file1.txt ...';
+ _testParse(message, 'AaB03x', [headers1, headers2], [body1, body2]);
// Longer form from submitting the following from Chrome.
//
@@ -262,19 +262,19 @@
// <body>
// <FORM action="http://127.0.0.1:1234/"
// enctype="multipart/form-data"
- // method="post">
+ // method='post'>
// <P>
- // Text: <INPUT type="text" name="text_input">
- // Password: <INPUT type="password" name="password_input">
- // Checkbox: <INPUT type="checkbox" name="checkbox_input">
- // Radio: <INPUT type="radio" name="radio_input">
- // Send <INPUT type="submit">
+ // Text: <INPUT type='text' name='text_input'>
+ // Password: <INPUT type='password' name='password_input'>
+ // Checkbox: <INPUT type='checkbox' name='checkbox_input'>
+ // Radio: <INPUT type='radio' name='radio_input'>
+ // Send <INPUT type='submit'>
// </P>
// </FORM>
// </body>
// </html>
- message = """
+ message = '''
\r\n------WebKitFormBoundaryQ3cgYAmGRF8yOeYB\r
Content-Disposition: form-data; name=\"text_input\"\r
\r
@@ -291,28 +291,28 @@
Content-Disposition: form-data; name=\"radio_input\"\r
\r
on\r
-------WebKitFormBoundaryQ3cgYAmGRF8yOeYB--\r\n""";
+------WebKitFormBoundaryQ3cgYAmGRF8yOeYB--\r\n''';
headers1 = <String, String>{
- "content-disposition": "form-data; name=\"text_input\""
+ 'content-disposition': 'form-data; name=\"text_input\"'
};
headers2 = <String, String>{
- "content-disposition": "form-data; name=\"password_input\""
+ 'content-disposition': 'form-data; name=\"password_input\"'
};
var headers3 = <String, String>{
- "content-disposition": "form-data; name=\"checkbox_input\""
+ 'content-disposition': 'form-data; name=\"checkbox_input\"'
};
var headers4 = <String, String>{
- "content-disposition": "form-data; name=\"radio_input\""
+ 'content-disposition': 'form-data; name=\"radio_input\"'
};
- body1 = "text";
- body2 = "password";
- var body3 = "on";
- var body4 = "on";
- _testParse(message, "----WebKitFormBoundaryQ3cgYAmGRF8yOeYB",
+ body1 = 'text';
+ body2 = 'password';
+ var body3 = 'on';
+ var body4 = 'on';
+ _testParse(message, '----WebKitFormBoundaryQ3cgYAmGRF8yOeYB',
[headers1, headers2, headers3, headers4], [body1, body2, body3, body4]);
// Same form from Firefox.
- message = """
+ message = '''
\r\n-----------------------------52284550912143824192005403738\r
Content-Disposition: form-data; name=\"text_input\"\r
\r
@@ -329,15 +329,15 @@
Content-Disposition: form-data; name=\"radio_input\"\r
\r
on\r
------------------------------52284550912143824192005403738--\r\n""";
+-----------------------------52284550912143824192005403738--\r\n''';
_testParse(
message,
- "---------------------------52284550912143824192005403738",
+ '---------------------------52284550912143824192005403738',
[headers1, headers2, headers3, headers4],
[body1, body2, body3, body4]);
// And Internet Explorer
- message = """
+ message = '''
\r\n-----------------------------7dc8f38c60326\r
Content-Disposition: form-data; name=\"text_input\"\r
\r
@@ -354,12 +354,12 @@
Content-Disposition: form-data; name=\"radio_input\"\r
\r
on\r
------------------------------7dc8f38c60326--\r\n""";
- _testParse(message, "---------------------------7dc8f38c60326",
+-----------------------------7dc8f38c60326--\r\n''';
+ _testParse(message, '---------------------------7dc8f38c60326',
[headers1, headers2, headers3, headers4], [body1, body2, body3, body4]);
// Test boundary prefix inside prefix and content.
- message = """
+ message = '''
-\r
--\r
--b\r
@@ -393,9 +393,9 @@
--b\r\r\r\r
--\r\r\r
-\r\r
---boundary--\r\n""";
- var headers = <String, String>{"content-type": "text/plain"};
- body1 = """
+--boundary--\r\n''';
+ var headers = <String, String>{'content-type': 'text/plain'};
+ body1 = '''
-\r
--\r
--b\r
@@ -404,8 +404,8 @@
--boun\r
--bound\r\r
--bounda\r\r\r
---boundar\r\r\r""";
- body2 = """
+--boundar\r\r\r''';
+ body2 = '''
--boundar\r
--bounda\r
--bound\r
@@ -414,11 +414,11 @@
--bo\r
--b\r\r\r\r
--\r\r\r
--\r""";
- _testParse(message, "boundary", [headers, headers], [body1, body2]);
+-\r''';
+ _testParse(message, 'boundary', [headers, headers], [body1, body2]);
// Without initial CRLF.
- message = """
+ message = '''
--xxx\r
\r
\r
@@ -427,13 +427,13 @@
\r
\r
Body2\r
---xxx--\r\n""";
- _testParse(message, "xxx", null, ["\r\nBody 1", "\r\nBody2"]);
+--xxx--\r\n''';
+ _testParse(message, 'xxx', null, ['\r\nBody 1', '\r\nBody2']);
}
void _testParseInvalid() {
// Missing end boundary.
- var message = """
+ var message = '''
\r
--xxx\r
\r
@@ -443,8 +443,8 @@
\r
\r
Body2\r
---xxx\r\n""";
- _testParse(message, "xxx", null, [null, null], true);
+--xxx\r\n''';
+ _testParse(message, 'xxx', null, [null, null], true);
}
void main() {