// Copyright (c) 2012, 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:test/test.dart';

import 'package:pub/src/exit_codes.dart' as exit_codes;

import '../descriptor.dart' as d;
import '../test_pub.dart';

void main() {
  forBothPubGetAndUpgrade((command) {
    test('fails gracefully if the url does not resolve', () async {
      await d.dir(appPath, [
        d.appPubspec({
          'foo': {
            'hosted': {'name': 'foo', 'url': 'https://invalid-url.foo'}
          }
        })
      ]).create();

      await pubCommand(command,
          error: 'Could not resolve URL "https://invalid-url.foo".',
          exitCode: exit_codes.UNAVAILABLE,
          environment: {
            'PUB_MAX_HTTP_RETRIES': '2',
          });
    });
  });
}
