Author: gotcha
Date: Thu Sep 27 23:52:25 2007
New Revision: 46981

Modified:
   kukit/kukit.js/trunk/kukit/eventreg.js
   kukit/kukit.js/trunk/kukit/resourcedata.js
   kukit/kukit.js/trunk/tests/test_kssparser.js
Log:
fix broken tests; add tests for wrong nammespace-event identifiers; improve 
error message in those cases

Modified: kukit/kukit.js/trunk/kukit/eventreg.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/eventreg.js      (original)
+++ kukit/kukit.js/trunk/kukit/eventreg.js      Thu Sep 27 23:52:25 2007
@@ -167,6 +167,23 @@
         bindMethodName);
 };
 
+_EventRegistry.prototype.unregister =
+    function(namespace, eventName) {
+    var key = this._getKey(namespace, eventName);
+    delete this.content[key];
+    var found = null;
+    for (var i=0; i < this.eventSets.length; i++) {
+        var eventSet = this.eventSets[i];
+        if (eventSet['namespace'] == namespace) {
+            found = i;
+            break;
+        }
+    }
+    if (found != null) {
+        this.eventSets.splice(found, 1);
+    }
+};
+
 _EventRegistry.prototype.registerForAllEvents =
     function(namespace, eventNames, klass,
         bindMethodName, defaultActionMethodName, iterName) {
@@ -204,10 +221,10 @@
     if (typeof(entry) == 'undefined') {
 ;;;     if (key.substr(0, 1) == '-') {
 ;;;         key = key.substring(1);
-;;;         kukit.E = 'Error : undefined global event key ';
-;;;         kukit.E += key + ' (or maybe namespace is missing ?).';
+;;;         kukit.E = 'Error : undefined global event [';
+;;;         kukit.E += key + '] (or maybe namespace is missing ?).';
 ;;;     } else {
-;;;         kukit.E = 'Error : undefined event key [' + key + '].';
+;;;         kukit.E = 'Error : undefined namespace or event in [' + key + '].';
 ;;;     }
         throw new Error(kukit.E);
     } 

Modified: kukit/kukit.js/trunk/kukit/resourcedata.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/resourcedata.js  (original)
+++ kukit/kukit.js/trunk/kukit/resourcedata.js  Thu Sep 27 23:52:25 2007
@@ -74,22 +74,19 @@
     this.className = null;
     this.id = id;
     // finish up the KSS on it
-    // XXX GC instead of relying on exceptions, test if key exists
-;;; try {
-        this.setIdAndClass();
-;;; } catch(e) {
-;;;     // foolishly, we don't know the position at this point
-;;;     var msg = 'Undefined event : [';
-;;;     msg += namespace + ':' + name + '].';
-;;;     throw kukit.err.kssSelectorError(msg);
-;;; }
+    this.setIdAndClass();
 };
 
 kukit.rd.KssSelector.prototype.setIdAndClass = function() {
     // Sets up id and class on the selector, based on registration info
     // XXX GC instead of relying on exceptions, test if key exists
-    this.className = kukit.eventsGlobalRegistry.get(
-        this.namespace, this.name).className;
+    try {
+        this.className = kukit.eventsGlobalRegistry.get(
+            this.namespace, this.name).className;
+    } catch(e) {
+        throw kukit.err.parsingError(e.message);
+    }
+
     if (this.id == null) {
         // singleton for class
         this.id = kukit.rd.makeId(this.namespace, this.className);

Modified: kukit/kukit.js/trunk/tests/test_kssparser.js
==============================================================================
--- kukit/kukit.js/trunk/tests/test_kssparser.js        (original)
+++ kukit/kukit.js/trunk/tests/test_kssparser.js        Thu Sep 27 23:52:25 2007
@@ -26,6 +26,12 @@
 kukit.KssParserTestCaseBase = function() {
 
     this.setUp = function() {
+        kukit.eventsGlobalRegistry.register('dnd', 'drag',
+            kukit.pl.NativeEventBinder, '__bind__nodeordocument', null);    
+    };
+    
+    this.tearDown = function() {
+        kukit.eventsGlobalRegistry.unregister('dnd', 'drag');
     };
     
     this.assertKssParmValueEquals = function(a, b, reason) {
@@ -374,15 +380,15 @@
             +"#calendar-previous a:dnd-drag(shelve) {\n"
             +"   action-server : whatever\n"
             +"}\n"
-            +"#button-one:annoyClicker-click(annoy-me) {\n"
+            +"#button-one:annoyclicker-click(annoy-me) {\n"
             +"   action-server:     clickedButton;\n"
             +"   clickedButton-id:  nodeAttr(id);\n"
             +"}\n"
-            +"document:annoy(annoyMe) {\n"
+            +"document:annoyclicker-annoy(annoyMe) {\n"
             +"   action-client:    alert;\n"
             +'   alert-message:    "You are an idiot! Ha ha ha. (But just keep 
on trying...)";\n'
             +"}\n"
-            +"document:annoyClicker-annoy(annoyMe) {\n"
+            +"document:annoyclicker-annoy(annoyMe) {\n"
             +"   action-client:    alert;\n"
             +'   alert-message:       "You are an idiot! Ha ha ha. (But just 
keep on trying...)";\n'
             +"}\n"
@@ -393,8 +399,8 @@
             +"   action-client:    log;\n"
             +'   log-message:    "Logging";\n'
             +"}\n"
-            +"document:annoyClicker-annoy(annoyMe) {\n"
-            +"   evt-annoyClicker-annoy-preventdefault:   true;\n"
+            +"document:annoyclicker-annoy(annoyMe) {\n"
+            +"   evt-annoyclicker-annoy-preventdefault:   true;\n"
             +"   action-client:    namespaced-alert;\n"
             +'   namespaced-alert-message:       "You are an idiot! Ha ha ha. 
(But just keep on trying...)";\n'
             +'}\n'
@@ -435,7 +441,6 @@
         this.assertEquals(rule.kssSelector.css,  '#calendar-previous a');
         this.assertEquals(rule.kssSelector.name,  'click');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['kukitresponse/kukitGetPreviousMonth'];
         this.assertEquals(action.type, 'S');
         this.assertEquals(action.name, 'kukitresponse/kukitGetPreviousMonth');
@@ -454,7 +459,6 @@
         this.assertEquals(rule.kssSelector.css,  'div#update-area');
         this.assertEquals(rule.kssSelector.name,  'timeout');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['getCurrentTime'];
         this.assertEquals(action.type, 'S');
         this.assertEquals(action.name, 'getCurrentTime');
@@ -473,7 +477,6 @@
         this.assertEquals(rule.kssSelector.isEventSelector, true);
         this.assertEquals(rule.kssSelector.name,  'click');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['kukitresponse/kukitGetPreviousMonth'];
         this.assertEquals(action.type, 'S');
         this.assertEquals(action.name, 'kukitresponse/kukitGetPreviousMonth');
@@ -491,7 +494,6 @@
         this.assertEquals(rule.kssSelector.isEventSelector, true);
         this.assertEquals(rule.kssSelector.name,  'click');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['kukitGetPreviousMonth'];
         this.assertEquals(action.type, 'S');
         this.assertEquals(action.name, 'kukitGetPreviousMonth');
@@ -519,7 +521,7 @@
             });
  
         // rule 5
