mirror of
				https://github.com/bigskysoftware/htmx.git
				synced 2025-11-03 23:13:37 +00:00 
			
		
		
		
	Clean up parameter inclusion logic and update demos to use GET where appropriate, rather than hiding from my bad design choices
Add API test + fixes and update all files
This commit is contained in:
		
							parent
							
								
									0c4cf79269
								
							
						
					
					
						commit
						5f9f1940b1
					
				
							
								
								
									
										62
									
								
								dist/kutty.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										62
									
								
								dist/kutty.js
									
									
									
									
										vendored
									
									
								
							@ -158,6 +158,15 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
            sheet.insertRule(rule, sheet.cssRules.length);
 | 
					            sheet.insertRule(rule, sheet.cssRules.length);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        function mergeObjects(obj1, obj2) {
 | 
				
			||||||
 | 
					            for (var key in obj2) {
 | 
				
			||||||
 | 
					                if (obj2.hasOwnProperty(key)) {
 | 
				
			||||||
 | 
					                    obj1[key] = obj2[key];
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            return obj1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //==========================================================================================
 | 
					        //==========================================================================================
 | 
				
			||||||
        // public API
 | 
					        // public API
 | 
				
			||||||
        //==========================================================================================
 | 
					        //==========================================================================================
 | 
				
			||||||
@ -167,9 +176,10 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onLoadHelper(callback) {
 | 
					        function onLoadHelper(callback) {
 | 
				
			||||||
            kutty.on("load.kutty", function(evt) {
 | 
					            var value = kutty.on("load.kutty", function(evt) {
 | 
				
			||||||
                callback(evt.detail.elt);
 | 
					                callback(evt.detail.elt);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					            return value;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function logAll(){
 | 
					        function logAll(){
 | 
				
			||||||
@ -182,17 +192,17 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        function find(eltOrSelector, selector) {
 | 
					        function find(eltOrSelector, selector) {
 | 
				
			||||||
            if (selector) {
 | 
					            if (selector) {
 | 
				
			||||||
                eltOrSelector.querySelector(eltOrSelector);
 | 
					                return eltOrSelector.querySelector(selector);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                getDocument().body.querySelector(eltOrSelector);
 | 
					                return getDocument().body.querySelector(eltOrSelector);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function findAll(eltOrSelector, selector) {
 | 
					        function findAll(eltOrSelector, selector) {
 | 
				
			||||||
            if (selector) {
 | 
					            if (selector) {
 | 
				
			||||||
                eltOrSelector.querySelectorAll(eltOrSelector);
 | 
					                return eltOrSelector.querySelectorAll(selector);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                getDocument().body.querySelectorAll(eltOrSelector);
 | 
					                return getDocument().body.querySelectorAll(eltOrSelector);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -212,7 +222,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function removeClassFromElement(elt, clazz) {
 | 
					        function removeClassFromElement(elt, clazz, delay) {
 | 
				
			||||||
            if (delay) {
 | 
					            if (delay) {
 | 
				
			||||||
                setTimeout(function(){removeClassFromElement(elt, clazz);}, delay)
 | 
					                setTimeout(function(){removeClassFromElement(elt, clazz);}, delay)
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
@ -225,7 +235,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function takeClassForElement(elt, clazz) {
 | 
					        function takeClassForElement(elt, clazz) {
 | 
				
			||||||
            forEach(elt.parent.children, function(child){
 | 
					            forEach(elt.parentElement.children, function(child){
 | 
				
			||||||
                removeClassFromElement(child, clazz);
 | 
					                removeClassFromElement(child, clazz);
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            addClassToElement(elt, clazz);
 | 
					            addClassToElement(elt, clazz);
 | 
				
			||||||
@ -254,23 +264,22 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function addKuttyEventListener(arg1, arg2, arg3) {
 | 
					        function addKuttyEventListener(arg1, arg2, arg3) {
 | 
				
			||||||
            var eventArgs = processEventArgs(arg1, arg2, arg3);
 | 
					 | 
				
			||||||
            ready(function(){
 | 
					            ready(function(){
 | 
				
			||||||
 | 
					                var eventArgs = processEventArgs(arg1, arg2, arg3);
 | 
				
			||||||
                eventArgs.target.addEventListener(eventArgs.event, eventArgs.listener);
 | 
					                eventArgs.target.addEventListener(eventArgs.event, eventArgs.listener);
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            return eventArgs.listener;
 | 
					            var b = isFunction(arg2);
 | 
				
			||||||
 | 
					            return b ? arg2 : arg3;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function removeKuttyEventListener(arg1, arg2, arg3) {
 | 
					        function removeKuttyEventListener(arg1, arg2, arg3) {
 | 
				
			||||||
            var eventArgs = processEventArgs(arg1, arg2, arg3);
 | 
					 | 
				
			||||||
            ready(function(){
 | 
					            ready(function(){
 | 
				
			||||||
                eventArgs.target.addEventListener(eventArgs.event, eventArgs.listener);
 | 
					                var eventArgs = processEventArgs(arg1, arg2, arg3);
 | 
				
			||||||
 | 
					                eventArgs.target.removeEventListener(eventArgs.event, eventArgs.listener);
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            return eventArgs.listener;
 | 
					            return isFunction(arg2) ? arg2 : arg3;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //====================================================================
 | 
					        //====================================================================
 | 
				
			||||||
        // Node processing
 | 
					        // Node processing
 | 
				
			||||||
        //====================================================================
 | 
					        //====================================================================
 | 
				
			||||||
@ -281,6 +290,8 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
                var targetStr = getRawAttribute(explicitTarget, "kt-target");
 | 
					                var targetStr = getRawAttribute(explicitTarget, "kt-target");
 | 
				
			||||||
                if (targetStr === "this") {
 | 
					                if (targetStr === "this") {
 | 
				
			||||||
                    return explicitTarget;
 | 
					                    return explicitTarget;
 | 
				
			||||||
 | 
					                } else if (targetStr.indexOf("closest ") === 0) {
 | 
				
			||||||
 | 
					                    return closest(elt, targetStr.substr(8));
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    return getDocument().querySelector(targetStr);
 | 
					                    return getDocument().querySelector(targetStr);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@ -545,7 +556,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        function isLocalLink(elt) {
 | 
					        function isLocalLink(elt) {
 | 
				
			||||||
            return location.hostname === elt.hostname &&
 | 
					            return location.hostname === elt.hostname &&
 | 
				
			||||||
                getRawAttribute(elt,'href') &&
 | 
					                getRawAttribute(elt,'href') &&
 | 
				
			||||||
                !getRawAttribute(elt,'href').startsWith("#")
 | 
					                getRawAttribute(elt,'href').indexOf("#") !== 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function boostElement(elt, nodeData, triggerSpec) {
 | 
					        function boostElement(elt, nodeData, triggerSpec) {
 | 
				
			||||||
@ -760,7 +771,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function triggerErrorEvent(elt, eventName, detail) {
 | 
					        function triggerErrorEvent(elt, eventName, detail) {
 | 
				
			||||||
            triggerEvent(elt, eventName, Object.assign({isError:true}, details));
 | 
					            triggerEvent(elt, eventName, mergeObjects({isError:true}, detail));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function triggerEvent(elt, eventName, detail) {
 | 
					        function triggerEvent(elt, eventName, detail) {
 | 
				
			||||||
@ -947,7 +958,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function getInputValues(elt) {
 | 
					        function getInputValues(elt, verb) {
 | 
				
			||||||
            var processed = [];
 | 
					            var processed = [];
 | 
				
			||||||
            var values = {};
 | 
					            var values = {};
 | 
				
			||||||
            // include the element itself
 | 
					            // include the element itself
 | 
				
			||||||
@ -962,8 +973,10 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
                });
 | 
					                });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // include the closest form
 | 
					            // for a non-GET include the closest form
 | 
				
			||||||
            processInputValue(processed, values, closest(elt, 'form'));
 | 
					            if (verb !== 'get') {
 | 
				
			||||||
 | 
					                processInputValue(processed, values, closest(elt, 'form'));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            return values;
 | 
					            return values;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1042,12 +1055,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
                    return newValues;
 | 
					                    return newValues;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                // By default GETs do not include parameters
 | 
					                return inputValues;
 | 
				
			||||||
                if (verb === 'get') {
 | 
					 | 
				
			||||||
                    return {};
 | 
					 | 
				
			||||||
                } else {
 | 
					 | 
				
			||||||
                    return inputValues;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1203,7 +1211,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
                            };
 | 
					                            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            if (swapSpec.swapDelay > 0) {
 | 
					                            if (swapSpec.swapDelay > 0) {
 | 
				
			||||||
                                setTimeout(doSwap, parseInterval(swapSpec.swapDelay))
 | 
					                                setTimeout(doSwap, swapSpec.swapDelay)
 | 
				
			||||||
                            } else {
 | 
					                            } else {
 | 
				
			||||||
                                doSwap();
 | 
					                                doSwap();
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
@ -1252,7 +1260,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
            var element = getDocument().querySelector('meta[name="kutty-config"]');
 | 
					            var element = getDocument().querySelector('meta[name="kutty-config"]');
 | 
				
			||||||
            if (element) {
 | 
					            if (element) {
 | 
				
			||||||
                var source = JSON.parse(element.content);
 | 
					                var source = JSON.parse(element.content);
 | 
				
			||||||
                kutty.config = Object.assign(kutty.config , source)
 | 
					                kutty.config = mergeObjects(kutty.config , source)
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								dist/kutty.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/kutty.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								dist/kutty.min.js.gz
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								dist/kutty.min.js.gz
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										18
									
								
								src/kutty.js
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/kutty.js
									
									
									
									
									
								
							@ -176,9 +176,10 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onLoadHelper(callback) {
 | 
					        function onLoadHelper(callback) {
 | 
				
			||||||
            kutty.on("load.kutty", function(evt) {
 | 
					            var value = kutty.on("load.kutty", function(evt) {
 | 
				
			||||||
                callback(evt.detail.elt);
 | 
					                callback(evt.detail.elt);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					            return value;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function logAll(){
 | 
					        function logAll(){
 | 
				
			||||||
@ -191,17 +192,17 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        function find(eltOrSelector, selector) {
 | 
					        function find(eltOrSelector, selector) {
 | 
				
			||||||
            if (selector) {
 | 
					            if (selector) {
 | 
				
			||||||
                eltOrSelector.querySelector(eltOrSelector);
 | 
					                return eltOrSelector.querySelector(selector);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                getDocument().body.querySelector(eltOrSelector);
 | 
					                return getDocument().body.querySelector(eltOrSelector);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function findAll(eltOrSelector, selector) {
 | 
					        function findAll(eltOrSelector, selector) {
 | 
				
			||||||
            if (selector) {
 | 
					            if (selector) {
 | 
				
			||||||
                eltOrSelector.querySelectorAll(eltOrSelector);
 | 
					                return eltOrSelector.querySelectorAll(selector);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                getDocument().body.querySelectorAll(eltOrSelector);
 | 
					                return getDocument().body.querySelectorAll(eltOrSelector);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -221,7 +222,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function removeClassFromElement(elt, clazz) {
 | 
					        function removeClassFromElement(elt, clazz, delay) {
 | 
				
			||||||
            if (delay) {
 | 
					            if (delay) {
 | 
				
			||||||
                setTimeout(function(){removeClassFromElement(elt, clazz);}, delay)
 | 
					                setTimeout(function(){removeClassFromElement(elt, clazz);}, delay)
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
@ -234,7 +235,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function takeClassForElement(elt, clazz) {
 | 
					        function takeClassForElement(elt, clazz) {
 | 
				
			||||||
            forEach(elt.parent.children, function(child){
 | 
					            forEach(elt.parentElement.children, function(child){
 | 
				
			||||||
                removeClassFromElement(child, clazz);
 | 
					                removeClassFromElement(child, clazz);
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            addClassToElement(elt, clazz);
 | 
					            addClassToElement(elt, clazz);
 | 
				
			||||||
@ -267,7 +268,8 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
                var eventArgs = processEventArgs(arg1, arg2, arg3);
 | 
					                var eventArgs = processEventArgs(arg1, arg2, arg3);
 | 
				
			||||||
                eventArgs.target.addEventListener(eventArgs.event, eventArgs.listener);
 | 
					                eventArgs.target.addEventListener(eventArgs.event, eventArgs.listener);
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            return isFunction(arg2) ? arg2 : arg3;
 | 
					            var b = isFunction(arg2);
 | 
				
			||||||
 | 
					            return b ? arg2 : arg3;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function removeKuttyEventListener(arg1, arg2, arg3) {
 | 
					        function removeKuttyEventListener(arg1, arg2, arg3) {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										161
									
								
								test/core/api.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								test/core/api.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,161 @@
 | 
				
			|||||||
 | 
					describe("Core kutty API test", function(){
 | 
				
			||||||
 | 
					    beforeEach(function() {
 | 
				
			||||||
 | 
					        this.server = makeServer();
 | 
				
			||||||
 | 
					        clearWorkArea();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    afterEach(function()  {
 | 
				
			||||||
 | 
					        this.server.restore();
 | 
				
			||||||
 | 
					        clearWorkArea();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('version is correct', function(){
 | 
				
			||||||
 | 
					      kutty.version.should.equal("0.0.1");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('onLoad is called... onLoad', function(){
 | 
				
			||||||
 | 
					        // also tests on/off
 | 
				
			||||||
 | 
					        this.server.respondWith("GET", "/test", "<div id='d1' kt-get='/test'></div>")
 | 
				
			||||||
 | 
					        var helper = kutty.onLoad(function (elt) {
 | 
				
			||||||
 | 
					            elt.setAttribute("foo", "bar");
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            var div = make("<div id='d1' kt-get='/test' kt-swap='outerHTML'></div>");
 | 
				
			||||||
 | 
					            div.click();
 | 
				
			||||||
 | 
					            this.server.respond();
 | 
				
			||||||
 | 
					            byId("d1").getAttribute("foo").should.equal("bar");
 | 
				
			||||||
 | 
					        } finally {
 | 
				
			||||||
 | 
					            kutty.off("load.kutty", helper);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('triggers properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div/>");
 | 
				
			||||||
 | 
					        var myEventCalled = false;
 | 
				
			||||||
 | 
					        var detailStr = "";
 | 
				
			||||||
 | 
					        kutty.on("myEvent", function(evt){
 | 
				
			||||||
 | 
					            myEventCalled = true;
 | 
				
			||||||
 | 
					            detailStr = evt.detail.str;
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					        kutty.trigger(div, "myEvent", {str:"foo"})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        myEventCalled.should.equal(true);
 | 
				
			||||||
 | 
					        detailStr.should.equal("foo");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should find properly', function(){
 | 
				
			||||||
 | 
					        var div = make("<div id='d1' class='c1 c2'>");
 | 
				
			||||||
 | 
					        div.should.equal(kutty.find("#d1"));
 | 
				
			||||||
 | 
					        div.should.equal(kutty.find(".c1"));
 | 
				
			||||||
 | 
					        div.should.equal(kutty.find(".c2"));
 | 
				
			||||||
 | 
					        div.should.equal(kutty.find(".c1.c2"));
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should find properly from elt', function(){
 | 
				
			||||||
 | 
					        var div = make("<div><a id='a1'></a><a id='a2'></a></div>");
 | 
				
			||||||
 | 
					        kutty.find(div, "a").id.should.equal('a1');
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should find all properly', function(){
 | 
				
			||||||
 | 
					        var div = make("<div class='c1 c2 c3'><div class='c1 c2'><div class='c1'>");
 | 
				
			||||||
 | 
					        kutty.findAll(".c1").length.should.equal(3);
 | 
				
			||||||
 | 
					        kutty.findAll(".c2").length.should.equal(2);
 | 
				
			||||||
 | 
					        kutty.findAll(".c3").length.should.equal(1);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should find all properly from elt', function(){
 | 
				
			||||||
 | 
					        var div = make("<div><div class='c1 c2 c3'><div class='c1 c2'><div class='c1'></div>");
 | 
				
			||||||
 | 
					        kutty.findAll(div, ".c1").length.should.equal(3);
 | 
				
			||||||
 | 
					        kutty.findAll(div, ".c2").length.should.equal(2);
 | 
				
			||||||
 | 
					        kutty.findAll(div,".c3").length.should.equal(1);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should find closest element properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div><a id='a1'></a><a id='a2'></a></div>");
 | 
				
			||||||
 | 
					        var a = kutty.find(div, "a");
 | 
				
			||||||
 | 
					        kutty.closest(a, "div").should.equal(div);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should remove element properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div><a></a></div>");
 | 
				
			||||||
 | 
					        var a = kutty.find(div, "a");
 | 
				
			||||||
 | 
					        kutty.remove(a);
 | 
				
			||||||
 | 
					        div.innerHTML.should.equal("");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should add class properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div></div>");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        kutty.addClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should add class properly after delay', function (done) {
 | 
				
			||||||
 | 
					        var div = make("<div></div>");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        kutty.addClass(div, "foo", 10);
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        setTimeout(function () {
 | 
				
			||||||
 | 
					            div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					            done();
 | 
				
			||||||
 | 
					        }, 20);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should remove class properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div></div>");
 | 
				
			||||||
 | 
					        kutty.addClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        kutty.removeClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should add class properly after delay', function (done) {
 | 
				
			||||||
 | 
					        var div = make("<div></div>");
 | 
				
			||||||
 | 
					        kutty.addClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        kutty.removeClass(div, "foo", 10);
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        setTimeout(function () {
 | 
				
			||||||
 | 
					            div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					            done();
 | 
				
			||||||
 | 
					        }, 20);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should toggle class properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div></div>");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        kutty.toggleClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        kutty.toggleClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should take class properly', function () {
 | 
				
			||||||
 | 
					        var div1 = make("<div></div>");
 | 
				
			||||||
 | 
					        var div2 = make("<div></div>");
 | 
				
			||||||
 | 
					        var div3 = make("<div></div>");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        div1.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div2.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div3.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        kutty.takeClass(div1, "foo");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        div1.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        div2.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div3.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        kutty.takeClass(div2, "foo");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        div1.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div2.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        div3.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        kutty.takeClass(div3, "foo");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        div1.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div2.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div3.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
@ -27,6 +27,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<!-- core tests -->
 | 
					<!-- core tests -->
 | 
				
			||||||
<script src="core/internals.js"></script>
 | 
					<script src="core/internals.js"></script>
 | 
				
			||||||
 | 
					<script src="core/api.js"></script>
 | 
				
			||||||
<script src="core/ajax.js"></script>
 | 
					<script src="core/ajax.js"></script>
 | 
				
			||||||
<script src="core/verbs.js"></script>
 | 
					<script src="core/verbs.js"></script>
 | 
				
			||||||
<script src="core/values.js"></script>
 | 
					<script src="core/values.js"></script>
 | 
				
			||||||
 | 
				
			|||||||
@ -176,9 +176,10 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onLoadHelper(callback) {
 | 
					        function onLoadHelper(callback) {
 | 
				
			||||||
            kutty.on("load.kutty", function(evt) {
 | 
					            var value = kutty.on("load.kutty", function(evt) {
 | 
				
			||||||
                callback(evt.detail.elt);
 | 
					                callback(evt.detail.elt);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					            return value;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function logAll(){
 | 
					        function logAll(){
 | 
				
			||||||
@ -191,17 +192,17 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        function find(eltOrSelector, selector) {
 | 
					        function find(eltOrSelector, selector) {
 | 
				
			||||||
            if (selector) {
 | 
					            if (selector) {
 | 
				
			||||||
                eltOrSelector.querySelector(eltOrSelector);
 | 
					                return eltOrSelector.querySelector(selector);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                getDocument().body.querySelector(eltOrSelector);
 | 
					                return getDocument().body.querySelector(eltOrSelector);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function findAll(eltOrSelector, selector) {
 | 
					        function findAll(eltOrSelector, selector) {
 | 
				
			||||||
            if (selector) {
 | 
					            if (selector) {
 | 
				
			||||||
                eltOrSelector.querySelectorAll(eltOrSelector);
 | 
					                return eltOrSelector.querySelectorAll(selector);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                getDocument().body.querySelectorAll(eltOrSelector);
 | 
					                return getDocument().body.querySelectorAll(eltOrSelector);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -221,7 +222,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function removeClassFromElement(elt, clazz) {
 | 
					        function removeClassFromElement(elt, clazz, delay) {
 | 
				
			||||||
            if (delay) {
 | 
					            if (delay) {
 | 
				
			||||||
                setTimeout(function(){removeClassFromElement(elt, clazz);}, delay)
 | 
					                setTimeout(function(){removeClassFromElement(elt, clazz);}, delay)
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
@ -234,7 +235,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function takeClassForElement(elt, clazz) {
 | 
					        function takeClassForElement(elt, clazz) {
 | 
				
			||||||
            forEach(elt.parent.children, function(child){
 | 
					            forEach(elt.parentElement.children, function(child){
 | 
				
			||||||
                removeClassFromElement(child, clazz);
 | 
					                removeClassFromElement(child, clazz);
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            addClassToElement(elt, clazz);
 | 
					            addClassToElement(elt, clazz);
 | 
				
			||||||
@ -267,7 +268,8 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
                var eventArgs = processEventArgs(arg1, arg2, arg3);
 | 
					                var eventArgs = processEventArgs(arg1, arg2, arg3);
 | 
				
			||||||
                eventArgs.target.addEventListener(eventArgs.event, eventArgs.listener);
 | 
					                eventArgs.target.addEventListener(eventArgs.event, eventArgs.listener);
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            return isFunction(arg2) ? arg2 : arg3;
 | 
					            var b = isFunction(arg2);
 | 
				
			||||||
 | 
					            return b ? arg2 : arg3;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function removeKuttyEventListener(arg1, arg2, arg3) {
 | 
					        function removeKuttyEventListener(arg1, arg2, arg3) {
 | 
				
			||||||
 | 
				
			|||||||
@ -176,9 +176,10 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onLoadHelper(callback) {
 | 
					        function onLoadHelper(callback) {
 | 
				
			||||||
            kutty.on("load.kutty", function(evt) {
 | 
					            var value = kutty.on("load.kutty", function(evt) {
 | 
				
			||||||
                callback(evt.detail.elt);
 | 
					                callback(evt.detail.elt);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					            return value;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function logAll(){
 | 
					        function logAll(){
 | 
				
			||||||
@ -191,17 +192,17 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        function find(eltOrSelector, selector) {
 | 
					        function find(eltOrSelector, selector) {
 | 
				
			||||||
            if (selector) {
 | 
					            if (selector) {
 | 
				
			||||||
                eltOrSelector.querySelector(eltOrSelector);
 | 
					                return eltOrSelector.querySelector(selector);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                getDocument().body.querySelector(eltOrSelector);
 | 
					                return getDocument().body.querySelector(eltOrSelector);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function findAll(eltOrSelector, selector) {
 | 
					        function findAll(eltOrSelector, selector) {
 | 
				
			||||||
            if (selector) {
 | 
					            if (selector) {
 | 
				
			||||||
                eltOrSelector.querySelectorAll(eltOrSelector);
 | 
					                return eltOrSelector.querySelectorAll(selector);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                getDocument().body.querySelectorAll(eltOrSelector);
 | 
					                return getDocument().body.querySelectorAll(eltOrSelector);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -221,7 +222,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function removeClassFromElement(elt, clazz) {
 | 
					        function removeClassFromElement(elt, clazz, delay) {
 | 
				
			||||||
            if (delay) {
 | 
					            if (delay) {
 | 
				
			||||||
                setTimeout(function(){removeClassFromElement(elt, clazz);}, delay)
 | 
					                setTimeout(function(){removeClassFromElement(elt, clazz);}, delay)
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
@ -234,7 +235,7 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function takeClassForElement(elt, clazz) {
 | 
					        function takeClassForElement(elt, clazz) {
 | 
				
			||||||
            forEach(elt.parent.children, function(child){
 | 
					            forEach(elt.parentElement.children, function(child){
 | 
				
			||||||
                removeClassFromElement(child, clazz);
 | 
					                removeClassFromElement(child, clazz);
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            addClassToElement(elt, clazz);
 | 
					            addClassToElement(elt, clazz);
 | 
				
			||||||
@ -267,7 +268,8 @@ var kutty = kutty || (function () {
 | 
				
			|||||||
                var eventArgs = processEventArgs(arg1, arg2, arg3);
 | 
					                var eventArgs = processEventArgs(arg1, arg2, arg3);
 | 
				
			||||||
                eventArgs.target.addEventListener(eventArgs.event, eventArgs.listener);
 | 
					                eventArgs.target.addEventListener(eventArgs.event, eventArgs.listener);
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            return isFunction(arg2) ? arg2 : arg3;
 | 
					            var b = isFunction(arg2);
 | 
				
			||||||
 | 
					            return b ? arg2 : arg3;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function removeKuttyEventListener(arg1, arg2, arg3) {
 | 
					        function removeKuttyEventListener(arg1, arg2, arg3) {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										161
									
								
								www/test/0.0.1-alpha.3/test/core/api.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								www/test/0.0.1-alpha.3/test/core/api.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,161 @@
 | 
				
			|||||||
 | 
					describe("Core kutty API test", function(){
 | 
				
			||||||
 | 
					    beforeEach(function() {
 | 
				
			||||||
 | 
					        this.server = makeServer();
 | 
				
			||||||
 | 
					        clearWorkArea();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    afterEach(function()  {
 | 
				
			||||||
 | 
					        this.server.restore();
 | 
				
			||||||
 | 
					        clearWorkArea();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('version is correct', function(){
 | 
				
			||||||
 | 
					      kutty.version.should.equal("0.0.1");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('onLoad is called... onLoad', function(){
 | 
				
			||||||
 | 
					        // also tests on/off
 | 
				
			||||||
 | 
					        this.server.respondWith("GET", "/test", "<div id='d1' kt-get='/test'></div>")
 | 
				
			||||||
 | 
					        var helper = kutty.onLoad(function (elt) {
 | 
				
			||||||
 | 
					            elt.setAttribute("foo", "bar");
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            var div = make("<div id='d1' kt-get='/test' kt-swap='outerHTML'></div>");
 | 
				
			||||||
 | 
					            div.click();
 | 
				
			||||||
 | 
					            this.server.respond();
 | 
				
			||||||
 | 
					            byId("d1").getAttribute("foo").should.equal("bar");
 | 
				
			||||||
 | 
					        } finally {
 | 
				
			||||||
 | 
					            kutty.off("load.kutty", helper);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('triggers properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div/>");
 | 
				
			||||||
 | 
					        var myEventCalled = false;
 | 
				
			||||||
 | 
					        var detailStr = "";
 | 
				
			||||||
 | 
					        kutty.on("myEvent", function(evt){
 | 
				
			||||||
 | 
					            myEventCalled = true;
 | 
				
			||||||
 | 
					            detailStr = evt.detail.str;
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					        kutty.trigger(div, "myEvent", {str:"foo"})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        myEventCalled.should.equal(true);
 | 
				
			||||||
 | 
					        detailStr.should.equal("foo");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should find properly', function(){
 | 
				
			||||||
 | 
					        var div = make("<div id='d1' class='c1 c2'>");
 | 
				
			||||||
 | 
					        div.should.equal(kutty.find("#d1"));
 | 
				
			||||||
 | 
					        div.should.equal(kutty.find(".c1"));
 | 
				
			||||||
 | 
					        div.should.equal(kutty.find(".c2"));
 | 
				
			||||||
 | 
					        div.should.equal(kutty.find(".c1.c2"));
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should find properly from elt', function(){
 | 
				
			||||||
 | 
					        var div = make("<div><a id='a1'></a><a id='a2'></a></div>");
 | 
				
			||||||
 | 
					        kutty.find(div, "a").id.should.equal('a1');
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should find all properly', function(){
 | 
				
			||||||
 | 
					        var div = make("<div class='c1 c2 c3'><div class='c1 c2'><div class='c1'>");
 | 
				
			||||||
 | 
					        kutty.findAll(".c1").length.should.equal(3);
 | 
				
			||||||
 | 
					        kutty.findAll(".c2").length.should.equal(2);
 | 
				
			||||||
 | 
					        kutty.findAll(".c3").length.should.equal(1);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should find all properly from elt', function(){
 | 
				
			||||||
 | 
					        var div = make("<div><div class='c1 c2 c3'><div class='c1 c2'><div class='c1'></div>");
 | 
				
			||||||
 | 
					        kutty.findAll(div, ".c1").length.should.equal(3);
 | 
				
			||||||
 | 
					        kutty.findAll(div, ".c2").length.should.equal(2);
 | 
				
			||||||
 | 
					        kutty.findAll(div,".c3").length.should.equal(1);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should find closest element properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div><a id='a1'></a><a id='a2'></a></div>");
 | 
				
			||||||
 | 
					        var a = kutty.find(div, "a");
 | 
				
			||||||
 | 
					        kutty.closest(a, "div").should.equal(div);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should remove element properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div><a></a></div>");
 | 
				
			||||||
 | 
					        var a = kutty.find(div, "a");
 | 
				
			||||||
 | 
					        kutty.remove(a);
 | 
				
			||||||
 | 
					        div.innerHTML.should.equal("");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should add class properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div></div>");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        kutty.addClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should add class properly after delay', function (done) {
 | 
				
			||||||
 | 
					        var div = make("<div></div>");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        kutty.addClass(div, "foo", 10);
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        setTimeout(function () {
 | 
				
			||||||
 | 
					            div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					            done();
 | 
				
			||||||
 | 
					        }, 20);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should remove class properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div></div>");
 | 
				
			||||||
 | 
					        kutty.addClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        kutty.removeClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should add class properly after delay', function (done) {
 | 
				
			||||||
 | 
					        var div = make("<div></div>");
 | 
				
			||||||
 | 
					        kutty.addClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        kutty.removeClass(div, "foo", 10);
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        setTimeout(function () {
 | 
				
			||||||
 | 
					            div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					            done();
 | 
				
			||||||
 | 
					        }, 20);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should toggle class properly', function () {
 | 
				
			||||||
 | 
					        var div = make("<div></div>");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        kutty.toggleClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        kutty.toggleClass(div, "foo");
 | 
				
			||||||
 | 
					        div.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should take class properly', function () {
 | 
				
			||||||
 | 
					        var div1 = make("<div></div>");
 | 
				
			||||||
 | 
					        var div2 = make("<div></div>");
 | 
				
			||||||
 | 
					        var div3 = make("<div></div>");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        div1.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div2.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div3.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        kutty.takeClass(div1, "foo");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        div1.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        div2.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div3.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        kutty.takeClass(div2, "foo");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        div1.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div2.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					        div3.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        kutty.takeClass(div3, "foo");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        div1.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div2.classList.contains("foo").should.equal(false);
 | 
				
			||||||
 | 
					        div3.classList.contains("foo").should.equal(true);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
@ -27,6 +27,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<!-- core tests -->
 | 
					<!-- core tests -->
 | 
				
			||||||
<script src="core/internals.js"></script>
 | 
					<script src="core/internals.js"></script>
 | 
				
			||||||
 | 
					<script src="core/api.js"></script>
 | 
				
			||||||
<script src="core/ajax.js"></script>
 | 
					<script src="core/ajax.js"></script>
 | 
				
			||||||
<script src="core/verbs.js"></script>
 | 
					<script src="core/verbs.js"></script>
 | 
				
			||||||
<script src="core/values.js"></script>
 | 
					<script src="core/values.js"></script>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user