summaryrefslogtreecommitdiffstats
path: root/netwerk/test/unit/test_bug660066.js
blob: 2e7c0601352bf2f7f8ddb4f374f3916612ec13ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
"use strict";

const SIMPLEURI_SPEC = "data:text/plain,hello world";
const BLOBURI_SPEC = "blob:123456";

function do_info(text, stack) {
  if (!stack) {
    stack = Components.stack.caller;
  }

  dump(
    "\n" +
      "TEST-INFO | " +
      stack.filename +
      " | [" +
      stack.name +
      " : " +
      stack.lineNumber +
      "] " +
      text +
      "\n"
  );
}

function do_check_uri_neq(uri1, uri2) {
  do_info("Checking equality in forward direction...");
  Assert.ok(!uri1.equals(uri2));
  Assert.ok(!uri1.equalsExceptRef(uri2));

  do_info("Checking equality in reverse direction...");
  Assert.ok(!uri2.equals(uri1));
  Assert.ok(!uri2.equalsExceptRef(uri1));
}

function run_test() {
  var simpleURI = NetUtil.newURI(SIMPLEURI_SPEC);
  var fileDataURI = NetUtil.newURI(BLOBURI_SPEC);

  do_info("Checking that " + SIMPLEURI_SPEC + " != " + BLOBURI_SPEC);
  do_check_uri_neq(simpleURI, fileDataURI);

  do_info("Changing the nsSimpleURI spec to match the nsFileDataURI");
  simpleURI = simpleURI.mutate().setSpec(BLOBURI_SPEC).finalize();

  do_info("Verifying that .spec matches");
  Assert.equal(simpleURI.spec, fileDataURI.spec);

  do_info(
    "Checking that nsSimpleURI != nsFileDataURI despite their .spec matching"
  );
  do_check_uri_neq(simpleURI, fileDataURI);
}