You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ma...@apache.org on 2012/03/02 22:23:25 UTC

spec commit: Adding Media class tests to autotest

Updated Branches:
  refs/heads/master ac46f7771 -> ad54f6a30


Adding Media class tests to autotest


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/commit/ad54f6a3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/tree/ad54f6a3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/diff/ad54f6a3

Branch: refs/heads/master
Commit: ad54f6a30ff6299bcd96095193d46e4afdc87e4c
Parents: ac46f77
Author: macdonst <si...@gmail.com>
Authored: Fri Mar 2 16:23:11 2012 -0500
Committer: macdonst <si...@gmail.com>
Committed: Fri Mar 2 16:23:11 2012 -0500

----------------------------------------------------------------------
 autotest/index.html           |    1 +
 autotest/tests/media.tests.js |  142 ++++++++++++++++++++++++++++++-----
 2 files changed, 122 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/blob/ad54f6a3/autotest/index.html
----------------------------------------------------------------------
diff --git a/autotest/index.html b/autotest/index.html
index 5349bda..5225946 100755
--- a/autotest/index.html
+++ b/autotest/index.html
@@ -26,6 +26,7 @@
     <script type="text/javascript" src="tests/device.tests.js"></script>
     <script type="text/javascript" src="tests/file.tests.js"></script>
     <script type="text/javascript" src="tests/geolocation.tests.js"></script>
+    <script type="text/javascript" src="tests/media.tests.js"></script>
     <script type="text/javascript" src="tests/network.tests.js"></script>
     <script type="text/javascript" src="tests/notification.tests.js"></script>
     <script type="text/javascript" src="tests/orientation.tests.js"></script>

