Upgrade to ExtJS 3.2.0 - Released 03/30/2010
[extjs.git] / test / unit / direct / Direct.js
diff --git a/test/unit/direct/Direct.js b/test/unit/direct/Direct.js
new file mode 100644 (file)
index 0000000..aa0cfaa
--- /dev/null
@@ -0,0 +1,88 @@
+/*!
+ * Ext JS Library 3.2.0
+ * Copyright(c) 2006-2010 Ext JS, Inc.
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+/**
+ * Tests Ext.data.Store functionality
+ * @author Ed Spencer
+ */
+(function() {
+    var suite  = Ext.test.session.getSuite('Ext.Direct'),
+        assert = Y.Assert;
+
+    //a shared setup function used by several of the suites
+    var defaultSetup = function() {
+        this.API = {
+            "url": "php\/router.php",
+            "type": "remoting",
+            "actions": {
+                "TestAction": [{
+                    "name": "doEcho",
+                    "len": 1
+                }, {
+                    "name": "multiply",
+                    "len": 1
+                }, {
+                    "name": "getTree",
+                    "len": 1
+                }],
+                "Profile": [{
+                    "name": "getBasicInfo",
+                    "len": 2
+                }, {
+                    "name": "getPhoneInfo",
+                    "len": 1
+                }, {
+                    "name": "getLocationInfo",
+                    "len": 1
+                }, {
+                    "name": "updateBasicInfo",
+                    "len": 2,
+                    "formHandler": true
+                }]
+            }
+        };
+    };
+
+    suite.add(new Y.Test.Case({
+        name: 'adding providers',
+
+        setUp: defaultSetup,
+
+        testAddProvider: function() {
+            var p = Ext.Direct.addProvider(
+                this.API
+            );
+            Y.ObjectAssert.hasKeys(p.actions, [
+                "Profile",
+                "TestAction"
+            ], 'Test actions provided');
+            Y.ObjectAssert.hasKeys(p.actions, p, Ext.Direct.providers, "Test providers cache");
+        },
+        testGetProvider: function() {
+            var p = Ext.Direct.addProvider(
+                this.API
+            );
+            Y.ObjectAssert.hasKeys(p, Ext.Direct.getProvider(p.id));
+        },
+        testRemoveProvider: function() {
+            // Remove via id
+            var p = Ext.Direct.addProvider(
+                this.API
+            );
+            var id = p.id;
+            Ext.Direct.removeProvider(id);
+            Y.Assert.isUndefined(Ext.Direct.getProvider(id));
+
+            // Remove via object
+            var p = Ext.Direct.addProvider(
+                this.API
+            );
+            var id = p.id;
+            Ext.Direct.removeProvider(p);
+            Y.Assert.isUndefined(Ext.Direct.getProvider(id));
+        }
+    }));
+})();