]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/storage/tests/test_storage.js
Replace Dojo with jQuery
[eow] / static / dojo-release-1.1.1 / dojox / storage / tests / test_storage.js
diff --git a/static/dojo-release-1.1.1/dojox/storage/tests/test_storage.js b/static/dojo-release-1.1.1/dojox/storage/tests/test_storage.js
deleted file mode 100644 (file)
index b859459..0000000
+++ /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);
-}