| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | |
| 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. | |
| 4 | |
| 5 library options_test; | |
| 6 | |
| 7 import 'package:analyzer/options.dart'; | |
| 8 import 'package:args/args.dart'; | |
| 9 import 'package:unittest/unittest.dart'; | |
| 10 | |
| 11 import 'reflective_tests.dart'; | |
| 12 | |
| 13 main() { | |
| 14 group('AnalyzerOptions.parse()', () { | |
| 15 test('defaults', () { | |
| 16 CommandLineOptions options = | |
| 17 CommandLineOptions.parse(['--dart-sdk', '.', 'foo.dart']); | |
| 18 expect(options, isNotNull); | |
| 19 expect(options.dartSdkPath, isNotNull); | |
| 20 expect(options.disableHints, isFalse); | |
| 21 expect(options.displayVersion, isFalse); | |
| 22 expect(options.enableStrictCallChecks, isFalse); | |
| 23 expect(options.enableTypeChecks, isFalse); | |
| 24 expect(options.ignoreUnrecognizedFlags, isFalse); | |
| 25 expect(options.log, isFalse); | |
| 26 expect(options.machineFormat, isFalse); | |
| 27 expect(options.packageRootPath, isNull); | |
| 28 expect(options.perf, isFalse); | |
| 29 expect(options.shouldBatch, isFalse); | |
| 30 expect(options.showPackageWarnings, isFalse); | |
| 31 expect(options.showSdkWarnings, isFalse); | |
| 32 expect(options.sourceFiles, equals(['foo.dart'])); | |
| 33 expect(options.warmPerf, isFalse); | |
| 34 expect(options.warningsAreFatal, isFalse); | |
| 35 expect(options.customUrlMappings, isNotNull); | |
| 36 expect(options.customUrlMappings.isEmpty, isTrue); | |
| 37 }); | |
| 38 | |
| 39 test('batch', () { | |
| 40 CommandLineOptions options = | |
| 41 CommandLineOptions.parse(['--dart-sdk', '.', '--batch']); | |
| 42 expect(options.shouldBatch, isTrue); | |
| 43 }); | |
| 44 | |
| 45 test('defined variables', () { | |
| 46 CommandLineOptions options = CommandLineOptions | |
| 47 .parse(['--dart-sdk', '.', '-Dfoo=bar', 'foo.dart']); | |
| 48 expect(options.definedVariables['foo'], equals('bar')); | |
| 49 expect(options.definedVariables['bar'], isNull); | |
| 50 }); | |
| 51 | |
| 52 test('enable strict call checks', () { | |
| 53 CommandLineOptions options = CommandLineOptions.parse( | |
| 54 ['--dart-sdk', '.', '--enable-strict-call-checks', 'foo.dart']); | |
| 55 expect(options.enableStrictCallChecks, isTrue); | |
| 56 }); | |
| 57 | |
| 58 test('enable type checks', () { | |
| 59 CommandLineOptions options = CommandLineOptions | |
| 60 .parse(['--dart-sdk', '.', '--enable_type_checks', 'foo.dart']); | |
| 61 expect(options.enableTypeChecks, isTrue); | |
| 62 }); | |
| 63 | |
| 64 test('log', () { | |
| 65 CommandLineOptions options = | |
| 66 CommandLineOptions.parse(['--dart-sdk', '.', '--log', 'foo.dart']); | |
| 67 expect(options.log, isTrue); | |
| 68 }); | |
| 69 | |
| 70 test('machine format', () { | |
| 71 CommandLineOptions options = CommandLineOptions | |
| 72 .parse(['--dart-sdk', '.', '--format=machine', 'foo.dart']); | |
| 73 expect(options.machineFormat, isTrue); | |
| 74 }); | |
| 75 | |
| 76 test('no-hints', () { | |
| 77 CommandLineOptions options = CommandLineOptions | |
| 78 .parse(['--dart-sdk', '.', '--no-hints', 'foo.dart']); | |
| 79 expect(options.disableHints, isTrue); | |
| 80 }); | |
| 81 | |
| 82 test('package root', () { | |
| 83 CommandLineOptions options = CommandLineOptions | |
| 84 .parse(['--dart-sdk', '.', '-p', 'bar', 'foo.dart']); | |
| 85 expect(options.packageRootPath, equals('bar')); | |
| 86 }); | |
| 87 | |
| 88 test('package warnings', () { | |
| 89 CommandLineOptions options = CommandLineOptions | |
| 90 .parse(['--dart-sdk', '.', '--package-warnings', 'foo.dart']); | |
| 91 expect(options.showPackageWarnings, isTrue); | |
| 92 }); | |
| 93 | |
| 94 test('perf', () { | |
| 95 CommandLineOptions options = | |
| 96 CommandLineOptions.parse(['--dart-sdk', '.', '--perf', 'foo.dart']); | |
| 97 expect(options.perf, isTrue); | |
| 98 }); | |
| 99 | |
| 100 test('sdk warnings', () { | |
| 101 CommandLineOptions options = CommandLineOptions | |
| 102 .parse(['--dart-sdk', '.', '--warnings', 'foo.dart']); | |
| 103 expect(options.showSdkWarnings, isTrue); | |
| 104 }); | |
| 105 | |
| 106 test('sourceFiles', () { | |
| 107 CommandLineOptions options = CommandLineOptions.parse( | |
| 108 ['--dart-sdk', '.', '--log', 'foo.dart', 'foo2.dart', 'foo3.dart']); | |
| 109 expect( | |
| 110 options.sourceFiles, equals(['foo.dart', 'foo2.dart', 'foo3.dart'])); | |
| 111 }); | |
| 112 | |
| 113 test('warningsAreFatal', () { | |
| 114 CommandLineOptions options = CommandLineOptions | |
| 115 .parse(['--dart-sdk', '.', '--fatal-warnings', 'foo.dart']); | |
| 116 expect(options.warningsAreFatal, isTrue); | |
| 117 }); | |
| 118 | |
| 119 test('customUrlMappings', () { | |
| 120 CommandLineOptions options = CommandLineOptions.parse([ | |
| 121 '--dart-sdk', | |
| 122 '.', | |
| 123 '--url-mapping', | |
| 124 'dart:dummy,/path/to/dummy.dart', | |
| 125 'foo.dart' | |
| 126 ]); | |
| 127 expect(options.customUrlMappings, isNotNull); | |
| 128 expect(options.customUrlMappings.isEmpty, isFalse); | |
| 129 expect(options.customUrlMappings['dart:dummy'], | |
| 130 equals('/path/to/dummy.dart')); | |
| 131 }); | |
| 132 | |
| 133 // test('notice unrecognized flags', () { | |
| 134 // CommandLineOptions options = CommandLineOptions.parse(['--bar', '--baz', | |
| 135 // 'foo.dart']); | |
| 136 // expect(options, isNull); | |
| 137 // }); | |
| 138 | |
| 139 test('ignore unrecognized flags', () { | |
| 140 CommandLineOptions options = CommandLineOptions.parse([ | |
| 141 '--ignore-unrecognized-flags', | |
| 142 '--bar', | |
| 143 '--baz', | |
| 144 '--dart-sdk', | |
| 145 '.', | |
| 146 'foo.dart' | |
| 147 ]); | |
| 148 expect(options, isNotNull); | |
| 149 expect(options.sourceFiles, equals(['foo.dart'])); | |
| 150 }); | |
| 151 }); | |
| 152 | |
| 153 runReflectiveTests(CommandLineParserTest); | |
| 154 } | |
| 155 | |
| 156 @reflectiveTest | |
| 157 class CommandLineParserTest { | |
| 158 test_ignoreUnrecognizedOptions() { | |
| 159 CommandLineParser parser = | |
| 160 new CommandLineParser(alwaysIgnoreUnrecognized: true); | |
| 161 parser.addOption('optionA'); | |
| 162 parser.addFlag('flagA'); | |
| 163 ArgResults argResults = | |
| 164 parser.parse(['--optionA=1', '--optionB=2', '--flagA'], {}); | |
| 165 expect(argResults['optionA'], '1'); | |
| 166 expect(argResults['flagA'], isTrue); | |
| 167 } | |
| 168 } | |
| OLD | NEW |