}
@Test
public void bufferingData() {
final TestPipe pipe = new TestPipe("bufferingData");
final AtomicBoolean signalFired = new AtomicBoolean(false);
final AtomicInteger signalValue = new AtomicInteger(-1);
final AtomicReference<GstObject> signalSource = new AtomicReference<GstObject>();
final int PERCENT = 95;
Bus.BUFFERING signal = new Bus.BUFFERING() {
public void bufferingData(GstObject source, int percent) {
signalFired.set(true);
signalValue.set(percent);
signalSource.set(source);
pipe.quit();
}
};
pipe.getBus().connect(signal);
gst.gst_element_post_message(pipe.src, gst.gst_message_new_buffering(pipe.src, PERCENT));
pipe.play().run();
pipe.getBus().disconnect(signal);
pipe.dispose();
assertTrue("BUFFERING signal not received", signalFired.get());
assertEquals("Wrong percent value received for signal", PERCENT, signalValue.get());
assertEquals("Incorrect source object on signal", pipe.src, signalSource.get());
}