dart-sdk/tests/corelib/string_source_test.dart
lrn@google.com dc19265838 Fix test to not assume that JSON.decode returns dynamic.
It currently returns Object.
I have CL to make it do that again, but it's open for discussion.

Review URL: https://codereview.chromium.org//52353002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29527 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 10:37:00 +00:00

36 lines
1.1 KiB
Dart

// Copyright (c) 2013, 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.
// Test that different representations of the same string are all equal.
import "dart:convert";
import "package:expect/expect.dart";
main() {
var base = "\u{10412}";
var strings = [
"\u{10412}",
"𐐒",
new String.fromCharCodes([0xd801, 0xdc12]),
base[0] + base[1],
"$base",
"${base[0]}${base[1]}",
"${base[0]}${base.substring(1)}",
new String.fromCharCodes([0x10412]),
("a" + base).substring(1),
(new StringBuffer()..writeCharCode(0xd801)
..writeCharCode(0xdc12)).toString(),
(new StringBuffer()..writeCharCode(0x10412)).toString(),
JSON.decode('"\u{10412}"'),
(JSON.decode('{"\u{10412}":[]}') as Map).keys.first
];
for (String string in strings) {
Expect.equals(base.length, string.length);
Expect.equals(base, string);
Expect.equals(base.hashCode, string.hashCode);
Expect.listEquals(base.codeUnits.toList(), string.codeUnits.toList());
}
}