// 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 is specified
 * (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/a/b?x=1#frag');
  Expect.equals(Uri.parse('https://'), x.resolve('https://'));
  Expect.equals(Uri.parse('https://l:p@h/p'), x.resolve('https://l:p@h/p'));
  Expect.equals(Uri.parse('https://l:p@h/p?q'), x.resolve('https://l:p@h/p?q'));
  Expect.equals(Uri.parse('https://l:p@h/p?q'), x.resolve('HTTPS://l:p@H/p?q'));
  Expect.equals(Uri.parse('https://l:p@h/p?q#f'),
      x.resolve('HTTPS://l:p@H/p?q#f'));
}
