1
0
Fork 0
forked from wry/wry
wry/src/it/tests/t0018_click_to_active_ws.rs
2022-05-17 18:58:30 +02:00

46 lines
1.1 KiB
Rust

use {
crate::{
ifs::wl_seat::BTN_LEFT,
it::{test_error::TestResult, testrun::TestRun},
},
std::rc::Rc,
};
testcase!();
async fn test(run: Rc<TestRun>) -> TestResult {
let ds = run.create_default_setup().await?;
run.cfg.show_workspace(ds.seat.id(), "1")?;
let client = run.create_client().await?;
let win1 = client.create_window().await?;
win1.map().await?;
run.cfg.show_workspace(ds.seat.id(), "2")?;
let win2 = client.create_window().await?;
win2.map().await?;
ds.mouse.abs(&ds.connector, 0.0, 0.0);
ds.mouse.click(BTN_LEFT);
client.sync().await;
let name = ds.output.workspace.get().map(|ws| ws.name.clone());
tassert_eq!(name.as_deref(), Some("1"));
let pos = {
let rd = ds.output.render_data.borrow_mut();
rd.titles.last().map(|t| t.x1).unwrap_or(0)
};
ds.mouse.abs(&ds.connector, pos as _, 0.0);
ds.mouse.click(BTN_LEFT);
client.sync().await;
let name = ds.output.workspace.get().map(|ws| ws.name.clone());
tassert_eq!(name.as_deref(), Some("2"));
Ok(())
}