aboutsummaryrefslogtreecommitdiff
path: root/includes/js/dojox/storage/tests/test_storage.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/storage/tests/test_storage.js')
-rw-r--r--includes/js/dojox/storage/tests/test_storage.js493
1 files changed, 0 insertions, 493 deletions
diff --git a/includes/js/dojox/storage/tests/test_storage.js b/includes/js/dojox/storage/tests/test_storage.js
deleted file mode 100644
index b859459..0000000
--- a/includes/js/dojox/storage/tests/test_storage.js
+++ /dev/null
@@ -1,493 +0,0 @@
-dojo.require("dojox.storage");
-
-var TestStorage = {
- currentProvider: "default",
- currentNamespace: dojox.storage.DEFAULT_NAMESPACE,
-
- initialize: function(){
- //console.debug("test_storage.initialize()");
-
- // do we even have a storage provider?
- if(dojox.storage.manager.available == false){
- var o = document.createElement("option");
- o.appendChild(document.createTextNode("None"));
- o.value = "None";
- o.selected = true;
- var selector = dojo.byId("currentStorageProvider");
- selector.disabled = true;
- selector.appendChild(o);
-
- alert("No storage provider is available on this browser");
- return;
- }
-
- // what should our starting namespace be?
- this._determineCurrentNamespace();
-
- // clear out old values and enable input forms
- dojo.byId("storageNamespace").value = this.currentNamespace;
- dojo.byId("storageNamespace").disabled = false;
- dojo.byId("storageKey").value = "";
- dojo.byId("storageKey").disabled = false;
- dojo.byId("storageValue").value = "";
- dojo.byId("storageValue").disabled = false;
-
- // write out available providers
- this._printAvailableProviders();
-
- // write out our available namespaces
- this._printAvailableNamespaces();
-
- // write out our available keys
- this._printAvailableKeys();
-
- // initialize our event handlers
- var providerDirectory = dojo.byId("currentStorageProvider");
- dojo.connect(providerDirectory, "onchange", this, this.providerChange);
- var namespaceDirectory = dojo.byId("namespaceDirectory");
- dojo.connect(namespaceDirectory, "onchange", this, this.namespaceChange);
- var directory = dojo.byId("directory");
- dojo.connect(directory, "onchange", this, this.directoryChange);
- var storageValueElem = dojo.byId("storageValue");
- dojo.connect(storageValueElem, "onkeyup", this, this.printValueSize);
-
- // make the directory be unselected if the key name field gets focus
- var keyNameField = dojo.byId("storageKey");
- dojo.connect(keyNameField, "onfocus", function(evt){
- directory.selectedIndex = -1;
- });
-
- // add onclick listeners to all of our buttons
- var buttonContainer = dojo.byId("buttonContainer");
- var currentChild = buttonContainer.firstChild;
- while(currentChild.nextSibling != null){
- if(currentChild.nodeType == 1){
- var buttonName = currentChild.id;
- var functionName = buttonName.match(/^(.*)Button$/)[1];
- dojo.connect(currentChild, "onclick", this, this[functionName]);
- currentChild.disabled = false;
- }
-
- currentChild = currentChild.nextSibling;
- }
-
- // print out metadata
- this._printProviderMetadata();
-
- // disable the configuration button if none is supported for this provider
- if(dojox.storage.hasSettingsUI() == false){
- dojo.byId("configureButton").disabled = true;
- }
- },
-
- providerChange: function(evt){
- var provider = evt.target.value;
-
- // reload the page with this provider
- var query = "";
- if(window.location.href.indexOf("forceStorageProvider") == -1){
- query = "?";
- }else{
- query = "&";
- }
-
- window.location.href += query + "forceStorageProvider=" + provider;
- },
-
- namespaceChange: function(evt){
- var ns = evt.target.value;
- this.currentNamespace = ns;
-
- // update our available keys
- this._printAvailableKeys();
-
- // clear out our key and values
- dojo.byId("storageNamespace").value = this.currentNamespace;
- dojo.byId("storageKey").value = "";
- dojo.byId("storageValue").value = "";
- },
-
- directoryChange: function(evt){
- var key = evt.target.value;
-
- // add this value into the form
- var keyNameField = dojo.byId("storageKey");
- keyNameField.value = key;
-
- this._handleLoad(key);
- },
-
- load: function(evt){
- // cancel the button's default behavior
- evt.preventDefault();
- evt.stopPropagation();
-
- // get the key to load
- var key = dojo.byId("storageKey").value;
-
- if(key == null || typeof key == "undefined" || key == ""){
- alert("Please enter a key name");
- return;
- }
-
- this._handleLoad(key);
- },
-
- save: function(evt){
- // cancel the button's default behavior
- evt.preventDefault();
- evt.stopPropagation();
-
- // get the new values
- var key = dojo.byId("storageKey").value;
- var value = dojo.byId("storageValue").value;
- var namespace = dojo.byId("storageNamespace").value;
-
- if(key == null || typeof key == "undefined" || key == ""){
- alert("Please enter a key name");
- return;
- }
-
- if(value == null || typeof value == "undefined" || value == ""){
- alert("Please enter a key value");
- return;
- }
-
- // print out the size of the value
- this.printValueSize();
-
- // do the save
- this._save(key, value, namespace);
- },
-
- clearNamespace: function(evt){
- // cancel the button's default behavior
- evt.preventDefault();
- evt.stopPropagation();
-
- dojox.storage.clear(this.currentNamespace);
-
- this._printAvailableNamespaces();
- this._printAvailableKeys();
- },
-
- configure: function(evt){
- // cancel the button's default behavior
- evt.preventDefault();
- evt.stopPropagation();
-
- if(dojox.storage.hasSettingsUI()){
- // redraw our keys after the dialog is closed, in
- // case they have all been erased
- var self = this;
- dojox.storage.onHideSettingsUI = function(){
- self._printAvailableKeys();
- }
-
- // show the dialog
- dojox.storage.showSettingsUI();
- }
- },
-
- remove: function(evt){
- // cancel the button's default behavior
- evt.preventDefault();
- evt.stopPropagation();
-
- // determine what key to delete; if the directory has a selected value,
- // use that; otherwise, use the key name field
- var directory = dojo.byId("directory");
- var keyNameField = dojo.byId("storageKey");
- var keyValueField = dojo.byId("storageValue");
- var key;
- if(directory.selectedIndex != -1){
- key = directory.value;
- // delete this option
- var options = directory.childNodes;
- for(var i = 0; i < options.length; i++){
- if(options[i].nodeType == 1 &&
- options[i].value == key){
- directory.removeChild(options[i]);
- break;
- }
- }
- }else{
- key = keyNameField.value;
- }
-
- keyNameField.value = "";
- keyValueField.value = "";
-
- // now delete the value
- this._printStatus("Removing '" + key + "'...");
- if(this.currentNamespace == dojox.storage.DEFAULT_NAMESPACE){
- dojox.storage.remove(key);
- }else{
- dojox.storage.remove(key, this.currentNamespace);
- }
-
- // update our UI
- this._printAvailableNamespaces();
- this._printStatus("Removed '" + key);
- },
-
- printValueSize: function(){
- var storageValue = dojo.byId("storageValue").value;
- var size = 0;
- if(storageValue != null && typeof storageValue != "undefined"){
- size = storageValue.length;
- }
-
- // determine the units we are dealing with
- var units;
- if(size < 1024)
- units = " bytes";
- else{
- units = " K";
- size = size / 1024;
- size = Math.round(size);
- }
-
- size = size + units;
-
- var valueSize = dojo.byId("valueSize");
- valueSize.innerHTML = size;
- },
-
- saveBook: function(evt){
- this._printStatus("Loading book...");
-
- var d = dojo.xhrGet({
- url: "resources/testBook.txt",
- handleAs: "text"
- });
-
- d.addCallback(dojo.hitch(this, function(results){
- this._printStatus("Book loaded");
- this._save("testBook", results);
- }));
-
- d.addErrback(dojo.hitch(this, function(error){
- alert("Unable to load testBook.txt: " + error);
- }));
-
- if(!typeof evt != "undefined" && evt != null){
- evt.preventDefault();
- evt.stopPropagation();
- }
-
- return false;
- },
-
- saveXML: function(evt){
- this._printStatus("Loading XML...");
-
- var d = dojo.xhrGet({
- url: "resources/testXML.xml",
- handleAs: "text"
- });
-
- d.addCallback(dojo.hitch(this, function(results){
- this._printStatus("XML loaded");
- this._save("testXML", results);
- }));
-
- d.addErrback(dojo.hitch(this, function(error){
- alert("Unable to load testXML.xml: " + error);
- }));
-
- if(!typeof evt != "undefined" && evt != null){
- evt.preventDefault();
- evt.stopPropagation();
- }
-
- return false;
- },
-
- _save: function(key, value, namespace){
- this._printStatus("Saving '" + key + "'...");
- var self = this;
- var saveHandler = function(status, keyName){
- //console.debug("saveHandler, status="+status+", keyName="+keyName);
- if(status == dojox.storage.FAILED){
- alert("You do not have permission to store data for this web site. "
- + "Press the Configure button to grant permission.");
- }else if(status == dojox.storage.SUCCESS){
- // clear out the old value
- dojo.byId("storageKey").value = "";
- dojo.byId("storageValue").value = "";
- self._printStatus("Saved '" + key + "'");
-
- if(typeof namespace != "undefined"
- && namespace != null){
- self.currentNamespace = namespace;
- }
-
- self._printAvailableKeys();
- self._printAvailableNamespaces();
- }
- };
-
- try{
- if(namespace == dojox.storage.DEFAULT_NAMESPACE){
- dojox.storage.put(key, value, saveHandler);
- }else{
- dojox.storage.put(key, value, saveHandler, namespace);
- }
- }catch(exp){
- alert(exp);
- }
- },
-
- _printAvailableKeys: function(){
- var directory = dojo.byId("directory");
-
- // clear out any old keys
- directory.innerHTML = "";
-
- // add new ones
- var availableKeys;
- if(this.currentNamespace == dojox.storage.DEFAULT_NAMESPACE){
- availableKeys = dojox.storage.getKeys();
- }else{
- availableKeys = dojox.storage.getKeys(this.currentNamespace);
- }
-
- for (var i = 0; i < availableKeys.length; i++){
- var optionNode = document.createElement("option");
- optionNode.appendChild(document.createTextNode(availableKeys[i]));
- optionNode.value = availableKeys[i];
- directory.appendChild(optionNode);
- }
- },
-
- _printAvailableNamespaces: function(){
- var namespacesDir = dojo.byId("namespaceDirectory");
-
- // clear out any old namespaces
- namespacesDir.innerHTML = "";
-
- // add new ones
- var availableNamespaces = dojox.storage.getNamespaces();
-
- for (var i = 0; i < availableNamespaces.length; i++){
- var optionNode = document.createElement("option");
- optionNode.appendChild(document.createTextNode(availableNamespaces[i]));
- optionNode.value = availableNamespaces[i];
- if(this.currentNamespace == availableNamespaces[i]){
- optionNode.selected = true;
- }
- namespacesDir.appendChild(optionNode);
- }
- },
-
- _handleLoad: function(key){
- this._printStatus("Loading '" + key + "'...");
-
- // get the value
- var results;
- if(this.currentNamespace == dojox.storage.DEFAULT_NAMESPACE){
- results = dojox.storage.get(key);
- }else{
- results = dojox.storage.get(key, this.currentNamespace);
- }
-
- // jsonify it if it is a JavaScript object
- if(typeof results != "string"){
- results = dojo.toJson(results);
- }
-
- // print out its value
- this._printStatus("Loaded '" + key + "'");
- dojo.byId("storageValue").value = results;
-
- // print out the size of the value
- this.printValueSize();
- },
-
- _printProviderMetadata: function(){
- var storageType = dojox.storage.manager.currentProvider.declaredClass;
- var isSupported = dojox.storage.isAvailable();
- var maximumSize = dojox.storage.getMaximumSize();
- var permanent = dojox.storage.isPermanent();
- var uiConfig = dojox.storage.hasSettingsUI();
- var moreInfo = "";
- if(dojox.storage.manager.currentProvider.declaredClass
- == "dojox.storage.FlashStorageProvider"){
- moreInfo = "Flash Version " + dojox.flash.info.version;
- }
- dojo.byId("currentStorageProvider").innerHTML = storageType;
- dojo.byId("isSupported").innerHTML = isSupported;
- dojo.byId("isPersistent").innerHTML = permanent;
- dojo.byId("hasUIConfig").innerHTML = uiConfig;
- dojo.byId("maximumSize").innerHTML = maximumSize;
- dojo.byId("moreInfo").innerHTML = moreInfo;
- },
-
- _printStatus: function(message){
- // remove the old status
- var top = dojo.byId("top");
- for (var i = 0; i < top.childNodes.length; i++){
- var currentNode = top.childNodes[i];
- if (currentNode.nodeType == 1 &&
- currentNode.className == "status"){
- top.removeChild(currentNode);
- }
- }
-
- var status = document.createElement("span");
- status.className = "status";
- status.innerHTML = message;
-
- top.appendChild(status);
- dojo.fadeOut({node: status, duration: 2000}).play();
- },
-
- _determineCurrentNamespace: function(){
- // what is current namespace?
- var availableNamespaces = dojox.storage.getNamespaces();
- if(this.currentNamespace == dojox.storage.DEFAULT_NAMESPACE){
- // do we even have the default namespace in our available namespaces?
- var defaultPresent = false;
- for(var i = 0; i < availableNamespaces.length; i++){
- if(availableNamespaces[i] == dojox.storage.DEFAULT_NAMESPACE){
- defaultPresent = true;
- }
- }
-
- if(!defaultPresent && availableNamespaces.length){
- this.currentNamespace = availableNamespaces[0];
- }
- }
- },
-
- _printAvailableProviders: function(){
- // it is scary that this timeout is needed; if it is not present,
- // the options don't appear on Firefox and Safari, even though the
- // page is finished loading! it might have to do with some strange
- // interaction where our initialize method is called from ExternalInterface,
- // which originated inside of Flash. -- Brad Neuberg
- window.setTimeout(function(){
- var selector = dojo.byId("currentStorageProvider");
- var p = dojox.storage.manager.providers;
- for(var i = 0; i < p.length; i++){
- var name = p[i].declaredClass;
- var o = document.createElement("option");
- o.appendChild(document.createTextNode(name));
- o.value = name;
- if(dojox.storage.manager.currentProvider == p[i]){
- o.selected = true;
- }
-
- selector.appendChild(o);
- }
- }, 1);
- }
-};
-
-// wait until the storage system is finished loading
-if(dojox.storage.manager.isInitialized() == false){ // storage might already be loaded when we get here
- dojo.connect(dojox.storage.manager, "loaded", TestStorage, TestStorage.initialize);
-}else{
- dojo.connect(dojo, "loaded", TestStorage, TestStorage.initialize);
-}