74 lines
2 KiB
Rust
74 lines
2 KiB
Rust
#![cfg(feature = "test-integration")]
|
|
|
|
use anyhow::Result;
|
|
use either::Either;
|
|
use obws::requests::{
|
|
DuplicateSceneItem, SceneItemProperties, SceneItemRender, SceneItemSpecification,
|
|
};
|
|
|
|
use common::{TEST_SCENE, TEXT_SOURCE};
|
|
|
|
mod common;
|
|
|
|
#[tokio::test]
|
|
async fn main() -> Result<()> {
|
|
let client = common::new_client().await?;
|
|
let client = client.scene_items();
|
|
|
|
let props = client
|
|
.get_scene_item_properties(Some(TEST_SCENE), Either::Left(TEXT_SOURCE))
|
|
.await?;
|
|
client
|
|
.reset_scene_item(Some(TEST_SCENE), Either::Left(TEXT_SOURCE))
|
|
.await?;
|
|
client
|
|
.set_scene_item_properties(SceneItemProperties {
|
|
scene_name: Some(TEST_SCENE),
|
|
item: Either::Left(TEXT_SOURCE),
|
|
position: Some((&props.position).into()),
|
|
rotation: Some(props.rotation),
|
|
scale: Some((&props.scale).into()),
|
|
crop: Some((&props.crop).into()),
|
|
visible: Some(props.visible),
|
|
locked: Some(props.locked),
|
|
bounds: Some((&props.bounds).into()),
|
|
})
|
|
.await?;
|
|
|
|
client
|
|
.set_scene_item_render(SceneItemRender {
|
|
scene_name: Some(TEST_SCENE),
|
|
source: TEXT_SOURCE,
|
|
render: !props.visible,
|
|
})
|
|
.await?;
|
|
client
|
|
.set_scene_item_render(SceneItemRender {
|
|
scene_name: Some(TEST_SCENE),
|
|
source: TEXT_SOURCE,
|
|
render: props.visible,
|
|
})
|
|
.await?;
|
|
|
|
let item = client
|
|
.duplicate_scene_item(DuplicateSceneItem {
|
|
from_scene: Some(TEST_SCENE),
|
|
to_scene: Some(TEST_SCENE),
|
|
item: SceneItemSpecification {
|
|
id: None,
|
|
name: Some(TEXT_SOURCE),
|
|
},
|
|
})
|
|
.await?;
|
|
client
|
|
.delete_scene_item(
|
|
Some(TEST_SCENE),
|
|
SceneItemSpecification {
|
|
id: Some(item.item.id),
|
|
name: None,
|
|
},
|
|
)
|
|
.await?;
|
|
|
|
Ok(())
|
|
}
|