| Index: utils/tests/pub/validator/pubspec_field_test.dart
|
| diff --git a/utils/tests/pub/validator/pubspec_field_test.dart b/utils/tests/pub/validator/pubspec_field_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2ae8439e6fee1bb3e6ae115b84e6ae258672d327
|
| --- /dev/null
|
| +++ b/utils/tests/pub/validator/pubspec_field_test.dart
|
| @@ -0,0 +1,102 @@
|
| +// 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:scheduled_test/scheduled_test.dart';
|
| +
|
| +import '../../../pub/entrypoint.dart';
|
| +import '../../../pub/validator.dart';
|
| +import '../../../pub/validator/pubspec_field.dart';
|
| +import '../descriptor.dart' as d;
|
| +import '../test_pub.dart';
|
| +import 'utils.dart';
|
| +
|
| +Validator pubspecField(Entrypoint entrypoint) =>
|
| + new PubspecFieldValidator(entrypoint);
|
| +
|
| +main() {
|
| + initConfig();
|
| +
|
| + group('should consider a package valid if it', () {
|
| + setUp(d.validPackage.create);
|
| +
|
| + integration('looks normal', () => expectNoValidationError(pubspecField));
|
| +
|
| + integration('has "authors" instead of "author"', () {
|
| + var pkg = packageMap("test_pkg", "1.0.0");
|
| + pkg["authors"] = [pkg.remove("author")];
|
| + d.dir(appPath, [d.pubspec(pkg)]).create();
|
| + expectNoValidationError(pubspecField);
|
| + });
|
| + });
|
| +
|
| + group('should consider a package invalid if it', () {
|
| + setUp(d.validPackage.create);
|
| +
|
| + integration('is missing the "homepage" field', () {
|
| + var pkg = packageMap("test_pkg", "1.0.0");
|
| + pkg.remove("homepage");
|
| + d.dir(appPath, [d.pubspec(pkg)]).create();
|
| +
|
| + expectValidationError(pubspecField);
|
| + });
|
| +
|
| + integration('is missing the "description" field', () {
|
| + var pkg = packageMap("test_pkg", "1.0.0");
|
| + pkg.remove("description");
|
| + d.dir(appPath, [d.pubspec(pkg)]).create();
|
| +
|
| + expectValidationError(pubspecField);
|
| + });
|
| +
|
| + integration('is missing the "author" field', () {
|
| + var pkg = packageMap("test_pkg", "1.0.0");
|
| + pkg.remove("author");
|
| + d.dir(appPath, [d.pubspec(pkg)]).create();
|
| +
|
| + expectValidationError(pubspecField);
|
| + });
|
| +
|
| + integration('has a single author without an email', () {
|
| + var pkg = packageMap("test_pkg", "1.0.0");
|
| + pkg["author"] = "Nathan Weizenbaum";
|
| + d.dir(appPath, [d.pubspec(pkg)]).create();
|
| +
|
| + expectValidationWarning(pubspecField);
|
| + });
|
| +
|
| + integration('has one of several authors without an email', () {
|
| + var pkg = packageMap("test_pkg", "1.0.0");
|
| + pkg.remove("author");
|
| + pkg["authors"] = [
|
| + "Bob Nystrom <rnystrom@google.com>",
|
| + "Nathan Weizenbaum",
|
| + "John Messerly <jmesserly@google.com>"
|
| + ];
|
| + d.dir(appPath, [d.pubspec(pkg)]).create();
|
| +
|
| + expectValidationWarning(pubspecField);
|
| + });
|
| +
|
| + integration('has a single author without a name', () {
|
| + var pkg = packageMap("test_pkg", "1.0.0");
|
| + pkg["author"] = "<nweiz@google.com>";
|
| + d.dir(appPath, [d.pubspec(pkg)]).create();
|
| +
|
| + expectValidationWarning(pubspecField);
|
| + });
|
| +
|
| + integration('has one of several authors without a name', () {
|
| + var pkg = packageMap("test_pkg", "1.0.0");
|
| + pkg.remove("author");
|
| + pkg["authors"] = [
|
| + "Bob Nystrom <rnystrom@google.com>",
|
| + "<nweiz@google.com>",
|
| + "John Messerly <jmesserly@google.com>"
|
| + ];
|
| + d.dir(appPath, [d.pubspec(pkg)]).create();
|
| +
|
| + expectValidationWarning(pubspecField);
|
| + });
|
| + });
|
| +}
|
|
|