| Index: test/codegen/corelib/format_exception_test.dart
|
| diff --git a/test/codegen/corelib/format_exception_test.dart b/test/codegen/corelib/format_exception_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..121494cadbf8edce916ece58ea7577df4c26d0be
|
| --- /dev/null
|
| +++ b/test/codegen/corelib/format_exception_test.dart
|
| @@ -0,0 +1,73 @@
|
| +// Copyright (c) 2011, 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.
|
| +
|
| +library format_exception_test;
|
| +import "package:expect/expect.dart";
|
| +
|
| +test(exn, message, source, offset, toString) {
|
| + Expect.equals(message, exn.message);
|
| + Expect.equals(source, exn.source);
|
| + Expect.equals(offset, exn.offset);
|
| + Expect.equals(toString, exn.toString());
|
| +}
|
| +
|
| +main() {
|
| + var e;
|
| + e = new FormatException();
|
| + test(e, "", null, null, "FormatException");
|
| + e = new FormatException("");
|
| + test(e, "", null, null, "FormatException");
|
| + e = new FormatException(null);
|
| + test(e, null, null, null, "FormatException");
|
| +
|
| + e = new FormatException("message");
|
| + test(e, "message", null, null, "FormatException: message");
|
| +
|
| + e = new FormatException("message", "source");
|
| + test(e, "message", "source", null, "FormatException: message\nsource");
|
| +
|
| + e = new FormatException("message", "source" * 25);
|
| + test(e, "message", "source" * 25, null, "FormatException: message\n" +
|
| + "source" * 12 + "sou...");
|
| + e = new FormatException("message", "source" * 25);
|
| + test(e, "message", "source" * 25, null, "FormatException: message\n" +
|
| + "source" * 12 + "sou...");
|
| + e = new FormatException("message", "s1\nsource\ns2");
|
| + test(e, "message", "s1\nsource\ns2", null, "FormatException: message\n" +
|
| + "s1\nsource\ns2");
|
| +
|
| + var o = new Object();
|
| + e = new FormatException("message", o, 10);
|
| + test(e, "message", o, 10, "FormatException: message (at offset 10)");
|
| +
|
| + e = new FormatException("message", "source", 3);
|
| + test(e, "message", "source", 3,
|
| + "FormatException: message (at character 4)\nsource\n ^\n");
|
| +
|
| + e = new FormatException("message", "s1\nsource\ns2", 6);
|
| + test(e, "message", "s1\nsource\ns2", 6,
|
| + "FormatException: message (at line 2, character 4)\nsource\n ^\n");
|
| +
|
| + var longline = "watermelon cantaloupe " * 8 + "watermelon"; // Length > 160.
|
| + var longsource = (longline + "\n") * 25;
|
| + var line10 = (longline.length + 1) * 9;
|
| + e = new FormatException("message", longsource, line10);
|
| + test(e, "message", longsource, line10,
|
| + "FormatException: message (at line 10, character 1)\n"
|
| + "${longline.substring(0, 75)}...\n^\n");
|
| +
|
| + e = new FormatException("message", longsource, line10 - 1);
|
| + test(e, "message", longsource, line10 - 1,
|
| + "FormatException: message (at line 9, "
|
| + "character ${longline.length + 1})\n"
|
| + "...${longline.substring(longline.length - 75)}\n"
|
| + "${' ' * 78}^\n");
|
| +
|
| + var half = longline.length ~/ 2;
|
| + e = new FormatException("message", longsource, line10 + half);
|
| + test(e, "message", longsource, line10 + half,
|
| + "FormatException: message (at line 10, character ${half + 1})\n"
|
| + "...${longline.substring(half - 36, half + 36)}...\n"
|
| + "${' ' * 39}^\n");
|
| +}
|
|
|