41 lines
1.3 KiB
Rust
41 lines
1.3 KiB
Rust
#![cfg(feature = "test-integration")]
|
|
|
|
use anyhow::Result;
|
|
use futures_util::{pin_mut, StreamExt};
|
|
use obws::events::{Event, EventType};
|
|
|
|
use common::TEST_MEDIA;
|
|
|
|
#[macro_use]
|
|
mod common;
|
|
|
|
#[tokio::test]
|
|
async fn main() -> Result<()> {
|
|
let client = common::new_client().await?;
|
|
let events = client.events();
|
|
let client = client.media_control();
|
|
|
|
pin_mut!(events);
|
|
|
|
client.play_pause_media(TEST_MEDIA, false).await?;
|
|
wait_for!(events, EventType::MediaPlaying { .. });
|
|
client.next_media(TEST_MEDIA).await?;
|
|
wait_for!(events, EventType::MediaNext { .. });
|
|
client.previous_media(TEST_MEDIA).await?;
|
|
wait_for!(events, EventType::MediaPrevious { .. });
|
|
client.play_pause_media(TEST_MEDIA, true).await?;
|
|
wait_for!(events, EventType::MediaPaused { .. });
|
|
|
|
let duration = client.get_media_duration(TEST_MEDIA).await?;
|
|
client.set_media_time(TEST_MEDIA, duration / 2).await?;
|
|
client.get_media_time(TEST_MEDIA).await?;
|
|
client.scrub_media(TEST_MEDIA, duration / 4).await?;
|
|
client.get_media_state(TEST_MEDIA).await?;
|
|
|
|
client.restart_media(TEST_MEDIA).await?;
|
|
wait_for!(events, EventType::MediaRestarted { .. });
|
|
client.stop_media(TEST_MEDIA).await?;
|
|
wait_for!(events, EventType::MediaStopped { .. });
|
|
|
|
Ok(())
|
|
}
|