added more test for utility functions. popcorn-port
authorhamidouk
Wed, 16 Nov 2011 11:40:57 +0100
branchpopcorn-port
changeset 253 95c6b77f005e
parent 252 fd84e0fb26d8
child 254 cafaa694b709
added more test for utility functions.
src/js/utils.js
unittests/tests/utils.js
--- a/src/js/utils.js	Wed Nov 16 11:20:52 2011 +0100
+++ b/src/js/utils.js	Wed Nov 16 11:40:57 2011 +0100
@@ -17,15 +17,17 @@
    a closure. This way, the 
 */   
 IriSP.wrap = function (obj, fn) {
-  return function() {
-    var args = [].slice.call(this, arguments);
-    return fn.call(obj, args);
+  return function() {    
+    var args = Array.prototype.slice.call(arguments, 0);
+    return fn.apply(obj, args);
   }
 }
 
 /* convert a time to a percentage in the media */
 IriSP.timeToPourcent = function(time, timetotal){
-	// return (parseInt(Math.round(time/timetotal*100)));
+	var time = Math.abs(time);
+  var timetotal = Math.abs(timetotal);
+  
 	return Math.floor((time/timetotal) * 100);
 };
 
--- a/unittests/tests/utils.js	Wed Nov 16 11:20:52 2011 +0100
+++ b/unittests/tests/utils.js	Wed Nov 16 11:40:57 2011 +0100
@@ -1,6 +1,29 @@
 function test_utils() {
   module("Utility function tests");
   
+  test("test a function to preserve the scope of a method in a callback", function() {
+    var obj = { a : 2};
+    obj.b = function(e, f) { 
+      equal(this.a, 2, "the scope is preserved");
+      equal(e, 1, "arg 1 passed correctly");
+      equal(f, 2, "arg 2 passed correctly");
+    };
+    
+    (IriSP.wrap(obj, obj.b))(1, 2);
+  
+  });
+  
+  test("test function to convert a ratio to a percentage", function() {
+    var time = 2;
+    var total = 3;
+    
+    equal(IriSP.timeToPourcent(2, 3), 66, "the function returns the correct result");    
+    
+    var total = -total;    
+    
+    equal(IriSP.timeToPourcent(2, 3), 66, "the function is immune to negative numbers");            
+  });
+  
   test("test function to convert from seconds to a time", function() {
     var h = 13, m = 7, s = 41;
     var t = 13 * 3600 + 7* 60 + 41;