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

Side by Side Diff: test/command_line_test.dart

Issue 1470263004: Add "-i" to command line to specify leading indent. (Closed) Base URL: https://github.com/dart-lang/dart_style.git@master
Patch Set: Created 5 years 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
« no previous file with comments | « lib/src/io.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart_style.test.command_line; 5 library dart_style.test.command_line;
6 6
7 import 'dart:convert'; 7 import 'dart:convert';
8 8
9 import 'package:path/path.dart' as p; 9 import 'package:path/path.dart' as p;
10 import 'package:scheduled_test/descriptor.dart' as d; 10 import 'package:scheduled_test/descriptor.dart' as d;
11 import 'package:scheduled_test/scheduled_test.dart'; 11 import 'package:scheduled_test/scheduled_test.dart';
12 import 'package:scheduled_test/scheduled_stream.dart'; 12 import 'package:scheduled_test/scheduled_stream.dart';
13 13
14 import 'utils.dart'; 14 import 'utils.dart';
15 15
16 void main() { 16 void main() {
17 setUpTestSuite(); 17 setUpTestSuite();
18 18
19 test("Exits with 0 on success.", () { 19 test("exits with 0 on success", () {
20 d.dir("code", [d.file("a.dart", unformattedSource)]).create(); 20 d.dir("code", [d.file("a.dart", unformattedSource)]).create();
21 21
22 var process = runFormatterOnDir(); 22 var process = runFormatterOnDir();
23 process.shouldExit(0); 23 process.shouldExit(0);
24 }); 24 });
25 25
26 test("Exits with 64 on a command line argument error.", () { 26 test("exits with 64 on a command line argument error", () {
27 var process = runFormatterOnDir(["-wat"]); 27 var process = runFormatterOnDir(["-wat"]);
28 process.shouldExit(64); 28 process.shouldExit(64);
29 }); 29 });
30 30
31 test("Exits with 65 on a parse error.", () { 31 test("exits with 65 on a parse error", () {
32 d.dir("code", [d.file("a.dart", "herp derp i are a dart")]).create(); 32 d.dir("code", [d.file("a.dart", "herp derp i are a dart")]).create();
33 33
34 var process = runFormatterOnDir(); 34 var process = runFormatterOnDir();
35 process.shouldExit(65); 35 process.shouldExit(65);
36 }); 36 });
37 37
38 test("Errors if --dry-run and --overwrite are both passed.", () { 38 test("errors if --dry-run and --overwrite are both passed", () {
39 d.dir("code", [d.file("a.dart", unformattedSource)]).create(); 39 d.dir("code", [d.file("a.dart", unformattedSource)]).create();
40 40
41 var process = runFormatterOnDir(["--dry-run", "--overwrite"]); 41 var process = runFormatterOnDir(["--dry-run", "--overwrite"]);
42 process.shouldExit(64); 42 process.shouldExit(64);
43 }); 43 });
44 44
45 test("Errors if --dry-run and --machine are both passed.", () { 45 test("errors if --dry-run and --machine are both passed", () {
46 d.dir("code", [d.file("a.dart", unformattedSource)]).create(); 46 d.dir("code", [d.file("a.dart", unformattedSource)]).create();
47 47
48 var process = runFormatterOnDir(["--dry-run", "--machine"]); 48 var process = runFormatterOnDir(["--dry-run", "--machine"]);
49 process.shouldExit(64); 49 process.shouldExit(64);
50 }); 50 });
51 51
52 test("Errors if --machine and --overwrite are both passed.", () { 52 test("errors if --machine and --overwrite are both passed", () {
53 d.dir("code", [d.file("a.dart", unformattedSource)]).create(); 53 d.dir("code", [d.file("a.dart", unformattedSource)]).create();
54 54
55 var process = runFormatterOnDir(["--machine", "--overwrite"]); 55 var process = runFormatterOnDir(["--machine", "--overwrite"]);
56 process.shouldExit(64); 56 process.shouldExit(64);
57 }); 57 });
58 58
59 test("Errors if --dry-run and --machine are both passed.", () { 59 test("errors if --dry-run and --machine are both passed", () {
60 d.dir("code", [d.file("a.dart", unformattedSource)]).create(); 60 d.dir("code", [d.file("a.dart", unformattedSource)]).create();
61 61
62 var process = runFormatter(["--dry-run", "--machine"]); 62 var process = runFormatter(["--dry-run", "--machine"]);
63 process.shouldExit(64); 63 process.shouldExit(64);
64 }); 64 });
65 65
66 test("Errors if --machine and --overwrite are both passed.", () { 66 test("errors if --machine and --overwrite are both passed", () {
67 d.dir("code", [d.file("a.dart", unformattedSource)]).create(); 67 d.dir("code", [d.file("a.dart", unformattedSource)]).create();
68 68
69 var process = runFormatter(["--machine", "--overwrite"]); 69 var process = runFormatter(["--machine", "--overwrite"]);
70 process.shouldExit(64); 70 process.shouldExit(64);
71 }); 71 });
72 72
73 test("--version prints the version number", () { 73 test("--version prints the version number", () {
74 var process = runFormatter(["--version"]); 74 var process = runFormatter(["--version"]);
75 75
76 // Match something roughly semver-like. 76 // Match something roughly semver-like.
(...skipping 10 matching lines...) Expand all
87 ]).create(); 87 ]).create();
88 88
89 var process = runFormatterOnDir(); 89 var process = runFormatterOnDir();
90 90
91 process.stdout.expect(startsWith("Formatting directory")); 91 process.stdout.expect(startsWith("Formatting directory"));
92 process.stdout.expect("Skipping hidden path ${p.join("code", ".skip")}"); 92 process.stdout.expect("Skipping hidden path ${p.join("code", ".skip")}");
93 process.shouldExit(); 93 process.shouldExit();
94 }); 94 });
95 95
96 group("--dry-run", () { 96 group("--dry-run", () {
97 test("prints names of files that would change.", () { 97 test("prints names of files that would change", () {
98 d.dir("code", [ 98 d.dir("code", [
99 d.file("a_bad.dart", unformattedSource), 99 d.file("a_bad.dart", unformattedSource),
100 d.file("b_good.dart", formattedSource), 100 d.file("b_good.dart", formattedSource),
101 d.file("c_bad.dart", unformattedSource), 101 d.file("c_bad.dart", unformattedSource),
102 d.file("d_good.dart", formattedSource) 102 d.file("d_good.dart", formattedSource)
103 ]).create(); 103 ]).create();
104 104
105 var aBad = p.join("code", "a_bad.dart"); 105 var aBad = p.join("code", "a_bad.dart");
106 var cBad = p.join("code", "c_bad.dart"); 106 var cBad = p.join("code", "c_bad.dart");
107 107
108 var process = runFormatterOnDir(["--dry-run"]); 108 var process = runFormatterOnDir(["--dry-run"]);
109 109
110 // The order isn't specified. 110 // The order isn't specified.
111 process.stdout.expect(either(aBad, cBad)); 111 process.stdout.expect(either(aBad, cBad));
112 process.stdout.expect(either(aBad, cBad)); 112 process.stdout.expect(either(aBad, cBad));
113 process.shouldExit(); 113 process.shouldExit();
114 }); 114 });
115 115
116 test("does not modify files.", () { 116 test("does not modify files", () {
117 d.dir("code", [d.file("a.dart", unformattedSource)]).create(); 117 d.dir("code", [d.file("a.dart", unformattedSource)]).create();
118 118
119 var process = runFormatterOnDir(["--dry-run"]); 119 var process = runFormatterOnDir(["--dry-run"]);
120 process.stdout.expect(p.join("code", "a.dart")); 120 process.stdout.expect(p.join("code", "a.dart"));
121 process.shouldExit(); 121 process.shouldExit();
122 122
123 d.dir('code', [d.file('a.dart', unformattedSource)]).validate(); 123 d.dir('code', [d.file('a.dart', unformattedSource)]).validate();
124 }); 124 });
125 }); 125 });
126 126
(...skipping 19 matching lines...) Expand all
146 var process = runFormatterOnDir(["--machine"]); 146 var process = runFormatterOnDir(["--machine"]);
147 147
148 // The order isn't specified. 148 // The order isn't specified.
149 process.stdout.expect(either(jsonA, jsonB)); 149 process.stdout.expect(either(jsonA, jsonB));
150 process.stdout.expect(either(jsonA, jsonB)); 150 process.stdout.expect(either(jsonA, jsonB));
151 process.shouldExit(); 151 process.shouldExit();
152 }); 152 });
153 }); 153 });
154 154
155 group("--preserve", () { 155 group("--preserve", () {
156 test("errors if given paths.", () { 156 test("errors if given paths", () {
157 var process = runFormatter(["--preserve", "path", "another"]); 157 var process = runFormatter(["--preserve", "path", "another"]);
158 process.shouldExit(64); 158 process.shouldExit(64);
159 }); 159 });
160 160
161 test("errors on wrong number of components.", () { 161 test("errors on wrong number of components", () {
162 var process = runFormatter(["--preserve", "1"]); 162 var process = runFormatter(["--preserve", "1"]);
163 process.shouldExit(64); 163 process.shouldExit(64);
164 164
165 process = runFormatter(["--preserve", "1:2:3"]); 165 process = runFormatter(["--preserve", "1:2:3"]);
166 process.shouldExit(64); 166 process.shouldExit(64);
167 }); 167 });
168 168
169 test("errors on non-integer component.", () { 169 test("errors on non-integer component", () {
170 var process = runFormatter(["--preserve", "1:2.3"]); 170 var process = runFormatter(["--preserve", "1:2.3"]);
171 process.shouldExit(64); 171 process.shouldExit(64);
172 }); 172 });
173 173
174 test("updates selection.", () { 174 test("updates selection", () {
175 var process = runFormatter(["--preserve", "6:10", "-m"]); 175 var process = runFormatter(["--preserve", "6:10", "-m"]);
176 process.writeLine(unformattedSource); 176 process.writeLine(unformattedSource);
177 process.closeStdin(); 177 process.closeStdin();
178 178
179 var json = JSON.encode({ 179 var json = JSON.encode({
180 "path": "<stdin>", 180 "path": "<stdin>",
181 "source": formattedSource, 181 "source": formattedSource,
182 "selection": {"offset": 5, "length": 9} 182 "selection": {"offset": 5, "length": 9}
183 }); 183 });
184 184
185 process.stdout.expect(json); 185 process.stdout.expect(json);
186 process.shouldExit(); 186 process.shouldExit();
187 }); 187 });
188 }); 188 });
189 189
190 group("--indent", () {
191 test("sets the leading indentation of the output", () {
192 var process = runFormatter(["--indent", "3"]);
193 process.writeLine("main() {'''");
194 process.writeLine("a flush left multi-line string''';}");
195 process.closeStdin();
196
197 process.stdout.expect(" main() {");
198 process.stdout.expect(" '''");
199 process.stdout.expect("a flush left multi-line string''';");
200 process.stdout.expect(" }");
201 process.shouldExit(0);
202 });
203
204 test("errors if the indent is not a non-negative number", () {
205 var process = runFormatter(["--indent", "notanum"]);
206 process.shouldExit(64);
207
208 process = runFormatter(["--preserve", "-4"]);
209 process.shouldExit(64);
210 });
211 });
212
190 group("with no paths", () { 213 group("with no paths", () {
191 test("errors on --overwrite.", () { 214 test("errors on --overwrite", () {
192 var process = runFormatter(["--overwrite"]); 215 var process = runFormatter(["--overwrite"]);
193 process.shouldExit(64); 216 process.shouldExit(64);
194 }); 217 });
195 218
196 test("exits with 65 on parse error.", () { 219 test("exits with 65 on parse error", () {
197 var process = runFormatter(); 220 var process = runFormatter();
198 process.writeLine("herp derp i are a dart"); 221 process.writeLine("herp derp i are a dart");
199 process.closeStdin(); 222 process.closeStdin();
200 process.shouldExit(65); 223 process.shouldExit(65);
201 }); 224 });
202 225
203 test("reads from stdin.", () { 226 test("reads from stdin", () {
204 var process = runFormatter(); 227 var process = runFormatter();
205 process.writeLine(unformattedSource); 228 process.writeLine(unformattedSource);
206 process.closeStdin(); 229 process.closeStdin();
207 230
208 // No trailing newline at the end. 231 // No trailing newline at the end.
209 process.stdout.expect(formattedSource.trimRight()); 232 process.stdout.expect(formattedSource.trimRight());
210 process.shouldExit(0); 233 process.shouldExit(0);
211 }); 234 });
212 }); 235 });
213 } 236 }
OLDNEW
« no previous file with comments | « lib/src/io.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698