| // Copyright (c) 2014, 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. |
| |
| // @dart = 2.9 |
| |
| // Note: These tests rely on specific line endings in the source files. |
| |
| import "dart:mirrors"; |
| import "package:expect/expect.dart"; |
| |
| import "method_mirror_source_line_ending_lf.dart"; |
| import "method_mirror_source_line_ending_cr.dart"; |
| import "method_mirror_source_line_ending_crlf.dart"; |
| |
| main() { |
| String sourceOf(Function f) => (reflect(f) as ClosureMirror).function.source; |
| |
| // Source does not cross line breaks. |
| Expect.stringEquals('oneLineLF(x) => x;', sourceOf(oneLineLF)); |
| Expect.stringEquals('oneLineCR(x) => x;', sourceOf(oneLineCR)); |
| Expect.stringEquals('oneLineCRLF(x) => x;', sourceOf(oneLineCRLF)); |
| |
| // Source includes line breaks. |
| Expect.stringEquals( |
| 'multiLineLF(y) {\n return y + 1;\n}', sourceOf(multiLineLF)); |
| Expect.stringEquals( |
| 'multiLineCR(y) {\r return y + 1;\r}', sourceOf(multiLineCR)); |
| Expect.stringEquals( |
| 'multiLineCRLF(y) {\r\n return y + 1;\r\n}', sourceOf(multiLineCRLF)); |
| |
| // First and last characters separated from middle by line breaks. |
| Expect.stringEquals('a\n(){\n}', sourceOf(a)); |
| Expect.stringEquals('b\r(){\r}', sourceOf(b)); |
| Expect.stringEquals('c\r\n(){\r\n}', sourceOf(c)); |
| } |