// Copyright (c) 2011, 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.

/**
 * @assertion new Uri({scheme, String userInfo: "", String host: "", port: 0,
 * String path, Iterable<String> pathSegments, String query, Map<String,
 * String> queryParameters, fragment: ""})
 * Creates a new URI from its components.
 * The host part of the authority component is set through host.
 * The host can either be a hostname, a IPv4 address or an IPv6 address,
 * contained in '[' and ']'. If the host contains a ':' character, the
 * '[' and ']'  are added if not already provided.
 * @description Checks listed assertions
 * @author ilya
 */
import "../../../Utils/expect.dart";

main() {
  var x = new Uri(host: 'a-b.c.d.e');
  Expect.equals('a-b.c.d.e', x.host);
  
  x = new Uri(host: '127.0.0.1');
  Expect.equals('127.0.0.1', x.host);

  var host = '2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d';
  x = new Uri(host: host);

  // host getter will strip off [ ], so need to check otherwise
  Expect.isTrue(x.toString().contains('[$host]'));

  x = new Uri(host: '[$host]');
  Expect.isTrue(x.toString().contains('[$host]'));
}
