Wed, 31 Dec 2014 06:55:46 +0100
Added tag TORBROWSER_REPLICA for changeset 6474c204b198
1 var DEBUG = false;
3 var clientID = "javascript";
4 var key = "theme:button";
5 var nsICache = Components.interfaces.nsICache;
7 function getCacheService()
8 {
9 var nsCacheService = Components.classes["@mozilla.org/network/cache-service;1"];
10 var service = nsCacheService.getService(Components.interfaces.nsICacheService);
11 return service;
12 }
14 function createCacheSession(clientID, storagePolicy, streamable)
15 {
16 var service = getCacheService();
17 var session = service.createSession(clientID, storagePolicy, streamable);
18 return session;
19 }
21 function openCacheEntry(mode)
22 {
23 var session = createCacheSession(clientID, nsICache.STORE_ON_DISK, true);
24 var entry = session.openCacheEntry(key, mode);
25 return entry;
26 }
28 function wrapInputStream(input)
29 {
30 var nsIScriptableInputStream = Components.interfaces.nsIScriptableInputStream;
31 var factory = Components.classes["@mozilla.org/scriptableinputstream;1"];
32 var wrapper = factory.createInstance(nsIScriptableInputStream);
33 wrapper.init(input);
34 return wrapper;
35 }
37 function test()
38 {
39 var outputEntry = openCacheEntry(nsICache.ACCESS_WRITE);
40 var output = outputEntry.transport.openOutputStream(0, -1, 0);
41 if (output.write("foo", 3) == 3)
42 print("disk cache write works!");
43 else
44 print("disk cache write broken!");
46 // store some metadata.
47 outputEntry.setMetaDataElement("size", "3");
49 output.close();
50 outputEntry.markValid();
51 outputEntry.close();
53 var inputEntry = openCacheEntry(nsICache.ACCESS_READ);
54 var input = wrapInputStream(inputEntry.transport.openInputStream(0, -1, 0));
56 if (input.read(input.available()) == "foo")
57 print("disk cache read works!");
58 else
59 print("disk cache read broken!");
61 if (inputEntry.getMetaDataElement("size") == "3")
62 print("disk cache metadata works!");
63 else
64 print("disk cache metadata broken!");
66 input.close();
67 inputEntry.close();
68 }
70 function doom()
71 {
72 var doomedEntry = openCacheEntry(nsICache.ACCESS_READ_WRITE);
73 doomedEntry.doom();
74 doomedEntry.close();
75 }
77 if (DEBUG) {
78 getCacheService();
79 print("cache service loaded.");
80 } else {
81 print("running disk cache test.");
82 test();
83 print("disk cache test complete.");
84 }