| // Copyright (c) 2012, 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. | |
| @TestOn('vm') | |
| library; | |
| import 'dart:io'; | |
| import 'package:csslib/parser.dart'; | |
| import 'package:path/path.dart' as path; | |
| import 'package:test/test.dart'; | |
| const testOptions = PreprocessorOptions( | |
| useColors: false, | |
| checked: false, | |
| warningsAsErrors: true, | |
| inputFile: 'memory', | |
| ); | |
| void testCSSFile(File cssFile) { | |
| final errors = <Message>[]; | |
| final css = cssFile.readAsStringSync(); | |
| final stylesheet = parse(css, errors: errors, options: testOptions); | |
| expect(stylesheet, isNotNull); | |
| expect(errors, isEmpty, reason: errors.toString()); | |
| } | |
| void main() async { | |
| // Iterate over all sub-folders of third_party, | |
| // and then all css files in those. | |
| final thirdParty = path.join(Directory.current.path, 'third_party'); | |
| for (var entity in Directory(thirdParty).listSync()) { | |
| if (await FileSystemEntity.isDirectory(entity.path)) { | |
| for (var element in Directory(entity.path).listSync()) { | |
| if (element is File && element.uri.pathSegments.last.endsWith('.css')) { | |
| test(element.uri.pathSegments.last, () => testCSSFile(element)); | |
| } | |
| } | |
| } | |
| } | |
| } |