diff --git a/kis.js b/kis.js
index e7c1489..b6d4666 100644
--- a/kis.js
+++ b/kis.js
@@ -64,20 +64,23 @@
*/
$_ = function(sel)
{
+ // Make a copy before adding properties
+ var self = dcopy($_);
+
//Get the DOM objects from the selector
sel = $(sel);
-
+
//Have window be default selector, just in case
if(typeof sel === "undefined")
{
- sel = (typeof $_.el !== "undefined")
- ? $_.el
+ sel = (typeof self.el !== "undefined")
+ ? self.el
: window;
}
- $_.el = sel;
+ self.el = sel;
- return dcopy($_);
+ return self;
};
/**
diff --git a/tests/index.html b/tests/index.html
index 479a687..a522980 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -11,7 +11,10 @@
- test markup, will be hidden
+
+ test markup, will be hidden
+
+
diff --git a/tests/tests.js b/tests/tests.js
index 5b70da1..59458eb 100644
--- a/tests/tests.js
+++ b/tests/tests.js
@@ -33,4 +33,42 @@
module("ajax");
+
+ // --------------------------------------------------------------------------
+
+ module("events");
+
+ test("Browser expando support", function() {
+ expect(3);
+ // kis-js events uses expando properties to store event listeners
+ // If this test fails, the event module will likely fail as well
+ var ele = document.createElement("div");
+ ele.expando = {a:5, b:"c", c: function cool(){return ele}};
+ equals(ele.expando.a, 5);
+ equals(ele.expando.b, "c");
+ equals(ele.expando.c(), ele,
+ "Closure isn't broken by being assigned to an expando property");
+ });
+
+ // --------------------------------------------------------------------------
+
+ module("dom");
+
+ test("Add/Remove Class", function() {
+ expect(4);
+ var $test = $_("#testSpan");
+ var ele = $test.el;
+
+ $test.dom.addClass("coolClass");
+ equals(ele.className, "coolClass");
+
+ $test.dom.addClass("anotherClass");
+ equals(ele.className, "coolClass anotherClass");
+
+ $test.dom.removeClass("coolClass");
+ equals(ele.className, "anotherClass");
+
+ $test.dom.removeClass("anotherClass");
+ ok(ele.className === undefined || ele.className === "", "testSpan.className is empty");
+ });
}());
\ No newline at end of file