X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bindings%2Fjava%2Fcore%2Fsrc%2Ftest%2Fjava%2Forg%2Fvideolan%2Fjvlc%2Finternal%2FMediaListPlayerTest.java;h=bad81380fc8413134dd351d7b9b28c758aa5fdd2;hb=39511f2b9c05cbefde171b0fc70ac2f45db5e972;hp=4061e6e74bf1188b387aa32feba9dacdd72d396f;hpb=bf1292e44390c6469483cea3817d6c2a3dbd811c;p=vlc diff --git a/bindings/java/core/src/test/java/org/videolan/jvlc/internal/MediaListPlayerTest.java b/bindings/java/core/src/test/java/org/videolan/jvlc/internal/MediaListPlayerTest.java index 4061e6e74b..bad81380fc 100644 --- a/bindings/java/core/src/test/java/org/videolan/jvlc/internal/MediaListPlayerTest.java +++ b/bindings/java/core/src/test/java/org/videolan/jvlc/internal/MediaListPlayerTest.java @@ -28,9 +28,7 @@ package org.videolan.jvlc.internal; import junit.framework.Assert; import org.junit.After; -import org.junit.Before; import org.junit.Test; -import org.videolan.jvlc.internal.LibVlc.LibVlcInstance; import org.videolan.jvlc.internal.LibVlc.LibVlcMediaDescriptor; import org.videolan.jvlc.internal.LibVlc.LibVlcMediaInstance; import org.videolan.jvlc.internal.LibVlc.LibVlcMediaList; @@ -38,29 +36,10 @@ import org.videolan.jvlc.internal.LibVlc.LibVlcMediaListPlayer; import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t; -public class MediaListPlayerTest +public class MediaListPlayerTest extends AbstractVLCInternalTest { - private LibVlc libvlc = LibVlc.SYNC_INSTANCE; - - private LibVlcInstance libvlcInstance; - - private String mrl = this.getClass().getResource("/raffa_voice.ogg").getPath(); - - @Before - public void testSetup() throws Exception - { - libvlc_exception_t exception = new libvlc_exception_t(); - libvlcInstance = libvlc.libvlc_new(0, new String[]{"-vvv","-I","dummy","--aout=dummy","--vout=dummy"}, exception); - // use the following line to use your audio card. - // libvlcInstance = libvlc.libvlc_new(0, new String[]{}, exception); - } - - @After - public void tearDown() - { - libvlc.libvlc_release(libvlcInstance); - } + private LibVlcMediaListPlayer current; @Test public void mediaListPlayerNewTest() @@ -69,6 +48,7 @@ public class MediaListPlayerTest LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception); Assert.assertNotNull(mediaListPlayer); Assert.assertEquals(0, exception.raised); + libvlc.libvlc_media_list_player_release(mediaListPlayer); } @Test @@ -79,6 +59,8 @@ public class MediaListPlayerTest LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception); libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception); Assert.assertEquals(0, exception.raised); + libvlc.libvlc_media_list_release(mediaList); + libvlc.libvlc_media_list_player_release(mediaListPlayer); } @Test @@ -91,6 +73,8 @@ public class MediaListPlayerTest libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception); libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception); Assert.assertEquals(0, exception.raised); + libvlc.libvlc_media_list_release(mediaList); + libvlc.libvlc_media_list_player_release(mediaListPlayer); } @Test @@ -101,6 +85,7 @@ public class MediaListPlayerTest int result = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception); Assert.assertEquals(0, result); Assert.assertEquals(0, exception.raised); + libvlc.libvlc_media_list_player_release(mediaListPlayer); } @Test @@ -110,22 +95,27 @@ public class MediaListPlayerTest LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception); libvlc.libvlc_media_list_player_play(mediaListPlayer, exception); Assert.assertEquals(1, exception.raised); + libvlc.libvlc_media_list_player_release(mediaListPlayer); } /** * this fails: see https://trac.videolan.org/vlc/ticket/1527 */ -// @Test + @Test public void mediaListPlayerPlay() { libvlc_exception_t exception = new libvlc_exception_t(); LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception); + current = mediaListPlayer; LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception); LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception); libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception); libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception); libvlc.libvlc_media_list_player_play(mediaListPlayer, exception); Assert.assertEquals("Exception message: " + exception.message + ".\n", 0, exception.raised); + libvlc.libvlc_media_release(mediaDescriptor); + libvlc.libvlc_media_list_release(mediaList); + libvlc.libvlc_media_list_player_release(mediaListPlayer); } @Test @@ -152,7 +142,14 @@ public class MediaListPlayerTest Thread.sleep(150); } libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception); - + while (libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception) != LibVlcState.libvlc_Ended + .ordinal()) + { + Thread.sleep(100); + } + libvlc.libvlc_media_release(mediaDescriptor); + libvlc.libvlc_media_list_release(mediaList); + libvlc.libvlc_media_list_player_release(mediaListPlayer); } @Test @@ -179,24 +176,24 @@ public class MediaListPlayerTest } Thread.sleep(150); } - // FIXME give stats the time to run... there's probably a race condition in misc/stats.c:259 that - // needs to be fixed Thread.sleep(400); libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception); + libvlc.libvlc_media_list_release(mediaList); libvlc.libvlc_media_list_player_release(mediaListPlayer); } @Test - public void mediaListPlayerGetStateStopped() + public void mediaListPlayerGetStateEnded() { libvlc_exception_t exception = new libvlc_exception_t(); LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception); int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception); - Assert.assertEquals(LibVlcState.libvlc_Stopped.ordinal(), state); + Assert.assertEquals(LibVlcState.libvlc_Ended.ordinal(), state); + libvlc.libvlc_media_list_player_release(mediaListPlayer); } @Test - public void mediaListPlayerPause() throws Exception + public void mediaLtistPlayerPause() throws Exception { libvlc_exception_t exception = new libvlc_exception_t(); LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception); @@ -211,7 +208,7 @@ public class MediaListPlayerTest if (exception.raised == 1) { throw new RuntimeException("Native exception thrown"); - } + } if (playing == 1) { break; @@ -219,27 +216,18 @@ public class MediaListPlayerTest Thread.sleep(150); } libvlc.libvlc_media_list_player_pause(mediaListPlayer, exception); - Assert.assertEquals(0, exception.raised); - while (true) - { - int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception); - if (exception.raised == 1) - { - throw new RuntimeException("Native exception thrown"); - } - if (playing == 0) - { - break; - } - Thread.sleep(150); - } + int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception); - Assert.assertEquals("Expected state: " + LibVlcState.libvlc_Paused +".\n", LibVlcState.libvlc_Paused.ordinal(), state); + Assert.assertEquals(exception.message, 0, exception.raised); + Assert.assertEquals( + "Expected state: " + LibVlcState.libvlc_Paused + ".\n", + LibVlcState.libvlc_Paused.ordinal(), + state); libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception); + libvlc.libvlc_media_list_release(mediaList); libvlc.libvlc_media_list_player_release(mediaListPlayer); } - @Test public void mediaListPlayerSetMediaInstance() { @@ -250,7 +238,7 @@ public class MediaListPlayerTest libvlc.libvlc_media_list_player_set_media_player(mediaListPlayer, mi, exception); Assert.assertEquals(0, exception.raised); } - + @Test public void mediaListPlayerNextNoItems() { @@ -259,11 +247,11 @@ public class MediaListPlayerTest libvlc.libvlc_media_list_player_next(mediaListPlayer, exception); Assert.assertEquals(1, exception.raised); } - + /** * fails, see https://trac.videolan.org/vlc/ticket/1535 */ -// @Test + // @Test public void mediaListPlayerNext() throws Exception { libvlc_exception_t exception = new libvlc_exception_t(); @@ -277,6 +265,7 @@ public class MediaListPlayerTest Thread.sleep(150); libvlc.libvlc_media_list_player_next(mediaListPlayer, exception); Assert.assertEquals(0, exception.raised); + libvlc.libvlc_media_list_release(mediaList); } @Test @@ -292,18 +281,15 @@ public class MediaListPlayerTest while (true) { - int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception); + int playing = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception); Assert.assertEquals(0, exception.raised); - if (playing == 1) + if (playing == LibVlcState.libvlc_Playing.ordinal()) { break; } Thread.sleep(150); } - Assert.assertEquals("Expected state: " + LibVlcState.libvlc_Playing +".\n", LibVlcState.libvlc_Playing.ordinal(), libvlc.libvlc_media_list_player_get_state( - mediaListPlayer, - exception)); - + libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception); while (true) { @@ -315,11 +301,33 @@ public class MediaListPlayerTest } Thread.sleep(150); } - Assert.assertEquals(LibVlcState.libvlc_Stopped.ordinal(), libvlc.libvlc_media_list_player_get_state( + Assert.assertEquals(LibVlcState.libvlc_Ended.ordinal(), libvlc.libvlc_media_list_player_get_state( mediaListPlayer, exception)); + libvlc.libvlc_media_list_release(mediaList); } - + @Override + @After + public void tearDown() + { + if (current != null) + { + libvlc.libvlc_media_list_player_stop(current, exception); + while (libvlc.libvlc_media_list_player_get_state(current, exception) != LibVlcState.libvlc_Ended.ordinal()) + { + try + { + Thread.sleep(100); + } + catch (InterruptedException e) + { + // + } + } + } + current = null; + super.tearDown(); + } }