Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(484)

Unified Diff: tests/lib/convert/ascii_test.dart

Issue 22875034: Add ASCII encoding to lib/convert. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address review comments Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/lib/convert/latin1.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/lib/convert/ascii_test.dart
diff --git a/tests/lib/convert/latin1_test.dart b/tests/lib/convert/ascii_test.dart
similarity index 55%
copy from tests/lib/convert/latin1_test.dart
copy to tests/lib/convert/ascii_test.dart
index 18a77978aa641a8dd6a84554ecb108341e307797..239130f7a61d8c3c9b2509aa8db6f5c72d8b39ac 100644
--- a/tests/lib/convert/latin1_test.dart
+++ b/tests/lib/convert/ascii_test.dart
@@ -5,63 +5,65 @@
import "package:expect/expect.dart";
import 'dart:convert';
-var latin1Strings = [
+var asciiStrings = [
"pure ascii",
- "blåbærgrød",
- "\x00 edge cases \xff"
+ "\x00 with control characters \n",
+ "\x01 edge cases \x7f"
];
-var nonLatin1Strings = [
- "Edge case \u{100}",
+var nonAsciiStrings = [
+ "\x80 edge case first",
+ "Edge case ASCII \u{80}",
+ "Edge case byte \u{ff}",
"Edge case super-BMP \u{10000}"
];
void main() {
// Build longer versions of the example strings.
- for (int i = 0, n = latin1Strings.length; i < n ; i++) {
- var string = latin1Strings[i];
+ for (int i = 0, n = asciiStrings.length; i < n ; i++) {
+ var string = asciiStrings[i];
while (string.length < 1024) {
string += string;
}
- latin1Strings.add(string);
+ asciiStrings.add(string);
}
- for (int i = 0, n = nonLatin1Strings.length; i < n ; i++) {
- var string = nonLatin1Strings[i];
+ for (int i = 0, n = nonAsciiStrings.length; i < n ; i++) {
+ var string = nonAsciiStrings[i];
while (string.length < 1024) {
string += string;
}
- nonLatin1Strings.add(string);
+ nonAsciiStrings.add(string);
}
testDirectConversions();
testChunkedConversions();
}
void testDirectConversions() {
- for (var codec in [LATIN1, new Latin1Codec()]) {
- for (var latin1String in latin1Strings) {
- List bytes = codec.encoder.convert(latin1String);
- Expect.listEquals(latin1String.codeUnits.toList(), bytes, latin1String);
+ for (var codec in [ASCII, new AsciiCodec()]) {
+ for (var asciiString in asciiStrings) {
+ List bytes = codec.encoder.convert(asciiString);
+ Expect.listEquals(asciiString.codeUnits.toList(), bytes, asciiString);
String roundTripString = codec.decoder.convert(bytes);
- Expect.equals(latin1String, roundTripString);
+ Expect.equals(asciiString, roundTripString);
roundTripString = codec.decode(bytes);
- Expect.equals(latin1String, roundTripString);
+ Expect.equals(asciiString, roundTripString);
}
- for (var nonLatin1String in nonLatin1Strings) {
+ for (var nonAsciiString in nonAsciiStrings) {
Expect.throws(() {
- print(codec.encoder.convert(nonLatin1String));
- }, null, nonLatin1String);
+ print(codec.encoder.convert(nonAsciiString));
+ }, null, nonAsciiString);
}
}
- var allowInvalidCodec = new Latin1Codec(allowInvalid: true);
+ var allowInvalidCodec = new AsciiCodec(allowInvalid: true);
var invalidBytes = [0, 1, 0xff, 0xdead, 0];
String decoded = allowInvalidCodec.decode(invalidBytes);
- Expect.equals("\x00\x01\xFF\uFFFD\x00", decoded);
+ Expect.equals("\x00\x01\uFFFD\uFFFD\x00", decoded);
decoded = allowInvalidCodec.decoder.convert(invalidBytes);
- Expect.equals("\x00\x01\xFF\uFFFD\x00", decoded);
- decoded = LATIN1.decode(invalidBytes, allowInvalid: true);
- Expect.equals("\x00\x01\xFF\uFFFD\x00", decoded);
+ Expect.equals("\x00\x01\uFFFD\uFFFD\x00", decoded);
+ decoded = ASCII.decode(invalidBytes, allowInvalid: true);
+ Expect.equals("\x00\x01\uFFFD\uFFFD\x00", decoded);
}
List<int> encode(String str, int chunkSize,
@@ -100,33 +102,33 @@ String decode(List<int> bytes, int chunkSize,
void testChunkedConversions() {
// Check encoding.
- for (var converter in [LATIN1.encoder,
- new Latin1Codec().encoder,
- new Latin1Encoder()]) {
+ for (var converter in [ASCII.encoder,
+ new AsciiCodec().encoder,
+ new AsciiEncoder()]) {
for (int chunkSize in [1, 2, 5, 50]) {
- for (var latin1String in latin1Strings) {
- var units = latin1String.codeUnits.toList();
- List bytes = encode(latin1String, chunkSize, converter);
+ for (var asciiString in asciiStrings) {
+ var units = asciiString.codeUnits.toList();
+ List bytes = encode(asciiString, chunkSize, converter);
Expect.listEquals(units, bytes);
}
- for (var nonLatin1String in nonLatin1Strings) {
+ for (var nonAsciiString in nonAsciiStrings) {
Expect.throws(() {
- encode(nonLatin1Strings, chunkSize, converter);
+ encode(nonAsciiStrings, chunkSize, converter);
});
}
}
}
// Check decoding.
- for (var converter in [LATIN1.decoder,
- new Latin1Codec().decoder,
- new Latin1Decoder()]) {
+ for (var converter in [ASCII.decoder,
+ new AsciiCodec().decoder,
+ new AsciiDecoder()]) {
for (int chunkSize in [1, 2, 5, 50]) {
- for (var latin1String in latin1Strings) {
- var units = latin1String.codeUnits.toList();
- Expect.equals(latin1String, decode(units, chunkSize, converter));
+ for (var asciiString in asciiStrings) {
+ var units = asciiString.codeUnits.toList();
+ Expect.equals(asciiString, decode(units, chunkSize, converter));
}
- for (var nonLatin1String in nonLatin1Strings) {
- var units = nonLatin1String.codeUnits.toList();
+ for (var nonAsciiString in nonAsciiStrings) {
+ var units = nonAsciiString.codeUnits.toList();
Expect.throws(() {
decode(units, chunkSize, converter);
});
« no previous file with comments | « sdk/lib/convert/latin1.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698