-            //#button-one:annoyClicker-click(annoyMe) {
+            //#button-one:annoyclicker-click(annoyMe) {
             //   kss-action:     clickedButton;
             //   id:             nodeAttr(id);
             //}
@@ -528,7 +530,7 @@
         this.assertEquals(rule.kssSelector.css,  '#button-one');
         this.assertEquals(rule.kssSelector.isEventSelector, true);
         this.assertEquals(rule.kssSelector.name,  'click');
-        this.assertEquals(rule.kssSelector.namespace,  'annoyClicker');
+        this.assertEquals(rule.kssSelector.namespace,  'annoyclicker');
         this.assertEquals(rule.kssSelector.id,  'annoy-me');
         action = rule.actions.content['clickedButton'];
         this.assertEquals(action.type, 'S');
@@ -539,7 +541,7 @@
             });
 
         // rule 6
-            // document:annoy(annoyMe) {
+            // document:annoyclicker-annoy(annoyMe) {
             //   kss-action:    alert;
             //   message:       "You are an idiot! Ha ha ha. (But just keep on 
trying...)";
             //}
@@ -548,7 +550,7 @@
         this.assertEquals(rule.kssSelector.css, 'document');
         this.assertEquals(rule.kssSelector.isMethodSelector, true);
         this.assertEquals(rule.kssSelector.name, 'annoy');
-        this.assertEquals(rule.kssSelector.namespace, null);
+        this.assertEquals(rule.kssSelector.namespace, 'annoyclicker');
         this.assertEquals(rule.kssSelector.id, 'annoyMe');
         action = rule.actions.content['alert'];
         this.assertEquals(action.type, 'C');
@@ -559,7 +561,7 @@
             });
 
         // rule 7
