// Copyright (c) 2014, 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 void open(String method, String url, {bool async, String user, String password})
/// Specify the desired url, and method to use in making the request.
/// By default the request is done asyncronously, with no user or password authentication information. If async is false, the request will be send synchronously.
/// Calling open again on a currently active request is equivalent to calling abort.
/// @description Checks the state of opened request.

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

main() {
  var request = new HttpRequest();
  request.open('GET', "test.dart");
  Expect.equals(HttpRequest.OPENED, request.readyState, "after open");
}
