// 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 final String origin
/// Returns the origin of the URI in the form scheme://host:port for
/// the schemes http and https.
/// It is an error if the scheme is not "http" or "https".
/// @description Checks expected origin values
/// @author ilya

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

main() {
  var x = 'http://b:123';
  Expect.equals(x, Uri.parse(x).origin);
  
  x = 'https://[2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d]:1111';
  Expect.equals(x, Uri.parse(x).origin);
  
  Expect.throws(() => Uri.parse('asdf://host').origin); // not http or https
}
