1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/netwerk/test/TestDiskCache.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,84 @@ 1.4 +var DEBUG = false; 1.5 + 1.6 +var clientID = "javascript"; 1.7 +var key = "theme:button"; 1.8 +var nsICache = Components.interfaces.nsICache; 1.9 + 1.10 +function getCacheService() 1.11 +{ 1.12 + var nsCacheService = Components.classes["@mozilla.org/network/cache-service;1"]; 1.13 + var service = nsCacheService.getService(Components.interfaces.nsICacheService); 1.14 + return service; 1.15 +} 1.16 + 1.17 +function createCacheSession(clientID, storagePolicy, streamable) 1.18 +{ 1.19 + var service = getCacheService(); 1.20 + var session = service.createSession(clientID, storagePolicy, streamable); 1.21 + return session; 1.22 +} 1.23 + 1.24 +function openCacheEntry(mode) 1.25 +{ 1.26 + var session = createCacheSession(clientID, nsICache.STORE_ON_DISK, true); 1.27 + var entry = session.openCacheEntry(key, mode); 1.28 + return entry; 1.29 +} 1.30 + 1.31 +function wrapInputStream(input) 1.32 +{ 1.33 + var nsIScriptableInputStream = Components.interfaces.nsIScriptableInputStream; 1.34 + var factory = Components.classes["@mozilla.org/scriptableinputstream;1"]; 1.35 + var wrapper = factory.createInstance(nsIScriptableInputStream); 1.36 + wrapper.init(input); 1.37 + return wrapper; 1.38 +} 1.39 + 1.40 +function test() 1.41 +{ 1.42 + var outputEntry = openCacheEntry(nsICache.ACCESS_WRITE); 1.43 + var output = outputEntry.transport.openOutputStream(0, -1, 0); 1.44 + if (output.write("foo", 3) == 3) 1.45 + print("disk cache write works!"); 1.46 + else 1.47 + print("disk cache write broken!"); 1.48 + 1.49 + // store some metadata. 1.50 + outputEntry.setMetaDataElement("size", "3"); 1.51 + 1.52 + output.close(); 1.53 + outputEntry.markValid(); 1.54 + outputEntry.close(); 1.55 + 1.56 + var inputEntry = openCacheEntry(nsICache.ACCESS_READ); 1.57 + var input = wrapInputStream(inputEntry.transport.openInputStream(0, -1, 0)); 1.58 + 1.59 + if (input.read(input.available()) == "foo") 1.60 + print("disk cache read works!"); 1.61 + else 1.62 + print("disk cache read broken!"); 1.63 + 1.64 + if (inputEntry.getMetaDataElement("size") == "3") 1.65 + print("disk cache metadata works!"); 1.66 + else 1.67 + print("disk cache metadata broken!"); 1.68 + 1.69 + input.close(); 1.70 + inputEntry.close(); 1.71 +} 1.72 + 1.73 +function doom() 1.74 +{ 1.75 + var doomedEntry = openCacheEntry(nsICache.ACCESS_READ_WRITE); 1.76 + doomedEntry.doom(); 1.77 + doomedEntry.close(); 1.78 +} 1.79 + 1.80 +if (DEBUG) { 1.81 + getCacheService(); 1.82 + print("cache service loaded."); 1.83 +} else { 1.84 + print("running disk cache test."); 1.85 + test(); 1.86 + print("disk cache test complete."); 1.87 +}