afb490adbc
This CL updates dart:io but not dart:_http. It updates the sdk sources, the patch files, and tests. Change-Id: I64c3da407f09fa2bc6eec582049c4ae3a8afbe6d Reviewed-on: https://dart-review.googlesource.com/52990 Commit-Queue: Zach Anderson <zra@google.com> Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
49 lines
1.6 KiB
Dart
49 lines
1.6 KiB
Dart
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
|
// 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 'dart:io';
|
|
import 'dart:convert';
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
// This only works reliabily for "ASCII" cross platform as that is the only
|
|
// well known part of the default Windows code page.
|
|
void testEncodeDecode(String str) {
|
|
Expect.equals(systemEncoding.decode(systemEncoding.encode(str)), str);
|
|
}
|
|
|
|
// This only works reliabily for "ASCII" cross platform as that is the only
|
|
// common set of bytes between UTF-8 Windows code pages that convert back
|
|
// and forth.
|
|
void testDecodeEncode(List<int> bytes) {
|
|
Expect.listEquals(systemEncoding.encode(systemEncoding.decode(bytes)), bytes);
|
|
}
|
|
|
|
void test(List<int> bytes) {
|
|
var str = new String.fromCharCodes(bytes);
|
|
Expect.equals(systemEncoding.decode(bytes), str);
|
|
Expect.listEquals(systemEncoding.encode(str), bytes);
|
|
testDecodeEncode(bytes);
|
|
testEncodeDecode(str);
|
|
}
|
|
|
|
main() {
|
|
test([65, 66, 67]);
|
|
test([65, 0, 67]);
|
|
test([0, 65, 0, 67, 0]);
|
|
test([0, 0, 0]);
|
|
test(new Iterable.generate(128, (i) => i).toList());
|
|
if (Platform.isWindows) {
|
|
// On Windows the default Windows code page cannot encode these
|
|
// Unicode characters and the ? character is used.
|
|
Expect.listEquals(
|
|
systemEncoding.encode('\u1234\u5678\u9abc'), '???'.codeUnits);
|
|
} else {
|
|
// On all systems except for Windows UTF-8 is used as the system
|
|
// encoding.
|
|
Expect.listEquals(systemEncoding.encode('\u1234\u5678\u9abc'),
|
|
utf8.encode('\u1234\u5678\u9abc'));
|
|
}
|
|
}
|