Unverified Commit eae05c7d authored by Ian Hickson's avatar Ian Hickson Committed by GitHub

Test framework for analyze.dart (#44772)

* Prepare analyze.dart for testing.

* Reorder the file for easier understanding

* Add a test for analyze.dart

* Fix review comments
parent afe4830a
This diff is collapsed.
// THIS FILE HAS NO LICENSE.
// IT IS PART OF A TEST FOR MISSING LICENSES.
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:io';
import 'package:path/path.dart' as path;
import '../analyze.dart';
import 'common.dart';
typedef AsyncVoidCallback = Future<void> Function();
Future<String> capture(AsyncVoidCallback callback, { int exitCode = 0 }) async {
final StringBuffer buffer = StringBuffer();
final PrintCallback oldPrint = print;
try {
print = (Object line) {
buffer.writeln(line);
};
try {
await callback();
expect(exitCode, 0);
} on ExitException catch (error) {
expect(error.exitCode, exitCode);
}
} finally {
print = oldPrint;
}
return buffer.toString();
}
void main() {
test('analyze.dart - verifyNoMissingLicense', () async {
final String result = await capture(() => verifyNoMissingLicense(path.join('test', 'analyze-test-input')), exitCode: 1);
expect(result, '''
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
License headers cannot be found at the beginning of the following file.
test/analyze-test-input/packages/foo/foo.dart
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
'''.replaceAll('/', Platform.isWindows ? '\\' : '/'));
});
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment