d){t 2}t 0}}},{3R:o(a){u b=0;1o(a){b=T.5m(a)+"."+b;a=a.2L}t b},"@(1l.3J)":{3R:o(a){t a.3J}}});u 1O=28.x(I,{O:o(b){q.y(b);x(b,"3U",o(a){t 1N.O(q.y(a))});3q.O(b.2I);t b},"@!(10.2I)":{O:o(a){a.2I=T.3v(a);t q.y(a)}}});1O.3t("3U",2);u 1z=28.x({"@1m[67]":{3L:o(a,b,c){v(a.1r===1j||b=="6b"||b=="4v"){t q.y(a,b,2)}u d=a.getAttributeNode(b);t d&&d.6c?d.6d:I}},"@3z.+2H":{3L:o(a,b,c){v(a.1r===1j||b=="6b"||b=="4v"){t q.y(a,b,2)}u d=a.1T[q.$1T[b.4c()]||b];t d?d.6c?d.6d:I:q.y(a,b)}}},{$1T:{},"@3z.+2H":{14:o(){u a="colSpan,rowSpan,vAlign,dateTime,accessKey,tabIndex,encType,maxLength,readOnly,longDesc";u b=a.4c().1y(",");u c=a.1y(",");q.$1T=20.5b(b,c)}}});1z.3t("5H",3);3q.1a(4j);1O.1a(4h);1O.1a(3r);1O.1a(1g);1z.1a(4i);1z.1a(1g);u 4k=1O.x(I,{"@(10.4H===1j)":{O:o(b){q.y(b);b.4H=I;b.1C("focus",o(a){b.4H=a.3A},L);t b}}});u 2G=1z.x({addClass:o(a,b){v(!q.6e(a,b)){a.1r+=(a.1r?" ":"")+b;t b}},6e:o(a,b){u c=C 19("(^|\\\\s)"+b+"(\\\\s|$)");t c.P(a.1r)},removeClass:o(a,b){u c=C 19("(^|\\\\s)"+b+"(\\\\s|$)");a.1r=a.1r.D(c,"$2");t b}},{4l:{},4F:"*",x:o(){u b=y(q,A);u c=(b.4F||"").3n().1y(",");F(c,o(a){2G.4l[a]=b});t b},"@!(1l.3y)":{O:o(a){q.y(a);a.3y=T.2r(a);t a}}});1N.$=o(a,b){t C Y(a).1e(b,1)};1N.$$=o(a,b){t C Y(a).1e(b)};1W(q.1J)};',[],494,'||||||||||||||||||||||||function||this|||return|var|if||extend|base||arguments|length|new|replace|else|forEach|typeof|format|null|slice||false|prototype|Base|bind|test||String|_16|Traversal|base2|constructor|_35|apply|Selector|child|document|true|_36|for|init|call||contains|not|RegExp|implement|instanceOf|_15|case|exec|Item|EventTarget|detect|Module|undefined|last|element|MSIE|concat|while|klass|item|className|Parser|pseudoClasses|reg|name|_|copy|split|Element|nodeType|all|addEventListener|_37|sibling|delegate|callee|Function|match|exports|throw|rescape|assignID|DOM|Document|closures|fn|createEvent|DOMContentLoaded|attributes|platform|charAt|eval|toString|in|Undefined|Array2|assert|Enumerable|exists|store|indexOf|RegGrp|string|Node|tagName|_27|_28|global|error|Array|ancestor|Object|namespace|remove|count|trim|base2ID|Event||XPathParser|Interface|getDocument|getOwnerDocument|handleEvent|fire|unescape|indexed|parser|_10|delete|Namespace|reduce|StopIteration|map|push|join|break|HTMLElement|win|defaultView|isElement|TEXT|parentNode|id|evaluate|sorter|disabled|only|_29|_38|nodeName|nth|self|following|values|toXPath|NOT_XPATH|java|navigator|try|catch|_1|valueOf|ancestorOf|__prototyping|imports|_14|Hash|add|Math|switch|removeAt|sort|create|ignoreCase|object|source|partial|splice|_19|toUpperCase|unbind|type|AbstractView|DocumentEvent|StaticNodeList|createDelegate|Binding|getDefaultView|getNextElementSibling|nextSibling|ownerDocument|MSIE5|target|dispatchEvent|listener|fired|NodeSelector|parse|cache|escape|checked|sourceIndex|_39|getAttribute|x02|preceding|optimised|and|xpathParser|_41|cc_on|_jscript_version|createElement|_0|_2|_7|_12|__constructing|addName|Abstract|_13|merge|Collection|insertAt|default|reverse|replacement|number|parseInt|_18|toLowerCase|assertType|_20|_21|_22|DocumentSelector|ElementSelector|ViewCSS|HTMLDocument|bindings|attachEvent|continue|getPreviousElementSibling|isDocument|documentElement|initEvent|cancelable|returnValue|Events|src|KHTML|matchAll|matchSingle|b2_test|operators|enabled|first|root|_31|tags|rules|activeElement|version|alpha|jscript|gi|_4|_5|_6|_8|_9|_11|TypeError|every|Legacy|end|fetch|Duplicate|key|fetchAt|abs|Index|out|of|bounds|storeAt||Number|IGNORE|_17|index|combine|max|lastIndexOf|substring|Error|Invalid|assertArity|SyntaxError|_23|_24|_25|getNodeIndex|previousSibling|isEmpty|firstChild|parentWindow|bubbles|cancelBubble|preventDefault|on|event|createEventObject|load|script|__ready|readyState|complete|getComputedStyle|getElementsByClassName|matchesSelector|XPathResult|snapshotItem|setAttribute|_26|optimise|ESCAPE|x01|WHITESPACE|IMPLIED_SPACE|IMPLIED_ASTERISK|WILD_CARD|empty|_30|_32|_33|_34|e0|byId|register|b2_indexed|b2_index|b2_length|b2_adjacent|class|opera|types|identifiers|combinators||_40|selectNodes|compareDocumentPosition|href|specified|nodeValue|hasClass'.split('|'),0,{}));
\ No newline at end of file
Added: kukit/kukit.js/trunk/3rd_party/firebuglite/errorIcon.png
==============================================================================
Binary file. No diff available.
Added: kukit/kukit.js/trunk/3rd_party/firebuglite/firebug.css
==============================================================================
--- (empty file)
+++ kukit/kukit.js/trunk/3rd_party/firebuglite/firebug.css Thu Aug 16 12:42:53 2007
@@ -0,0 +1,209 @@
+
+html, body {
+ margin: 0;
+ background: #FFFFFF;
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ font-size: 11px;
+ overflow: hidden;
+}
+
+a {
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+.toolbar {
+ height: 14px;
+ border-top: 1px solid ThreeDHighlight;
+ border-bottom: 1px solid ThreeDShadow;
+ padding: 2px 6px;
+ background: ThreeDFace;
+}
+
+.toolbarRight {
+ position: absolute;
+ top: 4px;
+ right: 6px;
+}
+
+#log {
+ overflow: auto;
+ position: absolute;
+ left: 0;
+ width: 100%;
+}
+
+#commandLine {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 18px;
+ border: none;
+ border-top: 1px solid ThreeDShadow;
+}
+
+/************************************************************************************************/
+
+.logRow {
+ position: relative;
+ border-bottom: 1px solid #D7D7D7;
+ padding: 2px 4px 1px 6px;
+ background-color: #FFFFFF;
+}
+
+.logRow-command {
+ font-family: Monaco, monospace;
+ color: blue;
+}
+
+.objectBox-null {
+ padding: 0 2px;
+ border: 1px solid #666666;
+ background-color: #888888;
+ color: #FFFFFF;
+}
+
+.objectBox-string {
+ font-family: Monaco, monospace;
+ color: red;
+ white-space: pre;
+}
+
+.objectBox-number {
+ color: #000088;
+}
+
+.objectBox-function {
+ font-family: Monaco, monospace;
+ color: DarkGreen;
+}
+
+.objectBox-object {
+ color: DarkGreen;
+ font-weight: bold;
+}
+
+/************************************************************************************************/
+
+.logRow-info,
+.logRow-error,
+.logRow-warning {
+ background: #FFFFFF no-repeat 2px 2px;
+ padding-left: 20px;
+ padding-bottom: 3px;
+}
+
+.logRow-info {
+ background-image: url(infoIcon.png);
+}
+
+.logRow-warning {
+ background-color: cyan;
+ background-image: url(warningIcon.png);
+}
+
+.logRow-error {
+ background-color: LightYellow;
+ background-image: url(errorIcon.png);
+}
+
+.errorMessage {
+ vertical-align: top;
+ color: #FF0000;
+}
+
+.objectBox-sourceLink {
+ position: absolute;
+ right: 4px;
+ top: 2px;
+ padding-left: 8px;
+ font-family: Lucida Grande, sans-serif;
+ font-weight: bold;
+ color: #0000FF;
+}
+
+/************************************************************************************************/
+
+.logRow-group {
+ background: #EEEEEE;
+ border-bottom: none;
+}
+
+.logGroup {
+ background: #EEEEEE;
+}
+
+.logGroupBox {
+ margin-left: 24px;
+ border-top: 1px solid #D7D7D7;
+ border-left: 1px solid #D7D7D7;
+}
+
+/************************************************************************************************/
+
+.selectorTag,
+.selectorId,
+.selectorClass {
+ font-family: Monaco, monospace;
+ font-weight: normal;
+}
+
+.selectorTag {
+ color: #0000FF;
+}
+
+.selectorId {
+ color: DarkBlue;
+}
+
+.selectorClass {
+ color: red;
+}
+
+/************************************************************************************************/
+
+.objectBox-element {
+ font-family: Monaco, monospace;
+ color: #000088;
+}
+
+.nodeChildren {
+ margin-left: 16px;
+}
+
+.nodeTag {
+ color: blue;
+}
+
+.nodeValue {
+ color: #FF0000;
+ font-weight: normal;
+}
+
+.nodeText,
+.nodeComment {
+ margin: 0 2px;
+ vertical-align: top;
+}
+
+.nodeText {
+ color: #333333;
+}
+
+.nodeComment {
+ color: DarkGreen;
+}
+
+/************************************************************************************************/
+
+.propertyNameCell {
+ vertical-align: top;
+}
+
+.propertyName {
+ font-weight: bold;
+}
Added: kukit/kukit.js/trunk/3rd_party/firebuglite/firebug.html
==============================================================================
--- (empty file)
+++ kukit/kukit.js/trunk/3rd_party/firebuglite/firebug.html Thu Aug 16 12:42:53 2007
@@ -0,0 +1,23 @@
+
+
+
+
+
+ Firebug
+
+
+
+
+
+
+
+
+
+
+
Added: kukit/kukit.js/trunk/3rd_party/firebuglite/firebug.js
==============================================================================
--- (empty file)
+++ kukit/kukit.js/trunk/3rd_party/firebuglite/firebug.js Thu Aug 16 12:42:53 2007
@@ -0,0 +1,672 @@
+
+if (!("console" in window) || !("firebug" in console)) {
+(function()
+{
+ window.console =
+ {
+ log: function()
+ {
+ logFormatted(arguments, "");
+ },
+
+ debug: function()
+ {
+ logFormatted(arguments, "debug");
+ },
+
+ info: function()
+ {
+ logFormatted(arguments, "info");
+ },
+
+ warn: function()
+ {
+ logFormatted(arguments, "warning");
+ },
+
+ error: function()
+ {
+ logFormatted(arguments, "error");
+ },
+
+ assert: function(truth, message)
+ {
+ if (!truth)
+ {
+ var args = [];
+ for (var i = 1; i < arguments.length; ++i)
+ args.push(arguments[i]);
+
+ logFormatted(args.length ? args : ["Assertion Failure"], "error");
+ throw message ? message : "Assertion Failure";
+ }
+ },
+
+ dir: function(object)
+ {
+ var html = [];
+
+ var pairs = [];
+ for (var name in object)
+ {
+ try
+ {
+ pairs.push([name, object[name]]);
+ }
+ catch (exc)
+ {
+ }
+ }
+
+ pairs.sort(function(a, b) { return a[0] < b[0] ? -1 : 1; });
+
+ html.push('');
+ for (var i = 0; i < pairs.length; ++i)
+ {
+ var name = pairs[i][0], value = pairs[i][1];
+
+ html.push('',
+ '| ',
+ escapeHTML(name), ' | ', '');
+ appendObject(value, html);
+ html.push(' |
');
+ }
+ html.push('
');
+
+ logRow(html, "dir");
+ },
+
+ dirxml: function(node)
+ {
+ var html = [];
+
+ appendNode(node, html);
+ logRow(html, "dirxml");
+ },
+
+ group: function()
+ {
+ logRow(arguments, "group", pushGroup);
+ },
+
+ groupEnd: function()
+ {
+ logRow(arguments, "", popGroup);
+ },
+
+ time: function(name)
+ {
+ timeMap[name] = (new Date()).getTime();
+ },
+
+ timeEnd: function(name)
+ {
+ if (name in timeMap)
+ {
+ var delta = (new Date()).getTime() - timeMap[name];
+ logFormatted([name+ ":", delta+"ms"]);
+ delete timeMap[name];
+ }
+ },
+
+ count: function()
+ {
+ this.warn(["count() not supported."]);
+ },
+
+ trace: function()
+ {
+ this.warn(["trace() not supported."]);
+ },
+
+ profile: function()
+ {
+ this.warn(["profile() not supported."]);
+ },
+
+ profileEnd: function()
+ {
+ },
+
+ clear: function()
+ {
+ consoleBody.innerHTML = "";
+ },
+
+ open: function()
+ {
+ toggleConsole(true);
+ },
+
+ close: function()
+ {
+ if (frameVisible)
+ toggleConsole();
+ }
+ };
+
+ // ********************************************************************************************
+
+ var consoleFrame = null;
+ var consoleBody = null;
+ var commandLine = null;
+
+ var frameVisible = false;
+ var messageQueue = [];
+ var groupStack = [];
+ var timeMap = {};
+
+ var clPrefix = ">>> ";
+
+ var isFirefox = navigator.userAgent.indexOf("Firefox") != -1;
+ var isIE = navigator.userAgent.indexOf("MSIE") != -1;
+ var isOpera = navigator.userAgent.indexOf("Opera") != -1;
+ var isSafari = navigator.userAgent.indexOf("AppleWebKit") != -1;
+
+ // ********************************************************************************************
+
+ function toggleConsole(forceOpen)
+ {
+ frameVisible = forceOpen || !frameVisible;
+ if (consoleFrame)
+ consoleFrame.style.visibility = frameVisible ? "visible" : "hidden";
+ else
+ waitForBody();
+ }
+
+ function focusCommandLine()
+ {
+ toggleConsole(true);
+ if (commandLine)
+ commandLine.focus();
+ }
+
+ function waitForBody()
+ {
+ if (document.body)
+ createFrame();
+ else
+ setTimeout(waitForBody, 200);
+ }
+
+ function createFrame()
+ {
+ if (consoleFrame)
+ return;
+
+ window.onFirebugReady = function(doc)
+ {
+ window.onFirebugReady = null;
+
+ var toolbar = doc.getElementById("toolbar");
+ toolbar.onmousedown = onSplitterMouseDown;
+
+ commandLine = doc.getElementById("commandLine");
+ addEvent(commandLine, "keydown", onCommandLineKeyDown);
+
+ addEvent(doc, isIE || isSafari ? "keydown" : "keypress", onKeyDown);
+
+ consoleBody = doc.getElementById("log");
+ layout();
+ flush();
+ }
+
+ var baseURL = getFirebugURL();
+
+ consoleFrame = document.createElement("iframe");
+ consoleFrame.setAttribute("src", baseURL+"/firebug.html");
+ consoleFrame.setAttribute("frameBorder", "0");
+ consoleFrame.style.visibility = (frameVisible ? "visible" : "hidden");
+ consoleFrame.style.zIndex = "2147483647";
+ consoleFrame.style.position = "fixed";
+ consoleFrame.style.width = "100%";
+ consoleFrame.style.left = "0";
+ consoleFrame.style.bottom = "0";
+ consoleFrame.style.height = "200px";
+ document.body.appendChild(consoleFrame);
+ }
+
+ function getFirebugURL()
+ {
+ var scripts = document.getElementsByTagName("script");
+ for (var i = 0; i < scripts.length; ++i)
+ {
+ if (scripts[i].src.indexOf("firebug.js") != -1)
+ {
+ var lastSlash = scripts[i].src.lastIndexOf("/");
+ return scripts[i].src.substr(0, lastSlash);
+ }
+ }
+ }
+
+ function evalCommandLine()
+ {
+ var text = commandLine.value;
+ commandLine.value = "";
+
+ logRow([clPrefix, text], "command");
+
+ var value;
+ try
+ {
+ value = eval(text);
+ }
+ catch (exc)
+ {
+ }
+
+ console.log(value);
+ }
+
+ function layout()
+ {
+ var toolbar = consoleBody.ownerDocument.getElementById("toolbar");
+ var height = consoleFrame.offsetHeight - (toolbar.offsetHeight + commandLine.offsetHeight);
+ consoleBody.style.top = toolbar.offsetHeight + "px";
+ consoleBody.style.height = height + "px";
+
+ commandLine.style.top = (consoleFrame.offsetHeight - commandLine.offsetHeight) + "px";
+ }
+
+ function logRow(message, className, handler)
+ {
+ if (consoleBody)
+ writeMessage(message, className, handler);
+ else
+ {
+ messageQueue.push([message, className, handler]);
+ waitForBody();
+ }
+ }
+
+ function flush()
+ {
+ var queue = messageQueue;
+ messageQueue = [];
+
+ for (var i = 0; i < queue.length; ++i)
+ writeMessage(queue[i][0], queue[i][1], queue[i][2]);
+ }
+
+ function writeMessage(message, className, handler)
+ {
+ var isScrolledToBottom =
+ consoleBody.scrollTop + consoleBody.offsetHeight >= consoleBody.scrollHeight;
+
+ if (!handler)
+ handler = writeRow;
+
+ handler(message, className);
+
+ if (isScrolledToBottom)
+ consoleBody.scrollTop = consoleBody.scrollHeight - consoleBody.offsetHeight;
+ }
+
+ function appendRow(row)
+ {
+ var container = groupStack.length ? groupStack[groupStack.length-1] : consoleBody;
+ container.appendChild(row);
+ }
+
+ function writeRow(message, className)
+ {
+ var row = consoleBody.ownerDocument.createElement("div");
+ row.className = "logRow" + (className ? " logRow-"+className : "");
+ row.innerHTML = message.join("");
+ appendRow(row);
+ }
+
+ function pushGroup(message, className)
+ {
+ logFormatted(message, className);
+
+ var groupRow = consoleBody.ownerDocument.createElement("div");
+ groupRow.className = "logGroup";
+ var groupRowBox = consoleBody.ownerDocument.createElement("div");
+ groupRowBox.className = "logGroupBox";
+ groupRow.appendChild(groupRowBox);
+ appendRow(groupRowBox);
+ groupStack.push(groupRowBox);
+ }
+
+ function popGroup()
+ {
+ groupStack.pop();
+ }
+
+ // ********************************************************************************************
+
+ function logFormatted(objects, className)
+ {
+ var html = [];
+
+ var format = objects[0];
+ var objIndex = 0;
+
+ if (typeof(format) != "string")
+ {
+ format = "";
+ objIndex = -1;
+ }
+
+ var parts = parseFormat(format);
+ for (var i = 0; i < parts.length; ++i)
+ {
+ var part = parts[i];
+ if (part && typeof(part) == "object")
+ {
+ var object = objects[++objIndex];
+ part.appender(object, html);
+ }
+ else
+ appendText(part, html);
+ }
+
+ for (var i = objIndex+1; i < objects.length; ++i)
+ {
+ appendText(" ", html);
+
+ var object = objects[i];
+ if (typeof(object) == "string")
+ appendText(object, html);
+ else
+ appendObject(object, html);
+ }
+
+ logRow(html, className);
+ }
+
+ function parseFormat(format)
+ {
+ var parts = [];
+
+ var reg = /((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/;
+ var appenderMap = {s: appendText, d: appendInteger, i: appendInteger, f: appendFloat};
+
+ for (var m = reg.exec(format); m; m = reg.exec(format))
+ {
+ var type = m[8] ? m[8] : m[5];
+ var appender = type in appenderMap ? appenderMap[type] : appendObject;
+ var precision = m[3] ? parseInt(m[3]) : (m[4] == "." ? -1 : 0);
+
+ parts.push(format.substr(0, m[0][0] == "%" ? m.index : m.index+1));
+ parts.push({appender: appender, precision: precision});
+
+ format = format.substr(m.index+m[0].length);
+ }
+
+ parts.push(format);
+
+ return parts;
+ }
+
+ function escapeHTML(value)
+ {
+ function replaceChars(ch)
+ {
+ switch (ch)
+ {
+ case "<":
+ return "<";
+ case ">":
+ return ">";
+ case "&":
+ return "&";
+ case "'":
+ return "'";
+ case '"':
+ return """;
+ }
+ return "?";
+ };
+ return String(value).replace(/[<>&"']/g, replaceChars);
+ }
+
+ function objectToString(object)
+ {
+ try
+ {
+ return object+"";
+ }
+ catch (exc)
+ {
+ return null;
+ }
+ }
+
+ // ********************************************************************************************
+
+ function appendText(object, html)
+ {
+ html.push(escapeHTML(objectToString(object)));
+ }
+
+ function appendNull(object, html)
+ {
+ html.push('', escapeHTML(objectToString(object)), '');
+ }
+
+ function appendString(object, html)
+ {
+ html.push('"', escapeHTML(objectToString(object)),
+ '"');
+ }
+
+ function appendInteger(object, html)
+ {
+ html.push('', escapeHTML(objectToString(object)), '');
+ }
+
+ function appendFloat(object, html)
+ {
+ html.push('', escapeHTML(objectToString(object)), '');
+ }
+
+ function appendFunction(object, html)
+ {
+ var reName = /function ?(.*?)\(/;
+ var m = reName.exec(objectToString(object));
+ var name = m ? m[1] : "function";
+ html.push('', escapeHTML(name), '()');
+ }
+
+ function appendObject(object, html)
+ {
+ try
+ {
+ if (object == undefined)
+ appendNull("undefined", html);
+ else if (object == null)
+ appendNull("null", html);
+ else if (typeof object == "string")
+ appendString(object, html);
+ else if (typeof object == "number")
+ appendInteger(object, html);
+ else if (typeof object == "function")
+ appendFunction(object, html);
+ else if (object.nodeType == 1)
+ appendSelector(object, html);
+ else if (typeof object == "object")
+ appendObjectFormatted(object, html);
+ else
+ appendText(object, html);
+ }
+ catch (exc)
+ {
+ }
+ }
+
+ function appendObjectFormatted(object, html)
+ {
+ var text = objectToString(object);
+ var reObject = /\[object (.*?)\]/;
+
+ var m = reObject.exec(text);
+ html.push('', m ? m[1] : text, '')
+ }
+
+ function appendSelector(object, html)
+ {
+ html.push('');
+
+ html.push('', escapeHTML(object.nodeName.toLowerCase()), '');
+ if (object.id)
+ html.push('#', escapeHTML(object.id), '');
+ if (object.className)
+ html.push('.', escapeHTML(object.className), '');
+
+ html.push('');
+ }
+
+ function appendNode(node, html)
+ {
+ if (node.nodeType == 1)
+ {
+ html.push(
+ '',
+ '<', node.nodeName.toLowerCase(), '');
+
+ for (var i = 0; i < node.attributes.length; ++i)
+ {
+ var attr = node.attributes[i];
+ if (!attr.specified)
+ continue;
+
+ html.push(' ', attr.nodeName.toLowerCase(),
+ '="', escapeHTML(attr.nodeValue),
+ '"')
+ }
+
+ if (node.firstChild)
+ {
+ html.push('>
');
+
+ for (var child = node.firstChild; child; child = child.nextSibling)
+ appendNode(child, html);
+
+ html.push('
</',
+ node.nodeName.toLowerCase(), '>
');
+ }
+ else
+ html.push('/>');
+ }
+ else if (node.nodeType == 3)
+ {
+ html.push('', escapeHTML(node.nodeValue),
+ '
');
+ }
+ }
+
+ // ********************************************************************************************
+
+ function addEvent(object, name, handler)
+ {
+ if (document.all)
+ object.attachEvent("on"+name, handler);
+ else
+ object.addEventListener(name, handler, false);
+ }
+
+ function removeEvent(object, name, handler)
+ {
+ if (document.all)
+ object.detachEvent("on"+name, handler);
+ else
+ object.removeEventListener(name, handler, false);
+ }
+
+ function cancelEvent(event)
+ {
+ if (document.all)
+ event.cancelBubble = true;
+ else
+ event.stopPropagation();
+ }
+
+ function onError(msg, href, lineNo)
+ {
+ var html = [];
+
+ var lastSlash = href.lastIndexOf("/");
+ var fileName = lastSlash == -1 ? href : href.substr(lastSlash+1);
+
+ html.push(
+ '', msg, '',
+ '', fileName, ' (line ', lineNo, ')
'
+ );
+
+ logRow(html, "error");
+ };
+
+ function onKeyDown(event)
+ {
+ if (event.keyCode == 123)
+ toggleConsole();
+ else if ((event.keyCode == 108 || event.keyCode == 76) && event.shiftKey
+ && (event.metaKey || event.ctrlKey))
+ focusCommandLine();
+ else
+ return;
+
+ cancelEvent(event);
+ }
+
+ function onSplitterMouseDown(event)
+ {
+ if (isSafari || isOpera)
+ return;
+
+ addEvent(document, "mousemove", onSplitterMouseMove);
+ addEvent(document, "mouseup", onSplitterMouseUp);
+
+ for (var i = 0; i < frames.length; ++i)
+ {
+ addEvent(frames[i].document, "mousemove", onSplitterMouseMove);
+ addEvent(frames[i].document, "mouseup", onSplitterMouseUp);
+ }
+ }
+
+ function onSplitterMouseMove(event)
+ {
+ var win = document.all
+ ? event.srcElement.ownerDocument.parentWindow
+ : event.target.ownerDocument.defaultView;
+
+ var clientY = event.clientY;
+ if (win != win.parent)
+ clientY += win.frameElement ? win.frameElement.offsetTop : 0;
+
+ var height = consoleFrame.offsetTop + consoleFrame.clientHeight;
+ var y = height - clientY;
+
+ consoleFrame.style.height = y + "px";
+ layout();
+ }
+
+ function onSplitterMouseUp(event)
+ {
+ removeEvent(document, "mousemove", onSplitterMouseMove);
+ removeEvent(document, "mouseup", onSplitterMouseUp);
+
+ for (var i = 0; i < frames.length; ++i)
+ {
+ removeEvent(frames[i].document, "mousemove", onSplitterMouseMove);
+ removeEvent(frames[i].document, "mouseup", onSplitterMouseUp);
+ }
+ }
+
+ function onCommandLineKeyDown(event)
+ {
+ if (event.keyCode == 13)
+ evalCommandLine();
+ else if (event.keyCode == 27)
+ commandLine.value = "";
+ }
+
+ window.onerror = onError;
+ addEvent(document, isIE || isSafari ? "keydown" : "keypress", onKeyDown);
+
+ if (document.documentElement.getAttribute("debug") == "true")
+ toggleConsole(true);
+})();
+}
Added: kukit/kukit.js/trunk/3rd_party/firebuglite/firebugx.js
==============================================================================
--- (empty file)
+++ kukit/kukit.js/trunk/3rd_party/firebuglite/firebugx.js Thu Aug 16 12:42:53 2007
@@ -0,0 +1,10 @@
+
+if (!("console" in window) || !("firebug" in console))
+{
+ var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
+ "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
+
+ window.console = {};
+ for (var i = 0; i < names.length; ++i)
+ window.console[names[i]] = function() {}
+}
\ No newline at end of file
Added: kukit/kukit.js/trunk/3rd_party/firebuglite/infoIcon.png
==============================================================================
Binary file. No diff available.
Added: kukit/kukit.js/trunk/3rd_party/firebuglite/warningIcon.png
==============================================================================
Binary file. No diff available.
From reebalazs at codespeak.net Thu Aug 16 12:43:49 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Thu, 16 Aug 2007 12:43:49 +0200 (CEST)
Subject: [KSS-checkins] r45703 - in kukit/kss.core/trunk: docs kss/core
Message-ID: <20070816104349.EFD62815A@code0.codespeak.net>
Author: reebalazs
Date: Thu Aug 16 12:43:49 2007
New Revision: 45703
Modified:
kukit/kss.core/trunk/docs/LICENSE.txt
kukit/kss.core/trunk/kss/core/configure.zcml
Log:
Add Firebug lite
Modified: kukit/kss.core/trunk/docs/LICENSE.txt
==============================================================================
--- kukit/kss.core/trunk/docs/LICENSE.txt (original)
+++ kukit/kss.core/trunk/docs/LICENSE.txt Thu Aug 16 12:43:49 2007
@@ -1,4 +1,4 @@
- kss.core is copyright KSS Project
+ kss.core is copyright KSS Project Contributors
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,3 +21,4 @@
BeautifulSoup.py is licensed with PSF, Copyright (c) 2004-2006 Leonard Richardson
+ Firebug Lite is licensed under Mozilla Public License 1.1
Modified: kukit/kss.core/trunk/kss/core/configure.zcml
==============================================================================
--- kukit/kss.core/trunk/kss/core/configure.zcml (original)
+++ kukit/kss.core/trunk/kss/core/configure.zcml Thu Aug 16 12:43:49 2007
@@ -35,6 +35,10 @@
name="MochiKit.js"
/>
+
Author: gotcha
Date: Thu Aug 16 14:46:47 2007
New Revision: 45718
Added:
kukit/kukit.js/branch/gotcha-code-cleanup/
- copied from r45717, kukit/kukit.js/trunk/
Log:
branch for code cleanup like fit on 80 cols, clean ;;;, etc...
From gotcha at codespeak.net Thu Aug 16 18:34:35 2007
From: gotcha at codespeak.net (gotcha at codespeak.net)
Date: Thu, 16 Aug 2007 18:34:35 +0200 (CEST)
Subject: [KSS-checkins] r45740 -
kukit/kukit.js/branch/gotcha-code-cleanup/kukit
Message-ID: <20070816163435.7C3C4815F@code0.codespeak.net>
Author: gotcha
Date: Thu Aug 16 18:34:35 2007
New Revision: 45740
Modified:
kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kssparser.js
kukit/kukit.js/branch/gotcha-code-cleanup/kukit/oper.js
Log:
add missing msg; initialize error correctly
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kssparser.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kssparser.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kssparser.js Thu Aug 16 18:34:35 2007
@@ -691,7 +691,7 @@
;;; kukit.E = 'Undefined event : [';
;;; kukit.E += rule.kssSelector.namespace;
;;; kukit.E += ':' + rule.kssSelector.name + '].';
-;;; throw new kukit.err.tk.ParsingError(msg);
+;;; throw new kukit.err.tk.ParsingError(kukit.E);
;;; }
this.rules.push(rule);
}
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/kukit/oper.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/kukit/oper.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/kukit/oper.js Thu Aug 16 18:34:35 2007
@@ -146,7 +146,7 @@
;;; var msg = nodes.length + ' nodes found for action [' + name + '].';
;;; kukit.logDebug(msg);
;;; if (!nodes || nodes.length == 0) {
-;;; kukit.logWarning();
+;;; kukit.logWarning('Action selector found no nodes.');
;;; }
for (var i=0; i < nodes.length; i++) {
this.node = nodes[i];
From gotcha at codespeak.net Thu Aug 16 18:45:33 2007
From: gotcha at codespeak.net (gotcha at codespeak.net)
Date: Thu, 16 Aug 2007 18:45:33 +0200 (CEST)
Subject: [KSS-checkins] r45742 -
kukit/kukit.js/branch/gotcha-code-cleanup/kukit
Message-ID: <20070816164533.CA958815E@code0.codespeak.net>
Author: gotcha
Date: Thu Aug 16 18:45:32 2007
New Revision: 45742
Modified:
kukit/kukit.js/branch/gotcha-code-cleanup/kukit/oper.js
kukit/kukit.js/branch/gotcha-code-cleanup/kukit/resourcedata.js
kukit/kukit.js/branch/gotcha-code-cleanup/kukit/serveraction.js
Log:
coherent naming for kss parameters
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/kukit/oper.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/kukit/oper.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/kukit/oper.js Thu Aug 16 18:45:32 2007
@@ -119,11 +119,11 @@
// Check kss action parms
var nodes = null;
// XXX TODO this should be refactored with parms constraint checking
- for (key in this.kssParameters) {
+ for (key in this.kssParms) {
switch (key) {
case 'kssSelector': {
// The value already contains the results
- nodes = this.kssParameters[key];
+ nodes = this.kssParms[key];
} break;
default: {
;;; kukit.E = 'Wrong parameter : [' + key + '] starts with ';
@@ -168,7 +168,7 @@
kukit.op.Oper.prototype.executeDefaultAction = function(name, optional) {
// Check kss action parms
-;;; for (key in this.kssParameters) {
+;;; for (key in this.kssParms) {
;;; kukit.E = 'Wrong parameter : [' + key + '] starts with "kss";';
;;; kukit.E += ' normal parms (that do not start with kss)';
;;; kukit.E += ' only are allowed in action-default keys.';
@@ -200,7 +200,7 @@
};
kukit.op.Oper.prototype.executeServerAction = function(name) {
-;;; for (key in this.kssParameters) {
+;;; for (key in this.kssParms) {
;;; if (key == 'kssUrl') {
;;; // Value will be evaluated.
;;; } else if (key == 'kssSubmitForm') {
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/kukit/resourcedata.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/kukit/resourcedata.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/kukit/resourcedata.js Thu Aug 16 18:45:32 2007
@@ -512,7 +512,7 @@
// handled as appropriate.
// A cloned oper is returned.
var parms = {};
- var kssParameters = {};
+ var kssParms = {};
// Make sure we have defaultParameters on oper
if (typeof(oper.defaultParameters) == 'undefined') {
oper.defaultParameters = {};
@@ -520,8 +520,8 @@
for (var key in this.parms) {
var kssvalue = this.parms[key];
if (key.match(/^kss/)) {
- // kssXxx parms are separated to kssParameters.
- kssvalue.evaluate(kssParameters, key, oper.node,
+ // kssXxx parms are separated to kssParms.
+ kssvalue.evaluate(kssParms, key, oper.node,
oper.defaultParameters);
} else {
// evaluate the method parms into parms
@@ -531,7 +531,7 @@
}
var anOper = oper.clone({
'parms': parms,
- 'kssParameters': kssParameters,
+ 'kssParms': kssParms,
'action': this
});
return anOper;
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/kukit/serveraction.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/kukit/serveraction.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/kukit/serveraction.js Thu Aug 16 18:45:32 2007
@@ -20,7 +20,7 @@
kukit.sa = {};
kukit.sa.ServerAction = function(name, oper) {
- this.url = oper.kssParameters.kssUrl;
+ this.url = oper.kssParms.kssUrl;
if (typeof(this.url) == 'undefined') {
this.url = name;
}
@@ -80,7 +80,7 @@
// also add the parms that result from submitting an entire form.
// This is, unlike the normal parms, is a list. Keys and values are
// added at the end of the query, without mangling names.
- var submitForm = this.oper.kssParameters.kssSubmitForm;
+ var submitForm = this.oper.kssParms.kssSubmitForm;
if (submitForm) {
for (var i=0; i
Author: gotcha
Date: Thu Aug 16 19:09:19 2007
New Revision: 45743
Modified:
kukit/kukit.js/branch/gotcha-code-cleanup/kukit/errors.js
kukit/kukit.js/branch/gotcha-code-cleanup/kukit/eventreg.js
kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kukit.js
Log:
better error messages
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/kukit/errors.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/kukit/errors.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/kukit/errors.js Thu Aug 16 19:09:19 2007
@@ -57,7 +57,7 @@
if (typeof err.number == 'number') {
// show sensible error on IE
err.toString = function () {
- return this.name + ': ' + this.message;
+ return this.name + '; ' + this.message;
};
}
return err;
@@ -91,7 +91,7 @@
;;; kukit.err.cex.prototype.__superinit__ = kukit.err.cex.prototype.__init__;
;;; kukit.err.cex.prototype.__init__ = function(name, e, command) {
;;; var kw = this.__superinit__(name, '');
-;;; kw.message = 'Command "' + command.name + '": ' + e.toString();
+;;; kw.message = 'Command [' + command.name + '] ' + e.toString();
;;; return kw;
;;; };
@@ -109,7 +109,7 @@
;;; var kw = this.__superinit__(name, message);
;;; kw.eventName = eventName;
;;; kw.eventNamespace = eventNamespace;
-;;; kw.message += ' when binding event name [' + eventName;
+;;; kw.message += ' When binding event name [' + eventName;
;;; kw.message += '] in namespace [' + eventNamespace + '].';
;;; return kw;
;;; };
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/kukit/eventreg.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/kukit/eventreg.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/kukit/eventreg.js Thu Aug 16 19:09:19 2007
@@ -743,10 +743,10 @@
;;; try {
method.call(binderInstance, p1, p2, p3, p4, p5, p6);
;;; } catch(e) {
-;;; var msg = 'Error during binding, reason: [' + e + '].';
-;;; var names = evenset.names;
+;;; var msg = e;
+;;; var names = eventSet.names;
;;; var namespace = eventSet.namespace;
-;;; kukit.E = new kukit.err.rd.EventBindError(msg ,names, namespace);
+;;; kukit.E = new kukit.err.rd.EventBindError(msg, names, namespace);
;;; throw kukit.E;
;;; }
};
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kukit.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kukit.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kukit.js Thu Aug 16 19:09:19 2007
@@ -261,7 +261,7 @@
;;; } catch(e) {
;;; // Event setup errors are logged.
;;; if (e.name == 'RuleMergeError' || e.name == 'EventBindError') {
-;;; var msg = 'Error setting up events: ' + e.toString();
+;;; var msg = 'Events setup - ' + e.toString();
;;; // Log the message
;;; kukit.logFatal(msg);
;;; // and throw it...
From reebalazs at codespeak.net Thu Aug 16 19:29:17 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Thu, 16 Aug 2007 19:29:17 +0200 (CEST)
Subject: [KSS-checkins] r45744 -
kukit/kukit.js/branch/gotcha-code-cleanup/tests
Message-ID: <20070816172917.F026F8169@code0.codespeak.net>
Author: reebalazs
Date: Thu Aug 16 19:29:15 2007
New Revision: 45744
Modified:
kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_requestmanager.js
Log:
Adjust test
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_requestmanager.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_requestmanager.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_requestmanager.js Thu Aug 16 19:29:15 2007
@@ -54,21 +54,21 @@
q.push(i3);
var i4 = new kukit.rm.RequestItem(null, 4, null, 10000, 4000);
q.push(i4);
- this.assertEquals(q.nr, 4);
+ this.assertEquals(q.count, 4);
// pop 2, 4
this.assertEquals(q.pop(i2), true);
this.assertEquals(q.pop(i4), true);
- this.assertEquals(q.nr, 2);
+ this.assertEquals(q.count, 2);
this.assertEquals(expired.length, 0);
// expire 1, 2
q.handleExpiration(12010);
- this.assertEquals(q.nr, 1);
+ this.assertEquals(q.count, 1);
this.assertEquals(expired.length, 1);
this.assertEquals(expired[0].url, 1);
// pop 1, 3
this.assertEquals(q.pop(i1), false);
this.assertEquals(q.pop(i3), true);
- this.assertEquals(q.nr, 0);
+ this.assertEquals(q.count, 0);
this.assertEquals(expired.length, 1);
};
From reebalazs at codespeak.net Thu Aug 16 19:38:11 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Thu, 16 Aug 2007 19:38:11 +0200 (CEST)
Subject: [KSS-checkins] r45745 -
kukit/kukit.js/branch/gotcha-code-cleanup/tests
Message-ID: <20070816173811.361E68166@code0.codespeak.net>
Author: reebalazs
Date: Thu Aug 16 19:38:10 2007
New Revision: 45745
Modified:
kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js
Log:
Adjust test
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js Thu Aug 16 19:38:10 2007
@@ -302,6 +302,7 @@
this.assertEquals(parser.finished, true);
this.assertListEquals(parser.args, ['a', 'b']);
+return;
txt= "(a, b c )";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.MethodArgs, src, kukit.kssp.openparent, true,
From reebalazs at codespeak.net Thu Aug 16 19:38:21 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Thu, 16 Aug 2007 19:38:21 +0200 (CEST)
Subject: [KSS-checkins] r45746 -
kukit/kukit.js/branch/gotcha-code-cleanup/tests
Message-ID: <20070816173821.DF92E8169@code0.codespeak.net>
Author: reebalazs
Date: Thu Aug 16 19:38:21 2007
New Revision: 45746
Modified:
kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js
Log:
Adjust test
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js Thu Aug 16 19:38:21 2007
@@ -302,7 +302,6 @@
this.assertEquals(parser.finished, true);
this.assertListEquals(parser.args, ['a', 'b']);
-return;
txt= "(a, b c )";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.MethodArgs, src, kukit.kssp.openparent, true,
From gotcha at codespeak.net Thu Aug 16 19:53:55 2007
From: gotcha at codespeak.net (gotcha at codespeak.net)
Date: Thu, 16 Aug 2007 19:53:55 +0200 (CEST)
Subject: [KSS-checkins] r45747 - in
kukit/kukit.js/branch/gotcha-code-cleanup: kukit tests
Message-ID: <20070816175355.787678149@code0.codespeak.net>
Author: gotcha
Date: Thu Aug 16 19:53:54 2007
New Revision: 45747
Modified:
kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kssparser.js
kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js
Log:
fix tests
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kssparser.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kssparser.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/kukit/kssparser.js Thu Aug 16 19:53:54 2007
@@ -355,7 +355,7 @@
// The previous txt must be all whitespace.
if (txt) {
;;; kukit.E = 'Wrong value : unallowed characters [' + txt + ']';
-;;; kukit.E += 'before a string.';
+;;; kukit.E += ' before a string.';
this.emitError(kukit.E);
}
// the next one must be a string.
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js Thu Aug 16 19:53:54 2007
@@ -94,31 +94,31 @@
txt= " in /* valid */ 'a string';";
src = new kukit.tk.Cursor(txt);
- this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true, 'Excess characters before the string in property value');
+ this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true, 'Wrong value : unallowed characters [in] before a string.');
txt= " 'a string' trashy;";
src = new kukit.tk.Cursor(txt);
- this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true, 'Excess characters after the property value');
+ this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true, 'Wrong value : unallowed characters after the property.');
txt= " 'a string' trashy \"trishy\";";
src = new kukit.tk.Cursor(txt);
- this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true, 'Excess characters after the property value');
+ this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true, 'Wrong value : unallowed characters after the property.');
// multiword not ok
txt= "b c";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true,
- 'Property value must be one word', 5);
+ 'Wrong value : [b c] cannot have spaces.', 5);
txt= " apples and oranges ;";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true,
- 'Property value must be one word', 25);
+ 'Wrong value : [apples and oranges] cannot have spaces.', 25);
txt= " /* comments; */ apples and /* more comments and*/ oranges ;";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true,
- 'Property value must be one word', 62);
+ 'Wrong value : [/* comments; */ apples and /* more comments and*/ oranges ;] cannot have spaces.', 62);
// in string, multiword ok even in method
txt= "'b c' ";
@@ -132,13 +132,13 @@
txt= "a'b c'";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true,
- 'Excess characters before the string in property value', 6);
+ 'Wrong value : unallowed characters after the property.', 6);
// Not ok
txt= "'a''b c'";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true,
- 'Excess characters after the property value', 8);
+ 'Wrong value : unallowed characters after the property.', 8);
};
@@ -305,12 +305,13 @@
txt= "(a, b c )";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.MethodArgs, src, kukit.kssp.openparent, true,
- 'Argument value must be one word', 9);
+ his.assertParsingError(kukit.kssp.MethodArgs, src, kukit.kssp.openparent, true,
+ 'Wrong method argument [b c] : value cannot have spaces.', 9);
txt= "(a, b 'x' )";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.MethodArgs, src, kukit.kssp.openparent, true,
- 'Expected [comma], found [string]', 11);
+ 'Unexpected token : [string] found, [comma] was expected.', 11);
};
@@ -339,7 +340,8 @@
var txt= "a:dnd-drag-toomuch(hello)";
var src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must be name or namespace-name but no more dashes, "dnd-drag-toomuch"', 25);
+ 'Wrong event selector [dnd-drag-toomuch] : qualifier should be : or :'
+ , 25);
// maybe in std css space is not allowed in the parents,
// but we tolerate it
@@ -669,11 +671,11 @@
// }
rule = parser.eventRules[0];
this.assertDictEquals(rule.parms, {});
- this.assertEquals(rule.kss_selector.isEventSelector, true);
- this.assertEquals(rule.kss_selector.css, '#calendar-previous a');
- this.assertEquals(rule.kss_selector.name, 'click');
- this.assertEquals(rule.kss_selector.namespace, null);
- this.assertEquals(rule.kss_selector.id, null);
+ this.assertEquals(rule.kssSelector.isEventSelector, true);
+ 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');
@@ -688,11 +690,11 @@
// }
rule = parser.eventRules[1];
this.assertDictEquals(rule.parms, {'delay': '2000'});
- this.assertEquals(rule.kss_selector.isEventSelector, true);
- this.assertEquals(rule.kss_selector.css, 'div#update-area');
- this.assertEquals(rule.kss_selector.name, 'timeout');
- this.assertEquals(rule.kss_selector.namespace, null);
- this.assertEquals(rule.kss_selector.id, null);
+ this.assertEquals(rule.kssSelector.isEventSelector, true);
+ 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');
@@ -707,11 +709,11 @@
// }
rule = parser.eventRules[2];
this.assertDictEquals(rule.parms, {});
- this.assertEquals(rule.kss_selector.css, '#calendar-previous a');
- this.assertEquals(rule.kss_selector.isEventSelector, true);
- this.assertEquals(rule.kss_selector.name, 'click');
- this.assertEquals(rule.kss_selector.namespace, null);
- this.assertEquals(rule.kss_selector.id, null);
+ this.assertEquals(rule.kssSelector.css, '#calendar-previous a');
+ 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');
@@ -725,11 +727,11 @@
// }
rule = parser.eventRules[3];
this.assertDictEquals(rule.parms, {});
- this.assertEquals(rule.kss_selector.css, '#calendar-previous a');
- this.assertEquals(rule.kss_selector.isEventSelector, true);
- this.assertEquals(rule.kss_selector.name, 'click');
- this.assertEquals(rule.kss_selector.namespace, null);
- this.assertEquals(rule.kss_selector.id, null);
+ this.assertEquals(rule.kssSelector.css, '#calendar-previous a');
+ 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');
@@ -744,11 +746,11 @@
// }
rule = parser.eventRules[4];
this.assertDictEquals(rule.parms, {});
- this.assertEquals(rule.kss_selector.css, '#calendar-previous a');
- this.assertEquals(rule.kss_selector.isEventSelector, true);
- this.assertEquals(rule.kss_selector.name, 'drag');
- this.assertEquals(rule.kss_selector.namespace, 'dnd');
- this.assertEquals(rule.kss_selector.id, 'shelve');
+ this.assertEquals(rule.kssSelector.css, '#calendar-previous a');
+ this.assertEquals(rule.kssSelector.isEventSelector, true);
+ this.assertEquals(rule.kssSelector.name, 'drag');
+ this.assertEquals(rule.kssSelector.namespace, 'dnd');
+ this.assertEquals(rule.kssSelector.id, 'shelve');
action = rule.actions.content['whatever'];
this.assertEquals(action.type, 'S');
this.assertEquals(action.name, 'whatever');
@@ -763,11 +765,11 @@
//}
rule = parser.eventRules[5];
this.assertDictEquals(rule.parms, {});
- this.assertEquals(rule.kss_selector.css, '#button-one');
- this.assertEquals(rule.kss_selector.isEventSelector, true);
- this.assertEquals(rule.kss_selector.name, 'click');
- this.assertEquals(rule.kss_selector.namespace, 'annoyClicker');
- this.assertEquals(rule.kss_selector.id, 'annoy-me');
+ 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.id, 'annoy-me');
action = rule.actions.content['clickedButton'];
this.assertEquals(action.type, 'S');
this.assertEquals(action.name, 'clickedButton');
@@ -783,11 +785,11 @@
//}
rule = parser.eventRules[6];
this.assertDictEquals(rule.parms, {});
- this.assertEquals(rule.kss_selector.css, 'document');
- this.assertEquals(rule.kss_selector.isMethodSelector, true);
- this.assertEquals(rule.kss_selector.name, 'annoy');
- this.assertEquals(rule.kss_selector.namespace, null);
- this.assertEquals(rule.kss_selector.id, 'annoyMe');
+ 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.id, 'annoyMe');
action = rule.actions.content['alert'];
this.assertEquals(action.type, 'C');
this.assertEquals(action.name, 'alert');
@@ -804,11 +806,11 @@
//}
rule = parser.eventRules[7];
this.assertDictEquals(rule.parms, {});
- this.assertEquals(rule.kss_selector.css, 'document');
- this.assertEquals(rule.kss_selector.isMethodSelector, true);
- this.assertEquals(rule.kss_selector.name, 'annoy');
- this.assertEquals(rule.kss_selector.namespace, 'annoyClicker');
- this.assertEquals(rule.kss_selector.id, 'annoyMe');
+ 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.id, 'annoyMe');
action = rule.actions.content['alert'];
this.assertEquals(action.type, 'C');
this.assertEquals(action.name, 'alert');
@@ -820,11 +822,11 @@
// rule 8
rule = parser.eventRules[8];
this.assertDictEquals(rule.parms, {'delay': '2000'});
- this.assertEquals(rule.kss_selector.isEventSelector, true);
- this.assertEquals(rule.kss_selector.css, 'div#update-area');
- this.assertEquals(rule.kss_selector.name, 'timeout');
- this.assertEquals(rule.kss_selector.namespace, null);
- this.assertEquals(rule.kss_selector.id, null);
+ this.assertEquals(rule.kssSelector.isEventSelector, true);
+ 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');
@@ -848,11 +850,11 @@
//}
rule = parser.eventRules[9];
this.assertDictEquals(rule.parms, {'preventdefault': 'true'});
- this.assertEquals(rule.kss_selector.css, 'document');
- this.assertEquals(rule.kss_selector.isMethodSelector, true);
- this.assertEquals(rule.kss_selector.name, 'annoy');
- this.assertEquals(rule.kss_selector.namespace, 'annoyClicker');
- this.assertEquals(rule.kss_selector.id, 'annoyMe');
+ 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.id, 'annoyMe');
action = rule.actions.content['namespaced-alert'];
this.assertEquals(action.type, 'C');
this.assertEquals(action.name, 'namespaced-alert');
@@ -871,11 +873,11 @@
rule = parser.eventRules[10];
this.assertDictEquals(rule.parms, {});
- this.assertEquals(rule.kss_selector.isEventSelector, true);
- this.assertEquals(rule.kss_selector.css, '#button_1');
- this.assertEquals(rule.kss_selector.name, 'click');
- this.assertEquals(rule.kss_selector.namespace, null);
- this.assertEquals(rule.kss_selector.id, null);
+ this.assertEquals(rule.kssSelector.isEventSelector, true);
+ 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');
@@ -897,11 +899,11 @@
rule = parser.eventRules[11];
this.assertDictEquals(rule.parms, {});
- this.assertEquals(rule.kss_selector.isEventSelector, true);
- this.assertEquals(rule.kss_selector.css, '#button_3');
- this.assertEquals(rule.kss_selector.name, 'click');
- this.assertEquals(rule.kss_selector.namespace, null);
- this.assertEquals(rule.kss_selector.id, null);
+ this.assertEquals(rule.kssSelector.isEventSelector, true);
+ 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');
From reebalazs at codespeak.net Thu Aug 16 20:05:14 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Thu, 16 Aug 2007 20:05:14 +0200 (CEST)
Subject: [KSS-checkins] r45748 -
kukit/kukit.js/branch/gotcha-code-cleanup/tests
Message-ID: <20070816180514.63818815D@code0.codespeak.net>
Author: reebalazs
Date: Thu Aug 16 20:05:13 2007
New Revision: 45748
Modified:
kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js
Log:
Adjust test
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js Thu Aug 16 20:05:13 2007
@@ -305,13 +305,12 @@
txt= "(a, b c )";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.MethodArgs, src, kukit.kssp.openparent, true,
- his.assertParsingError(kukit.kssp.MethodArgs, src, kukit.kssp.openparent, true,
- 'Wrong method argument [b c] : value cannot have spaces.', 9);
+ 'Wrong method argument [b c] : value cannot have spaces', 9);
txt= "(a, b 'x' )";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.MethodArgs, src, kukit.kssp.openparent, true,
- 'Unexpected token : [string] found, [comma] was expected.', 11);
+ 'Unexpected token : [string] found, [comma] was expected.', 11);
};
From reebalazs at codespeak.net Thu Aug 16 20:30:00 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Thu, 16 Aug 2007 20:30:00 +0200 (CEST)
Subject: [KSS-checkins] r45749 -
kukit/kukit.js/branch/gotcha-code-cleanup/tests
Message-ID: <20070816183000.9E5628166@code0.codespeak.net>
Author: reebalazs
Date: Thu Aug 16 20:29:59 2007
New Revision: 45749
Modified:
kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js
Log:
Adjust tests
Modified: kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js
==============================================================================
--- kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js (original)
+++ kukit/kukit.js/branch/gotcha-code-cleanup/tests/test_kssparser.js Thu Aug 16 20:29:59 2007
@@ -39,7 +39,7 @@
if (! a.isMethod) {
this.assertEquals(a.txt, b.txt, reason + 'text mismatch' );
} else {
- this.assertEquals(a.methodname, b.methodname, reason + 'methodname mismatch');
+ this.assertEquals(a.methodName, b.methodName, reason + 'methodName mismatch');
this.assertListEquals(a.args, b.args, reason + 'args mismatch');
}
};
@@ -118,7 +118,8 @@
txt= " /* comments; */ apples and /* more comments and*/ oranges ;";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true,
- 'Wrong value : [/* comments; */ apples and /* more comments and*/ oranges ;] cannot have spaces.', 62);
+ //'Wrong value : [/* comments; */ apples and /* more comments and*/ oranges ;] cannot have spaces.', 62);
+ 'Wrong value : [apples and oranges] cannot have spaces.', 62);
// in string, multiword ok even in method
txt= "'b c' ";
@@ -132,13 +133,13 @@
txt= "a'b c'";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true,
- 'Wrong value : unallowed characters after the property.', 6);
+ 'Wrong value : unallowed characters [a] before a string', 6);
// Not ok
txt= "'a''b c'";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValueInMethod, src, null, true,
- 'Wrong value : unallowed characters after the property.', 8);
+ 'Wrong value : unallowed characters after the property.', 6);
};
@@ -180,7 +181,7 @@
parser = new kukit.kssp.PropValue(src, null, true);
this.assertEquals(parser.finished, true);
this.assertEquals(parser.value.isMethod, true);
- this.assertEquals(parser.value.methodname, 'formVar');
+ this.assertEquals(parser.value.methodName, 'formVar');
this.assertListEquals(parser.value.args, ['x', 'y']);
// params ok
@@ -189,7 +190,7 @@
parser = new kukit.kssp.PropValue(src, null, true);
this.assertEquals(parser.finished, true);
this.assertEquals(parser.value.isMethod, true);
- this.assertEquals(parser.value.methodname, 'formVar');
+ this.assertEquals(parser.value.methodName, 'formVar');
this.assertListEquals(parser.value.args, ['x', 'y']);
//ok
@@ -198,23 +199,23 @@
parser = new kukit.kssp.PropValue(src, null, true);
this.assertEquals(parser.finished, true);
this.assertEquals(parser.value.isMethod, true);
- this.assertEquals(parser.value.methodname, 'formVar');
+ this.assertEquals(parser.value.methodName, 'formVar');
this.assertListEquals(parser.value.args, ['x', 'y']);
txt= " a formVar(x, y)";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValue, src, null, true,
- 'Method property value must have a one-word method name', 16);
+ 'Wrong value : method name [a formVar] cannot have spaces.', 16);
txt= " 'formVar'(x, y)";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValue, src, null, true,
- 'Excess characters after the property value', 16);
+ 'Wrong value : unallowed characters after the property', 16);
txt= "formVar(x, y) xxx";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.PropValue, src, null, true,
- 'Excess characters after the property value', 17);
+ 'Wrong value : unallowed characters after the property', 17);
};
this.testPropValueInPseudo = function() {
@@ -224,7 +225,7 @@
var src = new kukit.tk.Cursor(txt);
var parser = new kukit.kssp.PropValueInPseudo(src, null, true);
this.assertEquals(parser.finished, true);
- this.assertEquals(parser.value.methodname, 'b');
+ this.assertEquals(parser.value.methodName, 'b');
// multiword ok but does not finish
txt= "b c";
@@ -232,7 +233,7 @@
parser = new kukit.kssp.PropValueInPseudo(src, null, true);
this.assertEquals(parser.finished, true);
this.assertEquals(src.pos, 1);
- this.assertEquals(parser.value.methodname, 'b');
+ this.assertEquals(parser.value.methodName, 'b');
// space ok but does not finish
txt= " b";
@@ -240,7 +241,7 @@
parser = new kukit.kssp.PropValueInPseudo(src, null, true);
this.assertEquals(parser.finished, true);
this.assertEquals(src.pos, 0);
- this.assertEquals(parser.value.methodname, '');
+ this.assertEquals(parser.value.methodName, '');
// ok, does not finish
txt= "apples/* more comments and*/";
@@ -248,14 +249,14 @@
parser = new kukit.kssp.PropValueInPseudo(src, null, true);
this.assertEquals(parser.finished, true);
this.assertEquals(src.pos, 6);
- this.assertEquals(parser.value.methodname, 'apples');
+ this.assertEquals(parser.value.methodName, 'apples');
// params ok
txt= "click(x)";
src = new kukit.tk.Cursor(txt);
parser = new kukit.kssp.PropValueInPseudo(src, null, true);
this.assertEquals(parser.finished, true);
- this.assertEquals(parser.value.methodname, 'click');
+ this.assertEquals(parser.value.methodName, 'click');
this.assertListEquals(parser.value.args, ['x']);
// more then 1 args not ok (but we check it only from kss selector)
@@ -357,13 +358,13 @@
txt= " a div#id:drag (hello)";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 25);
+ 'Wrong event selector : missing event qualifier : or :().', 25);
// We do not allow space here
txt= " a div#id: drag(hello)";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 23);
+ 'Wrong event selector : missing event qualifier : or :().', 23);
txt= "a div#id:drop ";
src = new kukit.tk.Cursor(txt);
@@ -398,34 +399,34 @@
txt= "a:drop('hello', bello)";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss pseudo value must not have more then one parms', 22);
+ 'Wrong event selector ::() can have only one parameter.', 22);
// zero params: not std css but tolerated
txt= "a:drop()";
src = new kukit.tk.Cursor(txt);
parser = new kukit.kssp.KssSelector(src, null, true);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 8);
+ 'Wrong event selector : missing event qualifier : or :().', 8);
txt= " (hello)";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 10);
+ 'Wrong event selector : missing event qualifier : or :().', 10);
txt= "hello ('bello')";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 16);
+ 'Wrong event selector : missing event qualifier : or :().', 16);
txt= "a:lang(hu) (hello)";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 19);
+ 'Wrong event selector : missing event qualifier : or :().', 19);
txt= "a:lang(hu) b (hello)";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 20);
+ 'Wrong event selector : missing event qualifier : or :().', 20);
// A valid attr selector in the css selector part.
txt= "a[href=hello].class:lang(hu) div#id:click ";
@@ -450,7 +451,7 @@
txt= " a:lang(hu) click ";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 20);
+ 'Wrong event selector : missing event qualifier : or :().', 20);
// Spaces in the end
txt= " a:lang(hu, uh) b:click ";
@@ -498,22 +499,22 @@
txt= "a:click:clack ";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 14);
+ 'Wrong event selector : missing event qualifier : or :().', 14);
txt= "a:click :clack ";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'In kss event selector no space can be before the colon', 18);
+ 'Wrong event selector : space before the colon. at row', 18);
txt= "a:click/*comment */:clack ";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 26);
+ 'Wrong event selector : missing event qualifier : or :().', 26);
txt= "click/*comment here*/:clack ";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 28);
+ 'Wrong event selector : missing event qualifier : or :().', 28);
txt= "/*comment here*/click:clack ";
src = new kukit.tk.Cursor(txt);
@@ -555,12 +556,12 @@
txt= "document";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must end with an event qualifier :event or :event(id)', 8);
+ 'Wrong event selector : missing event qualifier : or :().', 8);
txt= "document: ";
src = new kukit.tk.Cursor(txt);
this.assertParsingError(kukit.kssp.KssSelector, src, null, true,
- 'Kss event selector must have a one-word name after the colon', 10);
+ 'Wrong event selector : event name cannot have spaces. at row', 10);
// also, "behaviour:" works
txt= " behaviour:click(hello) ";
From gotcha at codespeak.net Thu Aug 16 20:56:34 2007
From: gotcha at codespeak.net (gotcha at codespeak.net)
Date: Thu, 16 Aug 2007 20:56:34 +0200 (CEST)
Subject: [KSS-checkins] r45751 -
kukit/kukit.js/branch/gotcha-code-cleanup/kukit
Message-ID: <20070816185634.651D5816F@code0.codespeak.net>
Author: gotcha
Date: Thu Aug 16 20:56:33 2007
New Revision: 45751
Modified:
kukit/ku