-            // document:annoyClicker-annoy(annoyMe) {
+            // document:annoyclicker-annoy(annoyMe) {
             // annoy#annoy-me {
             //   kss-action:    alert;
             //   message:       "You are an idiot! Ha ha ha. (But just keep on 
trying...)";
@@ -569,7 +571,7 @@
         this.assertEquals(rule.kssSelector.css, 'document');
         this.assertEquals(rule.kssSelector.isMethodSelector, true);
         this.assertEquals(rule.kssSelector.name, 'annoy');
-        this.assertEquals(rule.kssSelector.namespace, 'annoyClicker');
+        this.assertEquals(rule.kssSelector.namespace, 'annoyclicker');
         this.assertEquals(rule.kssSelector.id, 'annoyMe');
         action = rule.actions.content['alert'];
         this.assertEquals(action.type, 'C');
@@ -586,7 +588,6 @@
         this.assertEquals(rule.kssSelector.css,  'div#update-area');
         this.assertEquals(rule.kssSelector.name,  'timeout');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['getCurrentTime'];
         this.assertEquals(action.type, 'S');
         this.assertEquals(action.name, 'getCurrentTime');
@@ -603,8 +604,8 @@
             });
 
         // rule 9
-            //document:annoyClicker-annoy(annoyMe) {\n"
-            //   evt-annoyClicker-annoy-preventdefault:   true;\n"
+            //document:annoyclicker-annoy(annoyMe) {\n"
+            //   evt-annoyclicker-annoy-preventdefault:   true;\n"
             //   action-client:    namespaced-alert;\n"
             //   namespaced-alert-message:       "You are an idiot! Ha ha ha. 
(But just keep on trying...)";\n'
             //}
@@ -613,7 +614,7 @@
         this.assertEquals(rule.kssSelector.css, 'document');
         this.assertEquals(rule.kssSelector.isMethodSelector, true);
         this.assertEquals(rule.kssSelector.name, 'annoy');
-        this.assertEquals(rule.kssSelector.namespace, 'annoyClicker');
+        this.assertEquals(rule.kssSelector.namespace, 'annoyclicker');
         this.assertEquals(rule.kssSelector.id, 'annoyMe');
         action = rule.actions.content['namespaced-alert'];
         this.assertEquals(action.type, 'C');
@@ -637,7 +638,6 @@
         this.assertEquals(rule.kssSelector.css,  '#button_1');
         this.assertEquals(rule.kssSelector.name,  'click');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['setStyle'];
         this.assertEquals(action.type, 'C');
         this.assertEquals(action.name, 'setStyle');
@@ -663,7 +663,6 @@
         this.assertEquals(rule.kssSelector.css,  '#button_3');
         this.assertEquals(rule.kssSelector.name,  'click');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['setStyle'];
         this.assertEquals(action.type, 'C');
         this.assertEquals(action.name, 'setStyle');
@@ -686,7 +685,6 @@
         this.assertEquals(rule.kssSelector.isEventSelector, true);
         this.assertEquals(rule.kssSelector.name,  'click');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['kukitGetPreviousMonth'];
         this.assertEquals(action.type, 'S');
         this.assertEquals(action.name, 'kukitGetPreviousMonth');
@@ -722,7 +720,6 @@
         this.assertEquals(rule.kssSelector.css,  '.inlineEditable');
         this.assertEquals(rule.kssSelector.name,  'blur');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['kukitresponse'];
         this.assertEquals((typeof(action) != 'undefined'), true);
         this.assertEquals(action.type, 'S');
@@ -758,7 +755,6 @@
         this.assertEquals(rule.kssSelector.css,  '.inlineEditable');
         this.assertEquals(rule.kssSelector.name,  'blur');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['default'];
         this.assertEquals((typeof(action) != 'undefined'), true);
         this.assertEquals(action.error, 'errors');
