Chromium Code Reviews| Index: pkg/analyzer_experimental/test/services/formatter_test.dart |
| =================================================================== |
| --- pkg/analyzer_experimental/test/services/formatter_test.dart (revision 0) |
| +++ pkg/analyzer_experimental/test/services/formatter_test.dart (revision 0) |
| @@ -0,0 +1,62 @@ |
| +// Copyright (c) 2013, 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. |
| + |
| +import 'package:analyzer_experimental/src/generated/ast.dart'; |
| +import 'package:analyzer_experimental/src/services/formatter.dart'; |
| +import 'package:analyzer_experimental/src/services/formatter_impl.dart'; |
| +import 'package:unittest/unittest.dart'; |
| + |
| +main() { |
| + |
| + /// Edit recorder tests |
| + group('edit recorder', () { |
|
messick
2013/06/07 13:51:36
I'd add a few tests that are expected to fail.
pquitslund
2013/06/07 19:45:01
Will do. Thanks!
|
| + |
| + test('countWhitespace', (){ |
| + expect(newRecorder(' ').countWhitespace(), equals(3)); |
| + expect(newRecorder('').countWhitespace(), equals(0)); |
| + expect(newRecorder(' foo').countWhitespace(), equals(2)); |
| + }); |
| + |
| + test('indent', (){ |
| + var recorder = newRecorder(''); |
| + expect(recorder.indentationLevel, equals(0)); |
| + expect(recorder.options.indentPerLevel, equals(2)); |
| + recorder.indent(); |
| + expect(recorder.indentationLevel, equals(2)); |
| + expect(recorder.numberOfIndentations, equals(1)); |
| + }); |
| + |
| + test('isNewlineAt', (){ |
| + expect(newRecorder('012\n').isNewlineAt(3), isTrue); |
| + expect(newRecorder('012\n3456').isNewlineAt(3), isTrue); |
| + expect(newRecorder('\n').isNewlineAt(0), isTrue); |
| + }); |
| + |
| + }); |
| + |
| + |
| + /// Formatter tests |
| + group('formatter', () { |
| + |
| + test('failedParse', () { |
| + var formatter = new CodeFormatter(); |
| + expect(() => formatter.format(CodeKind.COMPILATION_UNIT, "~"), |
| + throwsA(new isInstanceOf<FormatterException>('FE'))); |
| + }); |
| + |
| +// test('initialIndent', () { |
| +// var formatter = new CodeFormatter(new Options(initialIndentationLevel:2)); |
| +// var formattedSource = formatter.format(CodeKind.STATEMENT, 'var x;'); |
| +// expect(formattedSource, startsWith(' ')); |
| +// }); |
| + |
| + }); |
| + |
| +} |
| + |
| +EditRecorder newRecorder(String source) { |
| + var recorder = new EditRecorder(new FormatterOptions()); |
| + recorder.source = source; |
| + return recorder; |
| +} |