1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/netwerk/test/unit/test_bug515583.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,63 @@ 1.4 +const URL = "ftp://localhost/bug515583/"; 1.5 + 1.6 +const tests = [ 1.7 + ["[RWCEM1 4 1-MAR-1993 18:09:01.12\r\n" + 1.8 + "[RWCEM1] 4 2-MAR-1993 18:09:01.12\r\n" + 1.9 + "[RWCEM1]A 4 3-MAR-1993 18:09:01.12\r\n" + 1.10 + "[RWCEM1]B; 4 4-MAR-1993 18:09:01.12\r\n" + 1.11 + "[RWCEM1];1 4 5-MAR-1993 18:09:01.12\r\n" + 1.12 + "[RWCEM1]; 4 6-MAR-1993 18:09:01.12\r\n" + 1.13 + "[RWCEM1]C;1D 4 7-MAR-1993 18:09:01.12\r\n" + 1.14 + "[RWCEM1]E;1 4 8-MAR-1993 18:09:01.12\r\n" 1.15 + , 1.16 + "300: " + URL + "\n" + 1.17 + "200: filename content-length last-modified file-type\n" + 1.18 + "201: \"A\" 2048 Sun%2C%2003%20Mar%201993%2018%3A09%3A01 FILE \n" + 1.19 + "201: \"E\" 2048 Sun%2C%2008%20Mar%201993%2018%3A09%3A01 FILE \n"] 1.20 + , 1.21 + ["\r\r\r\n" 1.22 + , 1.23 + "300: " + URL + "\n" + 1.24 + "200: filename content-length last-modified file-type\n"] 1.25 +] 1.26 + 1.27 +function checkData(request, data, ctx) { 1.28 + do_check_eq(tests[0][1], data); 1.29 + tests.shift(); 1.30 + next_test(); 1.31 +} 1.32 + 1.33 +function storeData(status, entry) { 1.34 + do_check_eq(status, Components.results.NS_OK); 1.35 + entry.setMetaDataElement("servertype", "0"); 1.36 + var os = entry.openOutputStream(0); 1.37 + 1.38 + var written = os.write(tests[0][0], tests[0][0].length); 1.39 + if (written != tests[0][0].length) { 1.40 + do_throw("os.write has not written all data!\n" + 1.41 + " Expected: " + written + "\n" + 1.42 + " Actual: " + tests[0][0].length + "\n"); 1.43 + } 1.44 + os.close(); 1.45 + entry.close(); 1.46 + 1.47 + var ios = Components.classes["@mozilla.org/network/io-service;1"]. 1.48 + getService(Components.interfaces.nsIIOService); 1.49 + var channel = ios.newChannel(URL, "", null); 1.50 + channel.asyncOpen(new ChannelListener(checkData, null, CL_ALLOW_UNKNOWN_CL), null); 1.51 +} 1.52 + 1.53 +function next_test() { 1.54 + if (tests.length == 0) 1.55 + do_test_finished(); 1.56 + else { 1.57 + asyncOpenCacheEntry(URL, 1.58 + "disk", Ci.nsICacheStorage.OPEN_NORMALLY, null, 1.59 + storeData); 1.60 + } 1.61 +} 1.62 + 1.63 +function run_test() { 1.64 + do_execute_soon(next_test); 1.65 + do_test_pending(); 1.66 +}