added a function to convert a number of seconds to an hour, minutes, seconds.
--- a/src/js/utils.js Wed Nov 16 10:54:13 2011 +0100
+++ b/src/js/utils.js Wed Nov 16 11:20:52 2011 +0100
@@ -29,6 +29,16 @@
return Math.floor((time/timetotal) * 100);
};
+/* convert a number of seconds to a tuple of the form
+ [hours, minutes, seconds]
+*/
+IriSP.secondsToTime = function(secs) {
+ var hours = Math.abs(parseInt( secs / 3600 ) % 24);
+ var minutes = Math.abs(parseInt( secs / 60 ) % 60);
+ var seconds = Math.abs(secs % 60);
+
+ return [hours, minutes, seconds];
+}
/* for ie compatibility
if (Object.prototype.__defineGetter__&&!Object.defineProperty) {
Object.defineProperty=function(obj,prop,desc) {
--- a/unittests/index.html Wed Nov 16 10:54:13 2011 +0100
+++ b/unittests/index.html Wed Nov 16 11:20:52 2011 +0100
@@ -27,11 +27,12 @@
<script src="tests/serializers/JSONSerializer.js" type="text/javascript"></script>
<script src="tests/serializerFactory.js" type="text/javascript"></script>
<script src="tests/widget.js" type="text/javascript"></script>
- <script src="tests/widgets/playerWidget.js" type="text/javascript"></script>
+ <script src="tests/utils.js" type="text/javascript"></script>
+ <script src="tests/layout.js" type="text/javascript"></script>
+ <script src="tests/init.js" type="text/javascript"></script>
+ <script src="tests/widgets/playerWidget.js" type="text/javascript"></script>
<script src="tests/widgets/annotationsWidget.js" type="text/javascript"></script>
<script src="tests/widgets/segmentsWidget.js" type="text/javascript"></script>
- <script src="tests/layout.js" type="text/javascript"></script>
- <script src="tests/init.js" type="text/javascript"></script>
<script src="tests/widgets/tooltipWidget.js" type="text/javascript"></script>
<script src="tests/widgets/polemicWidget.js" type="text/javascript"></script>
<script src="tests/widgets/sliderWidget.js" type="text/javascript"></script>
@@ -42,11 +43,12 @@
IriSP.jQuery = jQuery;
test_dataloader();
- test_serializer();
+ test_serializer();
test_mockSerializer();
test_mockTweetSerializer();
test_JSONSerializer();
test_serializerFactory();
+ test_utils();
test_widget();
test_player_widget();
test_annotations_widget();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/unittests/tests/utils.js Wed Nov 16 11:20:52 2011 +0100
@@ -0,0 +1,12 @@
+function test_utils() {
+ module("Utility function tests");
+
+ 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;
+ deepEqual(IriSP.secondsToTime(t), [h, m, s], "the converted time is correct");
+
+ t = -t;
+ deepEqual(IriSP.secondsToTime(t), [h, m, s], "the function is immune to negative numbers.");
+ });
+}
\ No newline at end of file