| OLD | NEW |
| (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 library format_exception_test; | |
| 6 | |
| 7 import "package:expect/expect.dart"; | |
| 8 | |
| 9 test(exn, message, source, offset, toString) { | |
| 10 Expect.equals(message, exn.message); | |
| 11 Expect.equals(source, exn.source); | |
| 12 Expect.equals(offset, exn.offset); | |
| 13 Expect.equals(toString, exn.toString()); | |
| 14 } | |
| 15 | |
| 16 main() { | |
| 17 var e; | |
| 18 e = new FormatException(); | |
| 19 test(e, "", null, null, "FormatException"); | |
| 20 e = new FormatException(""); | |
| 21 test(e, "", null, null, "FormatException"); | |
| 22 e = new FormatException(null); | |
| 23 test(e, null, null, null, "FormatException"); | |
| 24 | |
| 25 e = new FormatException("message"); | |
| 26 test(e, "message", null, null, "FormatException: message"); | |
| 27 | |
| 28 e = new FormatException("message", "source"); | |
| 29 test(e, "message", "source", null, "FormatException: message\nsource"); | |
| 30 | |
| 31 e = new FormatException("message", "source" * 25); | |
| 32 test(e, "message", "source" * 25, null, | |
| 33 "FormatException: message\n" + "source" * 12 + "sou..."); | |
| 34 e = new FormatException("message", "source" * 25); | |
| 35 test(e, "message", "source" * 25, null, | |
| 36 "FormatException: message\n" + "source" * 12 + "sou..."); | |
| 37 e = new FormatException("message", "s1\nsource\ns2"); | |
| 38 test(e, "message", "s1\nsource\ns2", null, | |
| 39 "FormatException: message\n" + "s1\nsource\ns2"); | |
| 40 | |
| 41 var o = new Object(); | |
| 42 e = new FormatException("message", o, 10); | |
| 43 test(e, "message", o, 10, "FormatException: message (at offset 10)"); | |
| 44 | |
| 45 e = new FormatException("message", "source", 3); | |
| 46 test(e, "message", "source", 3, | |
| 47 "FormatException: message (at character 4)\nsource\n ^\n"); | |
| 48 | |
| 49 e = new FormatException("message", "s1\nsource\ns2", 6); | |
| 50 test(e, "message", "s1\nsource\ns2", 6, | |
| 51 "FormatException: message (at line 2, character 4)\nsource\n ^\n"); | |
| 52 | |
| 53 var longline = "watermelon cantaloupe " * 8 + "watermelon"; // Length > 160. | |
| 54 var longsource = (longline + "\n") * 25; | |
| 55 var line10 = (longline.length + 1) * 9; | |
| 56 e = new FormatException("message", longsource, line10); | |
| 57 test( | |
| 58 e, | |
| 59 "message", | |
| 60 longsource, | |
| 61 line10, | |
| 62 "FormatException: message (at line 10, character 1)\n" | |
| 63 "${longline.substring(0, 75)}...\n^\n"); | |
| 64 | |
| 65 e = new FormatException("message", longsource, line10 - 1); | |
| 66 test( | |
| 67 e, | |
| 68 "message", | |
| 69 longsource, | |
| 70 line10 - 1, | |
| 71 "FormatException: message (at line 9, " | |
| 72 "character ${longline.length + 1})\n" | |
| 73 "...${longline.substring(longline.length - 75)}\n" | |
| 74 "${' ' * 78}^\n"); | |
| 75 | |
| 76 var half = longline.length ~/ 2; | |
| 77 e = new FormatException("message", longsource, line10 + half); | |
| 78 test( | |
| 79 e, | |
| 80 "message", | |
| 81 longsource, | |
| 82 line10 + half, | |
| 83 "FormatException: message (at line 10, character ${half + 1})\n" | |
| 84 "...${longline.substring(half - 36, half + 36)}...\n" | |
| 85 "${' ' * 39}^\n"); | |
| 86 | |
| 87 var sourceNL = "\nsource with leading NL"; | |
| 88 e = new FormatException("message", sourceNL, 2); | |
| 89 test( | |
| 90 e, | |
| 91 "message", | |
| 92 sourceNL, | |
| 93 2, | |
| 94 "FormatException: message (at line 2, character 2)\n" | |
| 95 "source with leading NL\n" | |
| 96 " ^\n"); | |
| 97 | |
| 98 var sourceNL2 = "\n\nsource with leading NL"; | |
| 99 e = new FormatException("message", sourceNL2, 2); | |
| 100 test( | |
| 101 e, | |
| 102 "message", | |
| 103 sourceNL2, | |
| 104 2, | |
| 105 "FormatException: message (at line 3, character 1)\n" | |
| 106 "source with leading NL\n" | |
| 107 "^\n"); | |
| 108 } | |
| OLD | NEW |