1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/indexedDB/test/file_app_isolation.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,88 @@ 1.4 +<!DOCTYPE html> 1.5 +<html> 1.6 + <body> 1.7 + foobar! 1.8 + </body> 1.9 + <script> 1.10 + var data = [ 1.11 + { id: "0", name: "foo" }, 1.12 + ]; 1.13 + 1.14 + var action = window.location.search.substring(1); 1.15 + var finished = false; 1.16 + var created = false; // We use that for 'read-no' action. 1.17 + 1.18 + function finish(value) { 1.19 + value ? alert('success') : alert('failure'); 1.20 + finished = true; 1.21 + } 1.22 + 1.23 + var request = window.indexedDB.open('AppIsolationTest'); 1.24 + 1.25 + request.onupgradeneeded = function(event) { 1.26 + if (finished) { 1.27 + finish(false); 1.28 + return; 1.29 + } 1.30 + 1.31 + switch (action) { 1.32 + case 'read-no': 1.33 + created = true; 1.34 + break; 1.35 + case 'read-yes': 1.36 + finish(false); 1.37 + break; 1.38 + case 'write': 1.39 + created = true; 1.40 + 1.41 + var db = event.target.result; 1.42 + 1.43 + var objectStore = db.createObjectStore("test", { keyPath: "id" }); 1.44 + for (var i in data) { 1.45 + objectStore.add(data[i]); 1.46 + } 1.47 + break; 1.48 + } 1.49 + } 1.50 + 1.51 + request.onsuccess = function(event) { 1.52 + if (finished) { 1.53 + finish(false); 1.54 + return; 1.55 + } 1.56 + 1.57 + var db = event.target.result; 1.58 + 1.59 + // Think about close the db! 1.60 + switch (action) { 1.61 + case 'read-no': 1.62 + db.close(); 1.63 + 1.64 + if (created) { // That means we have created it. 1.65 + indexedDB.deleteDatabase('AppIsolationTest').onsuccess = function() { 1.66 + finish(true); 1.67 + }; 1.68 + } else { 1.69 + finish(false); 1.70 + } 1.71 + break; 1.72 + case 'read-yes': 1.73 + db.transaction("test").objectStore("test").get("0").onsuccess = function(event) { 1.74 + var name = event.target.result.name; 1.75 + db.close(); 1.76 + 1.77 + indexedDB.deleteDatabase('AppIsolationTest').onsuccess = function() { 1.78 + finish(name == 'foo'); 1.79 + }; 1.80 + }; 1.81 + break; 1.82 + case 'write': 1.83 + db.close(); 1.84 + 1.85 + // Success only if the db was actually created. 1.86 + finish(created); 1.87 + break; 1.88 + } 1.89 + }; 1.90 + </script> 1.91 +</html>