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

Side by Side Diff: test/io_test.dart

Issue 1182953003: Eat some dogfood! (Closed) Base URL: https://github.com/dart-lang/dart_style.git@master
Patch Set: Created 5 years, 6 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
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.io; 5 library dart_style.test.io;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:io'; 8 import 'dart:io';
9 9
10 import 'package:dart_style/src/io.dart'; 10 import 'package:dart_style/src/io.dart';
11 import 'package:path/path.dart' as p; 11 import 'package:path/path.dart' as p;
12 import 'package:scheduled_test/descriptor.dart' as d; 12 import 'package:scheduled_test/descriptor.dart' as d;
13 import 'package:scheduled_test/scheduled_test.dart'; 13 import 'package:scheduled_test/scheduled_test.dart';
14 14
15 import 'package:dart_style/src/formatter_options.dart'; 15 import 'package:dart_style/src/formatter_options.dart';
16 16
17 import 'utils.dart'; 17 import 'utils.dart';
18 18
19 void main() { 19 void main() {
20 setUpTestSuite(); 20 setUpTestSuite();
21 21
22 var overwriteOptions = new FormatterOptions(OutputReporter.overwrite); 22 var overwriteOptions = new FormatterOptions(OutputReporter.overwrite);
23 23
24 var followOptions = new FormatterOptions(OutputReporter.overwrite, 24 var followOptions =
25 followLinks: true); 25 new FormatterOptions(OutputReporter.overwrite, followLinks: true);
26 26
27 test('handles directory ending in ".dart"', () { 27 test('handles directory ending in ".dart"', () {
28 d.dir('code.dart', [ 28 d.dir('code.dart', [d.file('a.dart', unformattedSource),]).create();
29 d.file('a.dart', unformattedSource),
30 ]).create();
31 29
32 schedule(() { 30 schedule(() {
33 var dir = new Directory(d.defaultRoot); 31 var dir = new Directory(d.defaultRoot);
34 processDirectory(overwriteOptions, dir); 32 processDirectory(overwriteOptions, dir);
35 }, 'Run formatter.'); 33 }, 'Run formatter.');
36 34
37 d.dir('code.dart', [ 35 d.dir('code.dart', [d.file('a.dart', formattedSource)]).validate();
38 d.file('a.dart', formattedSource)
39 ]).validate();
40 }); 36 });
41 37
42 test("doesn't touch unchanged files", () { 38 test("doesn't touch unchanged files", () {
43 d.dir('code', [ 39 d.dir('code', [
44 d.file('bad.dart', unformattedSource), 40 d.file('bad.dart', unformattedSource),
45 d.file('good.dart', formattedSource), 41 d.file('good.dart', formattedSource),
46 ]).create(); 42 ]).create();
47 43
48 modTime(String file) { 44 modTime(String file) {
49 return new File(p.join(d.defaultRoot, 'code', file)).statSync().modified; 45 return new File(p.join(d.defaultRoot, 'code', file)).statSync().modified;
(...skipping 18 matching lines...) Expand all
68 var badAfter = modTime('bad.dart'); 64 var badAfter = modTime('bad.dart');
69 expect(badAfter, isNot(equals(badBefore))); 65 expect(badAfter, isNot(equals(badBefore)));
70 66
71 // Should not be touched. 67 // Should not be touched.
72 var goodAfter = modTime('good.dart'); 68 var goodAfter = modTime('good.dart');
73 expect(goodAfter, equals(goodBefore)); 69 expect(goodAfter, equals(goodBefore));
74 }); 70 });
75 }); 71 });
76 72
77 test("skips subdirectories whose name starts with '.'", () { 73 test("skips subdirectories whose name starts with '.'", () {
78 d.dir('code', [ 74 d.dir('code', [d.dir('.skip', [d.file('a.dart', unformattedSource)])])
79 d.dir('.skip', [ 75 .create();
80 d.file('a.dart', unformattedSource)
81 ])
82 ]).create();
83 76
84 schedule(() { 77 schedule(() {
85 var dir = new Directory(d.defaultRoot); 78 var dir = new Directory(d.defaultRoot);
86 processDirectory(overwriteOptions, dir); 79 processDirectory(overwriteOptions, dir);
87 }, 'Run formatter.'); 80 }, 'Run formatter.');
88 81
89 d.dir('code', [ 82 d.dir('code', [d.dir('.skip', [d.file('a.dart', unformattedSource)])])
90 d.dir('.skip', [ 83 .validate();
91 d.file('a.dart', unformattedSource)
92 ])
93 ]).validate();
94 }); 84 });
95 85
96 test("traverses the given directory even if its name starts with '.'", () { 86 test("traverses the given directory even if its name starts with '.'", () {
97 d.dir('.code', [ 87 d.dir('.code', [d.file('a.dart', unformattedSource)]).create();
98 d.file('a.dart', unformattedSource)
99 ]).create();
100 88
101 schedule(() { 89 schedule(() {
102 var dir = new Directory(p.join(d.defaultRoot, '.code')); 90 var dir = new Directory(p.join(d.defaultRoot, '.code'));
103 processDirectory(overwriteOptions, dir); 91 processDirectory(overwriteOptions, dir);
104 }, 'Run formatter.'); 92 }, 'Run formatter.');
105 93
106 d.dir('.code', [ 94 d.dir('.code', [d.file('a.dart', formattedSource)]).validate();
107 d.file('a.dart', formattedSource)
108 ]).validate();
109 }); 95 });
110 96
111 test("doesn't follow directory symlinks by default", () { 97 test("doesn't follow directory symlinks by default", () {
112 d.dir('code', [ 98 d.dir('code', [d.file('a.dart', unformattedSource),]).create();
113 d.file('a.dart', unformattedSource),
114 ]).create();
115 99
116 d.dir('target_dir', [ 100 d.dir('target_dir', [d.file('b.dart', unformattedSource),]).create();
117 d.file('b.dart', unformattedSource),
118 ]).create();
119 101
120 schedule(() { 102 schedule(() {
121 // Create a link to the target directory in the code directory. 103 // Create a link to the target directory in the code directory.
122 new Link(p.join(d.defaultRoot, 'code', 'linked_dir')) 104 new Link(p.join(d.defaultRoot, 'code', 'linked_dir'))
123 .createSync(p.join(d.defaultRoot, 'target_dir')); 105 .createSync(p.join(d.defaultRoot, 'target_dir'));
124 }, 'Create symlinks.'); 106 }, 'Create symlinks.');
125 107
126 schedule(() { 108 schedule(() {
127 var dir = new Directory(p.join(d.defaultRoot, 'code')); 109 var dir = new Directory(p.join(d.defaultRoot, 'code'));
128 processDirectory(overwriteOptions, dir); 110 processDirectory(overwriteOptions, dir);
129 }, 'Run formatter.'); 111 }, 'Run formatter.');
130 112
131 d.dir('code', [ 113 d.dir('code', [
132 d.file('a.dart', formattedSource), 114 d.file('a.dart', formattedSource),
133 d.dir('linked_dir', [ 115 d.dir('linked_dir', [d.file('b.dart', unformattedSource),])
134 d.file('b.dart', unformattedSource),
135 ])
136 ]).validate(); 116 ]).validate();
137 }); 117 });
138 118
139 test("follows directory symlinks when 'followLinks' is true", () { 119 test("follows directory symlinks when 'followLinks' is true", () {
140 d.dir('code', [ 120 d.dir('code', [d.file('a.dart', unformattedSource),]).create();
141 d.file('a.dart', unformattedSource),
142 ]).create();
143 121
144 d.dir('target_dir', [ 122 d.dir('target_dir', [d.file('b.dart', unformattedSource),]).create();
145 d.file('b.dart', unformattedSource),
146 ]).create();
147 123
148 schedule(() { 124 schedule(() {
149 // Create a link to the target directory in the code directory. 125 // Create a link to the target directory in the code directory.
150 new Link(p.join(d.defaultRoot, 'code', 'linked_dir')) 126 new Link(p.join(d.defaultRoot, 'code', 'linked_dir'))
151 .createSync(p.join(d.defaultRoot, 'target_dir')); 127 .createSync(p.join(d.defaultRoot, 'target_dir'));
152 }); 128 });
153 129
154 schedule(() { 130 schedule(() {
155 var dir = new Directory(p.join(d.defaultRoot, 'code')); 131 var dir = new Directory(p.join(d.defaultRoot, 'code'));
156 processDirectory(followOptions, dir); 132 processDirectory(followOptions, dir);
157 }, 'running formatter'); 133 }, 'running formatter');
158 134
159 d.dir('code', [ 135 d.dir('code', [
160 d.file('a.dart', formattedSource), 136 d.file('a.dart', formattedSource),
161 d.dir('linked_dir', [ 137 d.dir('linked_dir', [d.file('b.dart', formattedSource),])
162 d.file('b.dart', formattedSource),
163 ])
164 ]).validate(); 138 ]).validate();
165 }); 139 });
166 140
167 if (!Platform.isWindows) { 141 if (!Platform.isWindows) {
168 test("doesn't follow file symlinks by default", () { 142 test("doesn't follow file symlinks by default", () {
169 d.dir('code').create(); 143 d.dir('code').create();
170 d.file('target_file.dart', unformattedSource).create(); 144 d.file('target_file.dart', unformattedSource).create();
171 145
172 schedule(() { 146 schedule(() {
173 // Create a link to the target file in the code directory. 147 // Create a link to the target file in the code directory.
174 new Link(p.join(d.defaultRoot, 'code', 'linked_file.dart')) 148 new Link(p.join(d.defaultRoot, 'code', 'linked_file.dart'))
175 .createSync(p.join(d.defaultRoot, 'target_file.dart')); 149 .createSync(p.join(d.defaultRoot, 'target_file.dart'));
176 }, 'Create symlinks.'); 150 }, 'Create symlinks.');
177 151
178 schedule(() { 152 schedule(() {
179 var dir = new Directory(p.join(d.defaultRoot, 'code')); 153 var dir = new Directory(p.join(d.defaultRoot, 'code'));
180 processDirectory(overwriteOptions, dir); 154 processDirectory(overwriteOptions, dir);
181 }, 'Run formatter.'); 155 }, 'Run formatter.');
182 156
183 d.dir('code', [ 157 d.dir('code', [d.file('linked_file.dart', unformattedSource),])
184 d.file('linked_file.dart', unformattedSource), 158 .validate();
185 ]).validate();
186 }); 159 });
187 160
188 test("follows file symlinks when 'followLinks' is true", () { 161 test("follows file symlinks when 'followLinks' is true", () {
189 d.dir('code').create(); 162 d.dir('code').create();
190 d.file('target_file.dart', unformattedSource).create(); 163 d.file('target_file.dart', unformattedSource).create();
191 164
192 schedule(() { 165 schedule(() {
193 // Create a link to the target file in the code directory. 166 // Create a link to the target file in the code directory.
194 new Link(p.join(d.defaultRoot, 'code', 'linked_file.dart')) 167 new Link(p.join(d.defaultRoot, 'code', 'linked_file.dart'))
195 .createSync(p.join(d.defaultRoot, 'target_file.dart')); 168 .createSync(p.join(d.defaultRoot, 'target_file.dart'));
196 }); 169 });
197 170
198 schedule(() { 171 schedule(() {
199 var dir = new Directory(p.join(d.defaultRoot, 'code')); 172 var dir = new Directory(p.join(d.defaultRoot, 'code'));
200 processDirectory(followOptions, dir); 173 processDirectory(followOptions, dir);
201 }, 'running formatter'); 174 }, 'running formatter');
202 175
203 d.dir('code', [ 176 d.dir('code', [d.file('linked_file.dart', formattedSource),]).validate();
204 d.file('linked_file.dart', formattedSource),
205 ]).validate();
206 }); 177 });
207 } 178 }
208 } 179 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698