]> git.sesse.net Git - vlc/blob - bindings/java/core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaListEventsTest.java
Add some locking.
[vlc] / bindings / java / core / src / test / java / org / videolan / jvlc / internal / LibVlcMediaListEventsTest.java
1 /*****************************************************************************
2  * LibVlcMediaListEventsTest.java: VLC Java Bindings
3  *****************************************************************************
4  * Copyright (C) 1998-2008 the VideoLAN team
5  *
6  * Authors: Filippo Carone <filippo@carone.org>
7  *
8  *
9  * $Id $
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
24  *****************************************************************************/
25
26 package org.videolan.jvlc.internal;
27
28 import junit.framework.Assert;
29
30 import org.junit.Test;
31 import org.videolan.jvlc.internal.LibVlc.LibVlcCallback;
32 import org.videolan.jvlc.internal.LibVlc.LibVlcEventManager;
33 import org.videolan.jvlc.internal.LibVlc.LibVlcMedia;
34 import org.videolan.jvlc.internal.LibVlc.LibVlcMediaList;
35 import org.videolan.jvlc.internal.LibVlc.libvlc_event_t;
36
37 import com.sun.jna.Pointer;
38
39
40 public class LibVlcMediaListEventsTest extends AbstractVLCEventTest
41 {
42     
43     @Test
44     public void itemAddedTest()
45     {
46         LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
47         LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
48         
49         LibVlcEventManager eventManager = libvlc.libvlc_media_list_event_manager(mediaList, exception);
50         LibVlcCallback callback = new LibVlc.LibVlcCallback()
51         {
52
53             public void callback(libvlc_event_t libvlc_event, Pointer userData)
54             {
55                 Assert.assertEquals(LibVlcEventType.libvlc_MediaListItemAdded.ordinal(), libvlc_event.type);
56                 eventFired = 1;
57             }
58         };
59         
60         libvlc.libvlc_event_attach(
61             eventManager,
62             LibVlcEventType.libvlc_MediaListItemAdded.ordinal(),
63             callback,
64             null,
65             exception);
66         
67         libvlc.libvlc_media_list_add_media(mediaList, media, exception);
68         Assert.assertEquals(1, eventFired);
69     }
70
71     @Test
72     public void itemDeletedTest()
73     {
74         LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
75         LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
76         
77         LibVlcEventManager eventManager = libvlc.libvlc_media_list_event_manager(mediaList, exception);
78         LibVlcCallback callback = new LibVlc.LibVlcCallback()
79         {
80
81             public void callback(libvlc_event_t libvlc_event, Pointer userData)
82             {
83                 Assert.assertEquals(LibVlcEventType.libvlc_MediaListItemDeleted.ordinal(), libvlc_event.type);
84                 eventFired = 1;
85             }
86         };
87         
88         libvlc.libvlc_event_attach(
89             eventManager,
90             LibVlcEventType.libvlc_MediaListItemDeleted.ordinal(),
91             callback,
92             null,
93             exception);
94         
95         libvlc.libvlc_media_list_add_media(mediaList, media, exception);
96         libvlc.libvlc_media_list_remove_index(mediaList, 0, exception);
97         Assert.assertEquals(1, eventFired);
98     }
99
100 }