@@ -771,19 +767,16 @@
 kukit.KssParserSelectorTestCase = function() {
     this.name = 'kukit.KssParserSelectorTestCase';
 
-    this.setUp = function() {
-    };
-    
     this.testSelectorWithBinderId = function() {
         // Parsing event selector params
-        var txt= "a:drag(hello)";
+        var txt= "a:dnd-drag(hello)";
         var cursor = new kukit.tk.Cursor(txt);
         var parser = new kukit.kssp.KssSelector(cursor, null, true);
         this.assertEquals(parser.finished, true);
         this.assertEquals(parser.kssSelector.isEventSelector, true);
         this.assertEquals(parser.kssSelector.css, 'a');
         this.assertEquals(parser.kssSelector.name, 'drag');
-        this.assertEquals(parser.kssSelector.namespace, null);
+        this.assertEquals(parser.kssSelector.namespace, 'dnd');
         this.assertEquals(parser.kssSelector.id, 'hello');
     };
     
@@ -806,45 +799,43 @@
 
         // maybe in std css space is not allowed in the parents,
         // but we tolerate it
-        txt= "  a div#id:drag( hello)";
+        txt= "  a div#id:dnd-drag( hello)";
         cursor = new kukit.tk.Cursor(txt);
         parser = new kukit.kssp.KssSelector(cursor, null, true);
         this.assertEquals(parser.kssSelector.isEventSelector, true);
         this.assertEquals(parser.kssSelector.css, '  a div#id');
         this.assertEquals(parser.kssSelector.name, 'drag');
-        this.assertEquals(parser.kssSelector.namespace, null);
+        this.assertEquals(parser.kssSelector.namespace, 'dnd');
         this.assertEquals(parser.kssSelector.id, 'hello');
 
         // We do not allow space here 
-        txt= "  a div#id:drag   (hello)";
+        txt= "  a div#id:dnd-drag   (hello)";
         cursor = new kukit.tk.Cursor(txt);
         this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
             'Wrong event selector : missing event qualifier :<EVENTNAME> or 
:<EVENTNAME>(<ID>).', 25);
 
         // We do not allow space here
-        txt= "  a div#id: drag(hello)";
+        txt= "  a div#id: dnd-drag(hello)";
         cursor = new kukit.tk.Cursor(txt);
         this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
             'Wrong event selector : missing event qualifier :<EVENTNAME> or 
:<EVENTNAME>(<ID>).', 23);
 
-        txt= "a div#id:drop ";
+        txt= "a div#id:click ";
         cursor = new kukit.tk.Cursor(txt);
         parser = new kukit.kssp.KssSelector(cursor, null, true);
         this.assertEquals(parser.kssSelector.isEventSelector, true);
         this.assertEquals(parser.kssSelector.css, 'a div#id');
-        this.assertEquals(parser.kssSelector.name, 'drop');
+        this.assertEquals(parser.kssSelector.name, 'click');
         this.assertEquals(parser.kssSelector.namespace, null);
-        this.assertEquals(parser.kssSelector.id, null);
 
-        txt= "a div.class:drop ";
+        txt= "a div.class:click ";
         cursor = new kukit.tk.Cursor(txt);
         parser = new kukit.kssp.KssSelector(cursor, null, true);
         this.assertEquals(parser.finished, true);
         this.assertEquals(parser.kssSelector.isEventSelector, true);
         this.assertEquals(parser.kssSelector.css, 'a div.class');
-        this.assertEquals(parser.kssSelector.name, 'drop');
+        this.assertEquals(parser.kssSelector.name, 'click');
         this.assertEquals(parser.kssSelector.namespace, null);
-        this.assertEquals(parser.kssSelector.id, null);
 
         txt= "a:click ";
         cursor = new kukit.tk.Cursor(txt);
@@ -854,16 +845,15 @@
         this.assertEquals(parser.kssSelector.css, 'a');
         this.assertEquals(parser.kssSelector.name, 'click');
         this.assertEquals(parser.kssSelector.namespace, null);
-        this.assertEquals(parser.kssSelector.id, null);
 
         // two params: not allowed
-        txt= "a:drop('hello', bello)";
+        txt= "a:click('hello', bello)";
         cursor = new kukit.tk.Cursor(txt);
         this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
             'Wrong event selector ::<EVENTNAME>(<ID>) can have only one 
parameter.', 22);
 
         // zero params: not std css but tolerated 
-        txt= "a:drop()";
+        txt= "a:click()";
         cursor = new kukit.tk.Cursor(txt);
         parser = new kukit.kssp.KssSelector(cursor, null, true);
         this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
@@ -897,15 +887,14 @@
         this.assertEquals(parser.kssSelector.css, 
"a[href=hello].class:lang(hu) div#id");
         this.assertEquals(parser.kssSelector.name, 'click');
         this.assertEquals(parser.kssSelector.namespace, null);
-        this.assertEquals(parser.kssSelector.id, null);
 
-        txt= "a[href=hello].class:lang(hu) div#id:drop(hello) ";
+        txt= "a[href=hello].class:lang(hu) div#id:click(hello) ";
         cursor = new kukit.tk.Cursor(txt);
         parser = new kukit.kssp.KssSelector(cursor, null, true);
         this.assertEquals(parser.finished, true);
         this.assertEquals(parser.kssSelector.isEventSelector, true);
         this.assertEquals(parser.kssSelector.css, 
"a[href=hello].class:lang(hu) div#id");
-        this.assertEquals(parser.kssSelector.name, 'drop');
+        this.assertEquals(parser.kssSelector.name, 'click');
         this.assertEquals(parser.kssSelector.namespace, null);
         this.assertEquals(parser.kssSelector.id, 'hello');
 
@@ -923,7 +912,6 @@
         this.assertEquals(parser.kssSelector.css, "   a:lang(hu, uh) b");
         this.assertEquals(parser.kssSelector.name, 'click');
         this.assertEquals(parser.kssSelector.namespace, null);
-        this.assertEquals(parser.kssSelector.id, null);
 
         // Comment in the end
         txt= "   a:lang(hu, uh) b:click/*comment here*/";
@@ -934,7 +922,6 @@
         this.assertEquals(parser.kssSelector.css, "   a:lang(hu, uh) b");
         this.assertEquals(parser.kssSelector.name, 'click');
         this.assertEquals(parser.kssSelector.namespace, null);
-        this.assertEquals(parser.kssSelector.id, null);
 
         // Should be ok.
         txt= "a:lang(hu)/*comment here*/b:click ";
@@ -944,18 +931,16 @@
         this.assertEquals(parser.kssSelector.css, "a:lang(hu)/*comment 
here*/b");
         this.assertEquals(parser.kssSelector.name, 'click');
         this.assertEquals(parser.kssSelector.namespace, null);
-        this.assertEquals(parser.kssSelector.id, null);
   
         // Should be ok.
-        txt= "a:lang(hu) click/*comment here*/b:clack ";
+        txt= "a:lang(hu) click/*comment here*/b:load ";
         cursor = new kukit.tk.Cursor(txt);
         parser = new kukit.kssp.KssSelector(cursor, null, true);
         this.assertEquals(parser.finished, true);
         this.assertEquals(parser.kssSelector.isEventSelector, true);
         this.assertEquals(parser.kssSelector.css, "a:lang(hu) click/*comment 
here*/b");
-        this.assertEquals(parser.kssSelector.name, 'clack');
+        this.assertEquals(parser.kssSelector.name, 'load');
         this.assertEquals(parser.kssSelector.namespace, null);
-        this.assertEquals(parser.kssSelector.id, null);
 
         txt= "a:click:clack ";
         cursor = new kukit.tk.Cursor(txt);
@@ -977,7 +962,7 @@
         this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
             'Wrong event selector : missing event qualifier :<EVENTNAME> or 
:<EVENTNAME>(<ID>).', 28);
 
-        txt= "/*comment here*/click:clack ";
+        txt= "/*comment here*/div:click ";
         cursor = new kukit.tk.Cursor(txt);
         parser = new kukit.kssp.KssSelector(cursor, null, true);
 
@@ -1004,14 +989,14 @@
         this.assertEquals(parser.kssSelector.namespace, null);
         this.assertEquals(parser.kssSelector.id, 'hello');
 
-        txt= " document:native-click(hello)  ";
+        txt= " document:dnd-drag(hello)  ";
         cursor = new kukit.tk.Cursor(txt);
         parser = new kukit.kssp.KssSelector(cursor, null, true);
         this.assertEquals(parser.finished, true);
         this.assertEquals(parser.kssSelector.isMethodSelector, true);
         this.assertEquals(parser.kssSelector.css, 'document');
-        this.assertEquals(parser.kssSelector.name, 'click');
-        this.assertEquals(parser.kssSelector.namespace, 'native');
+        this.assertEquals(parser.kssSelector.name, 'drag');
+        this.assertEquals(parser.kssSelector.namespace, 'dnd');
         this.assertEquals(parser.kssSelector.id, 'hello');
  
         txt= "document";
@@ -1036,17 +1021,59 @@
         this.assertEquals(parser.kssSelector.id, 'hello');
 
     }
+    
+    this.testKssSelectorWithWrongEventWithoutNamespace = function() {
+        txt= " document:clack ";
+        cursor = new kukit.tk.Cursor(txt);
+        this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
+            'Error : undefined global event [clack] (or maybe namespace is 
missing ?).');
+        txt= " document:clack(hello) ";
+        cursor = new kukit.tk.Cursor(txt);
+        this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
+            'Error : undefined global event [clack] (or maybe namespace is 
missing ?).');
+    }
+    
+    this.testKssSelectorWithRightEventAndMissingNamespace = function() {
+        txt= " document:drag ";
+        cursor = new kukit.tk.Cursor(txt);
+        this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
+            'Error : undefined global event [drag] (or maybe namespace is 
missing ?).');
+        txt= " document:drag(hello) ";
+        cursor = new kukit.tk.Cursor(txt);
+        this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
+            'Error : undefined global event [drag] (or maybe namespace is 
missing ?).');
+    }
+    
+    this.testKssSelectorWithUndefinedNamespaceWhenNamespace = function() {
+        txt= " document:dad-drag ";
+        cursor = new kukit.tk.Cursor(txt);
+        this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
+            'Error : undefined namespace or event in [dad-drag].');
+        txt= " document:dad-drag(hello) ";
+        cursor = new kukit.tk.Cursor(txt);
+        this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
+            'Error : undefined namespace or event in [dad-drag].');
+    }
+    
+    this.testKssSelectorWithUndefinedEventNameWhenNameSpace = function() {
+        txt= " document:dnd-drog ";
+        cursor = new kukit.tk.Cursor(txt);
+        this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
+            'Error : undefined namespace or event in [dnd-drog].');
+        txt= " document:dnd-drog(hello) ";
+        cursor = new kukit.tk.Cursor(txt);
+        this.assertParsingError(kukit.kssp.KssSelector, cursor, null, true,
+            'Error : undefined namespace or event in [dnd-drog].');
+    }
 }; 
 
 kukit.KssParserSelectorTestCase.prototype = new kukit.KssParserTestCaseBase;
 
 kukit.KssParserSelectorsTestCase = function() {
     this.name = 'kukit.KssParserSelectorsTestCase';
-    this.setUp = function() {
-    };
 
     this.testSingleSelector = function() {
-        var txt= "a:drag(hello)";
+        var txt= "a:dnd-drag(hello)";
         var cursor = new kukit.tk.Cursor(txt);
         var parser = new kukit.kssp.KssSelectors(cursor, null, true);
         this.assertEquals(parser.finished, true);
@@ -1055,12 +1082,12 @@
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'a');
         this.assertEquals(kssSelector.name, 'drag');
-        this.assertEquals(kssSelector.namespace, null);
+        this.assertEquals(kssSelector.namespace, 'dnd');
         this.assertEquals(kssSelector.id, 'hello');
     };
     
     this.testMultipleSelectors = function() {
-        var txt= "a:drag(hello), div a:click";
+        var txt= "a:dnd-drag(hello), div a:click";
         var cursor = new kukit.tk.Cursor(txt);
         var parser = new kukit.kssp.KssSelectors(cursor, null, true);
         this.assertEquals(parser.finished, true);
@@ -1069,19 +1096,18 @@
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'a');
         this.assertEquals(kssSelector.name, 'drag');
