| Index: sdk/lib/_internal/pub_generated/test/preprocess_test.dart
|
| diff --git a/sdk/lib/_internal/pub_generated/test/preprocess_test.dart b/sdk/lib/_internal/pub_generated/test/preprocess_test.dart
|
| index 0f8bc6586fdfcfdb311a5b06219a83400afac738..0cd4eadd0d041d4aab5b5890f03590e927fabc86 100644
|
| --- a/sdk/lib/_internal/pub_generated/test/preprocess_test.dart
|
| +++ b/sdk/lib/_internal/pub_generated/test/preprocess_test.dart
|
| @@ -1,10 +1,18 @@
|
| +// 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 pub.test.preprocess_test;
|
| +
|
| import 'package:pub_semver/pub_semver.dart';
|
| import 'package:unittest/unittest.dart';
|
| +
|
| import '../lib/src/preprocess.dart';
|
| import 'test_pub.dart';
|
| +
|
| main() {
|
| initConfig();
|
| +
|
| test("does nothing on a file without preprocessor directives", () {
|
| var text = '''
|
| some text
|
| @@ -12,11 +20,14 @@ some text
|
| // #
|
| //# not beginning of line
|
| ''';
|
| +
|
| expect(_preprocess(text), equals(text));
|
| });
|
| +
|
| test("allows bare insert directive", () {
|
| expect(_preprocess('//> foo'), equals('foo'));
|
| });
|
| +
|
| test("allows empty insert directive", () {
|
| expect(_preprocess('''
|
| //> foo
|
| @@ -24,6 +35,7 @@ some text
|
| //> bar
|
| '''), equals('foo\n\nbar\n'));
|
| });
|
| +
|
| group("if", () {
|
| group("with a version range", () {
|
| test("removes sections with non-matching versions", () {
|
| @@ -38,6 +50,7 @@ before
|
| after
|
| '''));
|
| });
|
| +
|
| test("doesn't insert section with non-matching versions", () {
|
| expect(_preprocess('''
|
| before
|
| @@ -50,6 +63,7 @@ before
|
| after
|
| '''));
|
| });
|
| +
|
| test("doesn't remove sections with matching versions", () {
|
| expect(_preprocess('''
|
| before
|
| @@ -63,6 +77,7 @@ inside
|
| after
|
| '''));
|
| });
|
| +
|
| test("inserts sections with matching versions", () {
|
| expect(_preprocess('''
|
| before
|
| @@ -76,6 +91,7 @@ inside
|
| after
|
| '''));
|
| });
|
| +
|
| test("allows multi-element version ranges", () {
|
| expect(_preprocess('''
|
| before
|
| @@ -93,6 +109,7 @@ after
|
| '''));
|
| });
|
| });
|
| +
|
| group("with a package name", () {
|
| test("removes sections for a nonexistent package", () {
|
| expect(_preprocess('''
|
| @@ -106,6 +123,7 @@ before
|
| after
|
| '''));
|
| });
|
| +
|
| test("doesn't insert sections for a nonexistent package", () {
|
| expect(_preprocess('''
|
| before
|
| @@ -118,6 +136,7 @@ before
|
| after
|
| '''));
|
| });
|
| +
|
| test("doesn't remove sections with an existent package", () {
|
| expect(_preprocess('''
|
| before
|
| @@ -131,6 +150,7 @@ inside
|
| after
|
| '''));
|
| });
|
| +
|
| test("inserts sections with an existent package", () {
|
| expect(_preprocess('''
|
| before
|
| @@ -146,6 +166,7 @@ after
|
| });
|
| });
|
| });
|
| +
|
| group("else", () {
|
| test("removes non-matching sections", () {
|
| expect(_preprocess('''
|
| @@ -162,6 +183,7 @@ inside 1
|
| after
|
| '''));
|
| });
|
| +
|
| test("doesn't insert non-matching sections", () {
|
| expect(_preprocess('''
|
| before
|
| @@ -177,6 +199,7 @@ inside 1
|
| after
|
| '''));
|
| });
|
| +
|
| test("doesn't remove matching sections", () {
|
| expect(_preprocess('''
|
| before
|
| @@ -192,6 +215,7 @@ inside 2
|
| after
|
| '''));
|
| });
|
| +
|
| test("inserts matching sections", () {
|
| expect(_preprocess('''
|
| before
|
| @@ -208,35 +232,43 @@ after
|
| '''));
|
| });
|
| });
|
| +
|
| group("errors", () {
|
| test("disallows unknown statements", () {
|
| expect(() => _preprocess('//# foo bar\n//# end'), throwsFormatException);
|
| });
|
| +
|
| test("disallows insert directive without space", () {
|
| expect(() => _preprocess('//>foo'), throwsFormatException);
|
| });
|
| +
|
| group("if", () {
|
| test("disallows if with no arguments", () {
|
| expect(() => _preprocess('//# if\n//# end'), throwsFormatException);
|
| });
|
| +
|
| test("disallows if with no package", () {
|
| expect(
|
| () => _preprocess('//# if <=1.0.0\n//# end'),
|
| throwsFormatException);
|
| });
|
| +
|
| test("disallows invalid version constraint", () {
|
| expect(
|
| () => _preprocess('//# if barback >=1.0\n//# end'),
|
| throwsFormatException);
|
| });
|
| +
|
| test("disallows dangling end", () {
|
| expect(() => _preprocess('//# end'), throwsFormatException);
|
| });
|
| +
|
| test("disallows if without end", () {
|
| expect(
|
| () => _preprocess('//# if barback >=1.0.0'),
|
| throwsFormatException);
|
| });
|
| +
|
| test("disallows nested if", () {
|
| expect(() => _preprocess('''
|
| //# if barback >=1.0.0
|
| @@ -246,15 +278,18 @@ after
|
| '''), throwsFormatException);
|
| });
|
| });
|
| +
|
| group("else", () {
|
| test("disallows else without if", () {
|
| expect(() => _preprocess('//# else\n//# end'), throwsFormatException);
|
| });
|
| +
|
| test("disallows else without end", () {
|
| expect(
|
| () => _preprocess('//# if barback >=1.0.0\n//# else'),
|
| throwsFormatException);
|
| });
|
| +
|
| test("disallows else with an argument", () {
|
| expect(() => _preprocess('''
|
| //# if barback >=1.0.0
|
| @@ -265,6 +300,7 @@ after
|
| });
|
| });
|
| }
|
| +
|
| String _preprocess(String input) => preprocess(input, {
|
| 'barback': new Version.parse("1.2.3")
|
| }, 'source/url');
|
|
|