diff options
Diffstat (limited to 'netwerk/test/unit/test_cache2-23-read-over-chunk.js')
-rw-r--r-- | netwerk/test/unit/test_cache2-23-read-over-chunk.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/netwerk/test/unit/test_cache2-23-read-over-chunk.js b/netwerk/test/unit/test_cache2-23-read-over-chunk.js new file mode 100644 index 000000000..92959645d --- /dev/null +++ b/netwerk/test/unit/test_cache2-23-read-over-chunk.js @@ -0,0 +1,35 @@ +Components.utils.import('resource://gre/modules/LoadContextInfo.jsm'); + +function run_test() +{ + do_get_profile(); + + if (!newCacheBackEndUsed()) { + do_check_true(true, "This test checks only cache2 specific behavior."); + return; + } + + const kChunkSize = (256 * 1024); + + var payload = ""; + for (var i = 0; i < (kChunkSize + 10); ++i) { + if (i < (kChunkSize - 5)) + payload += "0"; + else + payload += String.fromCharCode(i + 65); + } + + asyncOpenCacheEntry("http://read/", "disk", Ci.nsICacheStorage.OPEN_TRUNCATE, LoadContextInfo.default, + new OpenCallback(NEW|WAITFORWRITE, "", payload, function(entry) { + var is = entry.openInputStream(0); + pumpReadStream(is, function(read) { + do_check_eq(read.length, kChunkSize + 10); + is.close(); + do_check_true(read == payload); // not using do_check_eq since logger will fail for the 1/4MB string + finish_cache2_test(); + }); + }) + ); + + do_test_pending(); +} |