Index: packages/intl/test/message_extraction/failed_extraction_test.dart |
diff --git a/packages/intl/test/message_extraction/failed_extraction_test.dart b/packages/intl/test/message_extraction/failed_extraction_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..51b2c4bcb4489501b2e26c29764b5195c348efc5 |
--- /dev/null |
+++ b/packages/intl/test/message_extraction/failed_extraction_test.dart |
@@ -0,0 +1,46 @@ |
+// Copyright (c) 2014, 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. |
+library failed_extraction_test; |
+ |
+import "message_extraction_test.dart"; |
+import "dart:io"; |
+import "package:unittest/unittest.dart"; |
+ |
+main() { |
+ test("Expect warnings but successful extraction", () { |
+ runTestWithWarnings(warningsAreErrors: false, expectedExitCode: 0); |
+ }); |
+} |
+ |
+const defaultFiles = const [ |
+ "sample_with_messages.dart", |
+ "part_of_sample_with_messages.dart" |
+]; |
+ |
+void runTestWithWarnings({bool warningsAreErrors, int expectedExitCode, |
+ bool embeddedPlurals: true, List<String> sourceFiles: defaultFiles}) { |
+ void verify(ProcessResult result) { |
+ try { |
+ expect(result.exitCode, expectedExitCode); |
+ } finally { |
+ deleteGeneratedFiles(); |
+ } |
+ } |
+ |
+ copyFilesToTempDirectory(); |
+ var program = asTestDirPath("../../bin/extract_to_arb.dart"); |
+ var args = ["--output-dir=$tempDir"]; |
+ if (warningsAreErrors) { |
+ args.add('--warnings-are-errors'); |
+ } |
+ if (!embeddedPlurals) { |
+ args.add('--no-embedded-plurals'); |
+ } |
+ var files = sourceFiles.map(asTempDirPath).toList(); |
+ var allArgs = [program] |
+ ..addAll(args) |
+ ..addAll(files); |
+ var callback = expectAsync(verify); |
+ run(null, allArgs).then(callback); |
+} |