-        this.assertEquals(kssSelector.namespace, null);
+        this.assertEquals(kssSelector.namespace, 'dnd');
         this.assertEquals(kssSelector.id, 'hello');
         var kssSelector = parser.selectors[1];
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'div a');
         this.assertEquals(kssSelector.name, 'click');
         this.assertEquals(kssSelector.namespace, null);
-        this.assertEquals(kssSelector.id, null);
 
     };
 
     this.testMultipleSelectorsWithComment = function() {
-        var txt= "a:drag(hello), /* a comment */ div a:click";
+        var txt= "a:dnd-drag(hello), /* a comment */ div a:click";
         var cursor = new kukit.tk.Cursor(txt);
         var parser = new kukit.kssp.KssSelectors(cursor, null, true);
         this.assertEquals(parser.finished, true);
@@ -1090,18 +1116,17 @@
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'a');
         this.assertEquals(kssSelector.name, 'drag');
-        this.assertEquals(kssSelector.namespace, null);
+        this.assertEquals(kssSelector.namespace, 'dnd');
         this.assertEquals(kssSelector.id, 'hello');
         var kssSelector = parser.selectors[1];
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'div a');
         this.assertEquals(kssSelector.name, 'click');
         this.assertEquals(kssSelector.namespace, null);
-        this.assertEquals(kssSelector.id, null);
     };
 
     this.testSingleSelectorWithCommaInDoubleQuoteStringInSelector = function() 
{
-        var txt = 'a[value="Hi, I am a comma"]:drag(hello)';
+        var txt = 'a[value="Hi, I am a comma"]:dnd-drag(hello)';
         var cursor = new kukit.tk.Cursor(txt);
         var parser = new kukit.kssp.KssSelectors(cursor, null, true);
         this.assertEquals(parser.finished, true);
@@ -1110,12 +1135,12 @@
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'a[value="Hi, I am a comma"]');
         this.assertEquals(kssSelector.name, 'drag');