http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/blob/ad54f6a3/autotest/tests/media.tests.js
----------------------------------------------------------------------
diff --git a/autotest/tests/media.tests.js b/autotest/tests/media.tests.js
index 43f9b1c..f1b03ab 100644
--- a/autotest/tests/media.tests.js
+++ b/autotest/tests/media.tests.js
@@ -1,31 +1,131 @@
-//
-// @TODO Update to Latest HTML5 Audio Element Spec
-// @see http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#audio
-//
 Tests.prototype.MediaTests = function() {	
-	module('Media (Audio)');
+	module('Media');
 	test("should exist", function() {
   		expect(1);
-		ok(typeof Audio === "function" || typeof Audio === "object", "'Audio' should be defined as a function in global scope.");
+		ok(typeof Media === "function" || typeof Media === "object", "'Media' should be defined as a function in global scope.");
 	});
+    test("should have the following properties", function() {
+        var media1 = new Media("dummy");
+        expect(4);
+        ok(typeof media1.id != 'undefined' && media1.id != null, "'Media' should have an id property.");
+        ok(typeof media1.src != 'undefined', "'Media' should have an src property.");
+        ok(typeof media1._duration != 'undefined' && media1._duration != null, "'Media' should have an _duration property.");
+        ok(typeof media1._position != 'undefined' && media1._position != null, "'Media' should have an _position property.");
+        media1.release();
+    });
 	test("should define constants for Media errors", function() {
-		expect(5);
+		expect(6);
 		ok(MediaError != null && typeof MediaError != 'undefined', "MediaError object exists in global scope.");
-		equals(MediaError.MEDIA_ERR_ABORTED, 1, "MediaError.MEDIA_ERR_ABORTED is equal to 1.");
+        equals(MediaError.MEDIA_ERR_NONE_ACTIVE, 0, "MediaError.MEDIA_ERR_NONE_ACTIVE is equal to 0.");
+        equals(MediaError.MEDIA_ERR_ABORTED, 1, "MediaError.MEDIA_ERR_ABORTED is equal to 1.");
 		equals(MediaError.MEDIA_ERR_NETWORK, 2, "MediaError.MEDIA_ERR_NETWORK is equal to 2.");
 		equals(MediaError.MEDIA_ERR_DECODE, 3, "MediaError.MEDIA_ERR_DECODE is equal to 3.");
-		equals(MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED, 4, "MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED is equal to 4.");
-	});
-	test("should contain 'src', 'loop' and 'error' properties", function() {
-  		expect(7);
-		var audioSrc = '/test.mp3';
-		var audio = new Audio(audioSrc);
-  		ok(typeof audio == "object", "Instantiated 'Audio' object instance should be of type 'object.'");
-		ok(audio.src != null && typeof audio.src != 'undefined', "Instantiated 'Audio' object's 'src' property should not be null or undefined.");
-		ok(audio.src.indexOf(audioSrc) >= 0, "Instantiated 'Audio' object's 'src' property should match constructor parameter.");
-		ok(audio.loop != null && typeof audio.loop != 'undefined', "Instantiated 'Audio' object's 'loop' property should not be null or undefined.");
-		ok(audio.loop == false, "Instantiated 'Audio' object's 'loop' property should initially be false.");
-		ok(typeof audio.error != 'undefined', "Instantiated 'Audio' object's 'error' property should not undefined.");
-		ok(audio.error == null, "Instantiated 'Audio' object's 'error' should initially be null.");
+		equals(MediaError.MEDIA_ERR_NONE_SUPPORTED, 4, "MediaError.MEDIA_ERR_NONE_SUPPORTED is equal to 4.");
 	});
+    test("should contain a play function", function() {
+        var media1 = new Media();
+        expect(2);
+        ok(typeof media1.play != 'undefined' && media1.play != null, "Media.play should not be null.");
+        ok(typeof media1.play == 'function', "Media.play should be a function.");
+        media1.release();
+    });
+    test("should contain a stop function", function() {
+        var media1 = new Media();
+        expect(2);
+        ok(typeof media1.stop != 'undefined' && media1.stop != null, "Media.stop should not be null.");
+        ok(typeof media1.stop == 'function', "Media.stop should be a function.");
+        media1.release();
+    });
+    test("should contain a seekTo function", function() {
+        var media1 = new Media();
+        expect(2);
+        ok(typeof media1.seekTo != 'undefined' && media1.seekTo != null, "Media.seekTo should not be null.");
+        ok(typeof media1.seekTo == 'function', "Media.seekTo should be a function.");
+        media1.release();
+    });
+    test("should contain a pause function", function() {
+        var media1 = new Media();
+        expect(2);
+        ok(typeof media1.pause != 'undefined' && media1.pause != null, "Media.pause should not be null.");
+        ok(typeof media1.pause == 'function', "Media.pause should be a function.");
+        media1.release();
+    });
+    test("should contain a getDuration function", function() {
+        var media1 = new Media();
+        expect(2);
+        ok(typeof media1.getDuration != 'undefined' && media1.getDuration != null, "Media.getDuration should not be null.");
+        ok(typeof media1.getDuration == 'function', "Media.getDuration should be a function.");
+        media1.release();
+    });
+    test("should contain a getCurrentPosition function", function() {
+        var media1 = new Media();
+        expect(2);
+        ok(typeof media1.getCurrentPosition != 'undefined' && media1.getCurrentPosition != null, "Media.getCurrentPosition should not be null.");
+        ok(typeof media1.getCurrentPosition == 'function', "Media.getCurrentPosition should be a function.");
+        media1.release();
+    });
+    test("should contain a startRecord function", function() {
+        var media1 = new Media();
+        expect(2);
+        ok(typeof media1.startRecord != 'undefined' && media1.startRecord != null, "Media.startRecord should not be null.");
+        ok(typeof media1.startRecord == 'function', "Media.startRecord should be a function.");
+        media1.release();
+    });
+    test("should contain a stopRecord function", function() {
+        var media1 = new Media();
+        expect(2);
+        ok(typeof media1.stopRecord != 'undefined' && media1.stopRecord != null, "Media.stopRecord should not be null.");
+        ok(typeof media1.stopRecord == 'function', "Media.stopRecord should be a function.");
+        media1.release();
+    });
+    test("should contain a release function", function() {
+        var media1 = new Media();
+        expect(2);
+        ok(typeof media1.release != 'undefined' && media1.release != null, "Media.release should not be null.");
+        ok(typeof media1.release == 'function', "Media.release should be a function.");
+        media1.release();
+    });
+    test("should contain a setVolume function", function() {
+        var media1 = new Media();
+        expect(2);
+        ok(typeof media1.setVolume != 'undefined' && media1.setVolume != null, "Media.setVolume should not be null.");
+        ok(typeof media1.setVolume == 'function', "Media.setVolume should be a function.");
+        media1.release();
+    });
+    test("position should be set properly", function() {
+        var media1 = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
+        media1.play();
+        expect(1);
+        QUnit.stop(15000);
+        setTimeout(
+                function() {
+                    media1.getCurrentPosition(
+                        function(position) {
+                            console.log("position = " + position);
+                            ok(position >= 0.0, "position should not be -1");
+                            QUnit.start();
+                            media1.stop()
+                            media1.release();
+                        },
+                        function(e) {
+                            QUnit.start();
+                        }
+                    );
+                }
+           , 5000);
+    });
+    test("duration should be set properly", function() {
+        var media1 = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
+        media1.play();
+        expect(1);
+        QUnit.stop(15000);
+        setTimeout(
+                function() {
+                    ok(media1.getDuration() >= 0.0, "duration should not be -1");
+                    QUnit.start();
+                    media1.stop()
+                    media1.release();
+                }
+           , 5000);
+    });
 };
\ No newline at end of file