test_cache2-15-conditional-304.js (1448B)
1 "use strict"; 2 3 function run_test() { 4 do_get_profile(); 5 6 // Open for write, write 7 asyncOpenCacheEntry( 8 "http://304/", 9 "disk", 10 Ci.nsICacheStorage.OPEN_NORMALLY, 11 null, 12 new OpenCallback(NEW, "31m", "31d", function () { 13 // Open normally but wait for validation from the server 14 asyncOpenCacheEntry( 15 "http://304/", 16 "disk", 17 Ci.nsICacheStorage.OPEN_NORMALLY, 18 null, 19 new OpenCallback(REVAL, "31m", "31d", function (entry) { 20 // emulate 304 from the server 21 executeSoon(function () { 22 entry.setValid(); // this will trigger OpenCallbacks bellow 23 }); 24 }) 25 ); 26 27 var mc = new MultipleCallbacks(3, finish_cache2_test); 28 29 asyncOpenCacheEntry( 30 "http://304/", 31 "disk", 32 Ci.nsICacheStorage.OPEN_NORMALLY, 33 null, 34 new OpenCallback(NORMAL, "31m", "31d", function () { 35 mc.fired(); 36 }) 37 ); 38 asyncOpenCacheEntry( 39 "http://304/", 40 "disk", 41 Ci.nsICacheStorage.OPEN_NORMALLY, 42 null, 43 new OpenCallback(NORMAL, "31m", "31d", function () { 44 mc.fired(); 45 }) 46 ); 47 asyncOpenCacheEntry( 48 "http://304/", 49 "disk", 50 Ci.nsICacheStorage.OPEN_NORMALLY, 51 null, 52 new OpenCallback(NORMAL, "31m", "31d", function () { 53 mc.fired(); 54 }) 55 ); 56 }) 57 ); 58 59 do_test_pending(); 60 }