jay-compositor 1.15.0

The Jay compositor
use crate::it::test_error::TestResult;
use crate::it::testrun::TestRun;
use jay_config::keyboard::syms::SYM_F13;
use std::rc::Rc;

testcase!();

async fn test(run: Rc<TestRun>) -> TestResult {
    let ds = run.create_default_setup().await?;

    run.cfg.add_shortcut(ds.seat.id(), SYM_F13)?;
    run.sync().await;

    ds.kb.press(1);
    run.sync().await;
    tassert!(run.cfg.invoked_shortcuts.is_empty());

    let keymap = r#"
xkb_keymap {
    xkb_keycodes {
          <1> = 9; # ESC
    };
    xkb_types {
    };
    xkb_compatibility {
    };
    xkb_symbols {
        key <1> { [ F13 ] };
    };
};
    "#;

    let keymap = run.cfg.parse_keymap(keymap)?;
    run.cfg.set_keymap(ds.seat.id(), keymap)?;
    run.sync().await;

    ds.kb.press(1);
    run.sync().await;
    tassert!(
        run.cfg
            .invoked_shortcuts
            .contains(&(ds.seat.id(), SYM_F13.into()))
    );

    Ok(())
}