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

Side by Side Diff: tests/corelib/src/ConstListLiteralTest.dart

Issue 10244009: test rename overhaul: step 7 - corelib tests (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 // Test that a final list literal is not expandable nor modifiable.
6
7 class ConstListLiteralTest {
8
9 static void testMain() {
10 var list = const [4, 2, 3];
11 Expect.equals(3, list.length);
12
13 var exception = null;
14 try {
15 list.add(4);
16 } catch (UnsupportedOperationException e) {
17 exception = e;
18 }
19 Expect.equals(true, exception != null);
20 Expect.equals(3, list.length);
21 exception = null;
22
23 exception = null;
24 try {
25 list.addAll([4, 5]);
26 } catch (UnsupportedOperationException e) {
27 exception = e;
28 }
29 Expect.equals(true, exception != null);
30 Expect.equals(3, list.length);
31
32 exception = null;
33 try {
34 list[0] = 0;
35 } catch (UnsupportedOperationException e) {
36 exception = e;
37 }
38 Expect.equals(true, exception != null);
39 Expect.equals(3, list.length);
40
41 exception = null;
42 try {
43 list.sort((a, b) => a < b);
44 } catch (UnsupportedOperationException e) {
45 exception = e;
46 }
47 Expect.equals(true, exception != null);
48 Expect.equals(3, list.length);
49 Expect.equals(4, list[0]);
50 Expect.equals(2, list[1]);
51 Expect.equals(3, list[2]);
52
53 exception = null;
54 try {
55 list.copyFrom([1], 0, 0, 1);
56 } catch (NoSuchMethodException e) {
57 // TODO(ahe): While we are resolving CL 9839101, we have two
58 // cases: the VMs implementation class has a method named
59 // copyFrom, dart2js does not.
60 exception = e;
61 } catch (UnsupportedOperationException e) {
62 exception = e;
63 }
64 Expect.equals(true, exception != null);
65 Expect.equals(3, list.length);
66 Expect.equals(4, list[0]);
67 Expect.equals(2, list[1]);
68 Expect.equals(3, list[2]);
69
70 // Note: the next check is a regression test for frog. The immutable list
71 // overrides the 'length' property of List, but relies on using the native
72 // 'forEach' construct in Array. This test ensures that our strategy works
73 // correctly.
74 int x = 0;
75 list.forEach((e) { x += e; });
76 Expect.equals(9, x);
77 }
78 }
79
80 main() {
81 ConstListLiteralTest.testMain();
82 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698