function run_test() {
  const ios = Cc["@mozilla.org/network/io-service;1"].getService(
    Ci.nsIIOService
  );

  var uri = ios.newURI("http://foo.com/file.txt");
  uri = uri
    .mutate()
    .setPort(90)
    .finalize();
  Assert.equal(uri.hostPort, "foo.com:90");

  uri = ios.newURI("http://foo.com:10/file.txt");
  uri = uri
    .mutate()
    .setPort(500)
    .finalize();
  Assert.equal(uri.hostPort, "foo.com:500");

  uri = ios.newURI("http://foo.com:5000/file.txt");
  uri = uri
    .mutate()
    .setPort(20)
    .finalize();
  Assert.equal(uri.hostPort, "foo.com:20");

  uri = ios.newURI("http://foo.com:5000/file.txt");
  uri = uri
    .mutate()
    .setPort(-1)
    .finalize();
  Assert.equal(uri.hostPort, "foo.com");

  uri = ios.newURI("http://foo.com:5000/file.txt");
  uri = uri
    .mutate()
    .setPort(80)
    .finalize();
  Assert.equal(uri.hostPort, "foo.com");
}
