netwerk/test/unit/test_bug543805.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/netwerk/test/unit/test_bug543805.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,81 @@
     1.4 +const URL = "ftp://localhost/bug543805/";
     1.5 +
     1.6 +var year = new Date().getFullYear().toString();
     1.7 +
     1.8 +const tests = [
     1.9 +  // AIX ls format
    1.10 +  ["-rw-r--r--   1 0                11 Jan  1 20:19  nodup.file\r\n" +
    1.11 +   "-rw-r--r--   1 0                22 Jan  1 20:19  test.blankfile\r\n" +
    1.12 +   "-rw-r--r--   1 0                33 Apr  1 2008   test2.blankfile\r\n" +
    1.13 +   "-rw-r--r--   1 0                44 Jan  1 20:19 nodup.file\r\n" +
    1.14 +   "-rw-r--r--   1 0                55 Jan  1 20:19 test.file\r\n" +
    1.15 +   "-rw-r--r--   1 0                66 Apr  1 2008  test2.file\r\n",
    1.16 +
    1.17 +   "300: " + URL + "\n" +
    1.18 +   "200: filename content-length last-modified file-type\n" +
    1.19 +   "201: \"%20nodup.file\" 11 Sun%2C%2001%20Jan%20" + year + "%2020%3A19%3A00 FILE \n" +
    1.20 +   "201: \"%20test.blankfile\" 22 Sun%2C%2001%20Jan%20" + year + "%2020%3A19%3A00 FILE \n" +
    1.21 +   "201: \"%20test2.blankfile\" 33 Sun%2C%2001%20Apr%202008%2000%3A00%3A00 FILE \n" +
    1.22 +   "201: \"nodup.file\" 44 Sun%2C%2001%20Jan%20" + year + "%2020%3A19%3A00 FILE \n" +
    1.23 +   "201: \"test.file\" 55 Sun%2C%2001%20Jan%20" + year + "%2020%3A19%3A00 FILE \n" +
    1.24 +   "201: \"test2.file\" 66 Sun%2C%2001%20Apr%202008%2000%3A00%3A00 FILE \n"],
    1.25 +
    1.26 +  // standard ls format
    1.27 +  [
    1.28 +   "-rw-r--r--    1 500      500            11 Jan  1 20:19  nodup.file\r\n" +
    1.29 +   "-rw-r--r--    1 500      500            22 Jan  1 20:19  test.blankfile\r\n" +
    1.30 +   "-rw-r--r--    1 500      500            33 Apr  1  2008  test2.blankfile\r\n" +
    1.31 +   "-rw-r--r--    1 500      500            44 Jan  1 20:19 nodup.file\r\n" +
    1.32 +   "-rw-r--r--    1 500      500            55 Jan  1 20:19 test.file\r\n" +
    1.33 +   "-rw-r--r--    1 500      500            66 Apr  1  2008 test2.file\r\n",
    1.34 +
    1.35 +   "300: " + URL + "\n" +
    1.36 +   "200: filename content-length last-modified file-type\n" +
    1.37 +   "201: \"%20nodup.file\" 11 Sun%2C%2001%20Jan%20" + year + "%2020%3A19%3A00 FILE \n" +
    1.38 +   "201: \"%20test.blankfile\" 22 Sun%2C%2001%20Jan%20" + year + "%2020%3A19%3A00 FILE \n" +
    1.39 +   "201: \"%20test2.blankfile\" 33 Sun%2C%2001%20Apr%202008%2000%3A00%3A00 FILE \n" +
    1.40 +   "201: \"nodup.file\" 44 Sun%2C%2001%20Jan%20" + year + "%2020%3A19%3A00 FILE \n" +
    1.41 +   "201: \"test.file\" 55 Sun%2C%2001%20Jan%20" + year + "%2020%3A19%3A00 FILE \n" +
    1.42 +   "201: \"test2.file\" 66 Sun%2C%2001%20Apr%202008%2000%3A00%3A00 FILE \n"]
    1.43 +]
    1.44 +
    1.45 +function checkData(request, data, ctx) {
    1.46 +  do_check_eq(tests[0][1], data);
    1.47 +  tests.shift();
    1.48 +  next_test();
    1.49 +}
    1.50 +
    1.51 +function storeData(status, entry) {
    1.52 +  do_check_eq(status, Components.results.NS_OK);
    1.53 +  entry.setMetaDataElement("servertype", "0");
    1.54 +  var os = entry.openOutputStream(0);
    1.55 +
    1.56 +  var written = os.write(tests[0][0], tests[0][0].length);
    1.57 +  if (written != tests[0][0].length) {
    1.58 +    do_throw("os.write has not written all data!\n" +
    1.59 +             "  Expected: " + written  + "\n" +
    1.60 +             "  Actual: " + tests[0][0].length + "\n");
    1.61 +  }
    1.62 +  os.close();
    1.63 +  entry.close();
    1.64 +
    1.65 +  var ios = Components.classes["@mozilla.org/network/io-service;1"].
    1.66 +            getService(Components.interfaces.nsIIOService);
    1.67 +  var channel = ios.newChannel(URL, "", null);
    1.68 +  channel.asyncOpen(new ChannelListener(checkData, null, CL_ALLOW_UNKNOWN_CL), null);
    1.69 +}
    1.70 +
    1.71 +function next_test() {
    1.72 +  if (tests.length == 0)
    1.73 +    do_test_finished();
    1.74 +  else {
    1.75 +    asyncOpenCacheEntry(URL,
    1.76 +                        "disk", Ci.nsICacheStorage.OPEN_NORMALLY, null,
    1.77 +                        storeData);
    1.78 +  }
    1.79 +}
    1.80 +
    1.81 +function run_test() {
    1.82 +  do_execute_soon(next_test);
    1.83 +  do_test_pending();
    1.84 +}

mercurial