-        this.assertEquals(kssSelector.namespace, null);
+        this.assertEquals(kssSelector.namespace, 'dnd');
         this.assertEquals(kssSelector.id, 'hello');
     };
 
     this.testSingleSelectorWithCommaInSingleQuoteStringInSelector = function() 
{
-        var txt = "a[value='Hi, I am a comma']:drag(hello)";
+        var txt = "a[value='Hi, I am a comma']:dnd-drag(hello)";
         var cursor = new kukit.tk.Cursor(txt);
         var parser = new kukit.kssp.KssSelectors(cursor, null, true);
         this.assertEquals(parser.finished, true);
@@ -1124,12 +1149,12 @@
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, "a[value='Hi, I am a comma']");
         this.assertEquals(kssSelector.name, 'drag');
-        this.assertEquals(kssSelector.namespace, null);
+        this.assertEquals(kssSelector.namespace, 'dnd');
         this.assertEquals(kssSelector.id, 'hello');
     };
 
     this.testMultipleSelectorsWithCommaInDoubleQuoteStringInSelector = 
function() {
-        var txt = 'a[value="Hi, I am a comma"]:drag(hello), div a:click';
+        var txt = 'a[value="Hi, I am a comma"]:dnd-drag(hello), div a:click';
         var cursor = new kukit.tk.Cursor(txt);
         var parser = new kukit.kssp.KssSelectors(cursor, null, true);
         this.assertEquals(parser.finished, true);
@@ -1138,18 +1163,17 @@
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'a[value="Hi, I am a comma"]');
         this.assertEquals(kssSelector.name, 'drag');
