diff --git a/test/test.utils.js b/test/test.utils.js
index 03aefed..a816af8 100644
--- a/test/test.utils.js
+++ b/test/test.utils.js
@@ -19,6 +19,9 @@
  *
 */
 
+console.log("this is the fucking spec!");
+
+
 describe("utils", function () {
     var utils = require('cordova/utils');
 
@@ -55,6 +58,32 @@
         });
     });
 
+    describe("isArray",function() {
+        it("should return true for [].", function() {
+            var isArray = utils.isArray([]);
+            expect(isArray).toBe(true);
+        });
+        it("should return true for new Array().", function() {
+            var isArray = utils.isArray(new Array());
+            expect(isArray).toBe(true);
+        });
+        it("should return false for {}.", function() {
+            var isArray = utils.isArray({});
+            expect(isArray).toBe(false);
+        });
+    });
+
+    describe("isDate",function() {
+        it("should return true for new Date().", function() {
+            var isDate = utils.isDate(new Date());
+            expect(isDate).toBe(true);
+        });
+        it("should return false for {}.", function() {
+            var isDate = utils.isDate({});
+            expect(isDate).toBe(false);
+        });
+    });
+
     describe("when cloning", function () {
         it("can clone an array", function () {
             var orig = [1, 2, 3, {four: 4}, "5"];
