// Copyright (c) 2017, 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 Uri resolve(String reference)
/// Resolve reference as an URI relative to this.
/// @description Checks that this method works correctly if schema and authority
/// are not provided but path is provided
/// (see https://tools.ietf.org/html/rfc3986#section-5.2.2)
/// @author sgrekhov@unipro.ru

import "../../../Utils/expect.dart";

main() {
  var x = Uri.parse('http://login:pass@host:8080/a/b/c?x=1#frag');
  Expect.equals(Uri.parse('http://login:pass@host:8080/a/b/z'), x.resolve('z'));
  Expect.equals(Uri.parse('http://login:pass@host:8080/a/b/z#f'),
      x.resolve('z#f'));
  Expect.equals(Uri.parse('http://login:pass@host:8080/a/b/z?q=0#f'),
      x.resolve('z?q=0#f'));
  Expect.equals(Uri.parse('http://login:pass@host:8080/a/x?q=0#f'),
      x.resolve('z/../../x?q=0#f'));
  Expect.equals(Uri.parse('http://login:pass@host:8080/z?q=0#f'),
      x.resolve('/z?q=0#f'));
  Expect.equals(Uri.parse('http://login:pass@host:8080/x?q=0#f'),
      x.resolve('/z/../../x?q=0#f'));
  Expect.equals(Uri.parse('http://login:pass@host:8080/z/x?q=0#f'),
      x.resolve('/z/././x?q=0#f'));

  x = Uri.parse('a/b/c');
  Expect.equals(Uri.parse('a/z#f'), x.resolve('../z#f'));
}