-        this.assertEquals(kssSelector.namespace, null);
+        this.assertEquals(kssSelector.namespace, 'dnd');
         this.assertEquals(kssSelector.id, 'hello');
         var kssSelector = parser.selectors[1];
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'div a');
         this.assertEquals(kssSelector.name, 'click');
         this.assertEquals(kssSelector.namespace, null);
-        this.assertEquals(kssSelector.id, null);
     };
 
     this.testMultipleSelectorsWithCommaInSingleQuoteStringInSelector = 
function() {
-        var txt = "a[value='Hi, I am a comma']:drag(hello), div a:click";
+        var txt = "a[value='Hi, I am a comma']:dnd-drag(hello), div a:click";
         var cursor = new kukit.tk.Cursor(txt);
         var parser = new kukit.kssp.KssSelectors(cursor, null, true);
         this.assertEquals(parser.finished, true);
@@ -1158,18 +1182,17 @@
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, "a[value='Hi, I am a comma']");
         this.assertEquals(kssSelector.name, 'drag');
-        this.assertEquals(kssSelector.namespace, null);
+        this.assertEquals(kssSelector.namespace, 'dnd');
         this.assertEquals(kssSelector.id, 'hello');
         var kssSelector = parser.selectors[1];
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'div a');
         this.assertEquals(kssSelector.name, 'click');
         this.assertEquals(kssSelector.namespace, null);
-        this.assertEquals(kssSelector.id, null);
     };
 
     this.testMultipleSelectorsWithCommentAndNewline = function() {
-        var txt= "a:drag(hello), /* a comment */ \n div a:click";
+        var txt= "a:dnd-drag(hello), /* a comment */ \n div a:click";
         var cursor = new kukit.tk.Cursor(txt);
         var parser = new kukit.kssp.KssSelectors(cursor, null, true);
         this.assertEquals(parser.finished, true);
@@ -1178,18 +1201,17 @@
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'a');
         this.assertEquals(kssSelector.name, 'drag');
-        this.assertEquals(kssSelector.namespace, null);
+        this.assertEquals(kssSelector.namespace, 'dnd');
         this.assertEquals(kssSelector.id, 'hello');
         var kssSelector = parser.selectors[1];
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'div a');
         this.assertEquals(kssSelector.name, 'click');
         this.assertEquals(kssSelector.namespace, null);
-        this.assertEquals(kssSelector.id, null);
     };
 
     this.testMultipleSelectorsWithNewline = function() {
-        var txt= "a:drag(hello), \n div a:click";
+        var txt= "a:dnd-drag(hello), \n div a:click";
         var cursor = new kukit.tk.Cursor(txt);
         var parser = new kukit.kssp.KssSelectors(cursor, null, true);
         this.assertEquals(parser.finished, true);
@@ -1198,18 +1220,17 @@
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'a');
         this.assertEquals(kssSelector.name, 'drag');
-        this.assertEquals(kssSelector.namespace, null);
+        this.assertEquals(kssSelector.namespace, 'dnd');
         this.assertEquals(kssSelector.id, 'hello');
         var kssSelector = parser.selectors[1];
         this.assertEquals(kssSelector.isEventSelector, true);
         this.assertEquals(kssSelector.css, 'div a');
         this.assertEquals(kssSelector.name, 'click');
         this.assertEquals(kssSelector.namespace, null);
