test_cache2-16-conditional-200.js (2078B)
1 "use strict"; 2 3 function run_test() { 4 do_get_profile(); 5 6 // Open for write, write 7 asyncOpenCacheEntry( 8 "http://200/", 9 "disk", 10 Ci.nsICacheStorage.OPEN_NORMALLY, 11 null, 12 new OpenCallback(NEW, "21m", "21d", function () { 13 asyncOpenCacheEntry( 14 "http://200/", 15 "disk", 16 Ci.nsICacheStorage.OPEN_NORMALLY, 17 null, 18 new OpenCallback(NORMAL, "21m", "21d", function () { 19 // Open normally but wait for validation from the server 20 asyncOpenCacheEntry( 21 "http://200/", 22 "disk", 23 Ci.nsICacheStorage.OPEN_NORMALLY, 24 null, 25 new OpenCallback(REVAL, "21m", "21d", function (entry) { 26 // emulate 200 from server (new content) 27 executeSoon(function () { 28 var entry2 = entry.recreate(); 29 30 // now fill the new entry, use OpenCallback directly for it 31 new OpenCallback( 32 NEW, 33 "22m", 34 "22d", 35 function () {} 36 ).onCacheEntryAvailable(entry2, true, Cr.NS_OK); 37 }); 38 }) 39 ); 40 41 var mc = new MultipleCallbacks(3, finish_cache2_test); 42 43 asyncOpenCacheEntry( 44 "http://200/", 45 "disk", 46 Ci.nsICacheStorage.OPEN_NORMALLY, 47 null, 48 new OpenCallback(NORMAL, "22m", "22d", function () { 49 mc.fired(); 50 }) 51 ); 52 asyncOpenCacheEntry( 53 "http://200/", 54 "disk", 55 Ci.nsICacheStorage.OPEN_NORMALLY, 56 null, 57 new OpenCallback(NORMAL, "22m", "22d", function () { 58 mc.fired(); 59 }) 60 ); 61 asyncOpenCacheEntry( 62 "http://200/", 63 "disk", 64 Ci.nsICacheStorage.OPEN_NORMALLY, 65 null, 66 new OpenCallback(NORMAL, "22m", "22d", function () { 67 mc.fired(); 68 }) 69 ); 70 }) 71 ); 72 }) 73 ); 74 75 do_test_pending(); 76 }