-        this.assertEquals(kssSelector.id, null);
     };
 
     this.testSingleSelectorWithFirstComma = function() {
-        var txt= ",a:drag(hello),";
+        var txt= ",a:dnd-drag(hello),";
         var cursor = new kukit.tk.Cursor(txt);
         var msg = 'Wrong event selector : missing event';
         this.assertParsingError(kukit.kssp.KssSelectors, cursor, null, true,
@@ -1217,7 +1238,7 @@
     }
 
     this.testSingleSelectorWithMiddleComma = function() {
-        var txt= "a:drag(hello),,p:click";
+        var txt= "a:dnd-drag(hello),,p:click";
         var cursor = new kukit.tk.Cursor(txt);
         var msg = 'Wrong event selector : missing event';
         this.assertParsingError(kukit.kssp.KssSelectors, cursor, null, true,
@@ -1225,7 +1246,7 @@
     }
 
     this.testSingleSelectorWithAdditionalComma = function() {
-        var txt= "a:drag(hello),";
+        var txt= "a:dnd-drag(hello),";
         var cursor = new kukit.tk.Cursor(txt);
         var msg = 'Wrong event selector : trailing comma';
         this.assertParsingError(kukit.kssp.KssSelectors, cursor, null, true,
@@ -1233,7 +1254,7 @@
     }
 
     this.testSingleSelectorWithAdditionalCommas = function() {
-        var txt= "a:drag(hello),,";
+        var txt= "a:dnd-drag(hello),,";
         var cursor = new kukit.tk.Cursor(txt);
         var msg = 'Wrong event selector : missing event';
         this.assertParsingError(kukit.kssp.KssSelectors, cursor, null, true,
@@ -1263,7 +1284,6 @@
         this.assertEquals(rule.kssSelector.css,  '#calendar-previous a');
         this.assertEquals(rule.kssSelector.name,  'click');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['kukitresponse/kukitGetPreviousMonth'];
         this.assertEquals(action.type, 'S');
         this.assertEquals(action.name, 'kukitresponse/kukitGetPreviousMonth');
@@ -1276,7 +1296,6 @@
         this.assertEquals(rule.kssSelector.css,  '.inlineEditable');
         this.assertEquals(rule.kssSelector.name,  'blur');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['kukitresponse/kukitGetPreviousMonth'];
         this.assertEquals(action.type, 'S');
         this.assertEquals(action.name, 'kukitresponse/kukitGetPreviousMonth');
@@ -1309,7 +1328,6 @@
         this.assertEquals(rule.kssSelector.css,  '#calendar-previous a');
         this.assertEquals(rule.kssSelector.name,  'click');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
         action = rule.actions.content['kukitresponse/kukitGetPreviousMonth'];
         this.assertEquals(action.type, 'S');
         this.assertEquals(action.name, 'kukitresponse/kukitGetPreviousMonth');
@@ -1322,7 +1340,6 @@
         this.assertEquals(rule.kssSelector.css,  '.inlineEditable');
         this.assertEquals(rule.kssSelector.name,  'keydown');
         this.assertEquals(rule.kssSelector.namespace,  null);
-        this.assertEquals(rule.kssSelector.id,  null);
 
         action = rule.actions.content['kukitresponse/kukitGetPreviousMonth'];
         this.assertEquals(action.type, 'S');
@@ -1357,12 +1374,12 @@
             +"#calendar-previous a:click,\n"
             +".inlineEditable:keydown{ \n"
             +"   evt-click-allowbubbling: true;\n"
-            +"   evt-annoyClicker-annoy-preventdefault:   true;\n"
+            +"   evt-annoyclicker-annoy-preventdefault:   true;\n"
             +"   action-server : kukitresponse/kukitGetPreviousMonth;\n"
             +"}\n"
         var cursor = new kukit.tk.Cursor(txt);
         this.assertParsingError(kukit.kssp.Document, cursor, null, true,
-                                'Wrong value for evt-[<NAMESPACE>-]<EVENTNAME> 
[annoyClicker-annoy] : <NAMESPACE>-<EVENTNAME> should exist in the event of the 
selectors.', 6);
+                                'Wrong value for evt-[<NAMESPACE>-]<EVENTNAME> 
[annoyclicker-annoy] : <NAMESPACE>-<EVENTNAME> should exist in the event of the 
selectors.', 6);
     }
 
 };
_______________________________________________
Kukit-checkins mailing list
[email protected]
http://codespeak.net/mailman/listinfo/kukit-checkins

Reply via email to