diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
index c2288119..349b813f 100644
--- a/.github/workflows/integration.yml
+++ b/.github/workflows/integration.yml
@@ -92,6 +92,9 @@ jobs:
if: matrix.features != 'wayland' && matrix.features != 'libei_tokio' && matrix.features != 'libei_smol' && matrix.features != 'libei_tokio,wayland,xdo,x11rb'&& matrix.features != 'libei_smol,wayland,xdo,x11rb' # On Linux, the integration tests only work with X11 for now
run: cargo test integration --release --no-default-features --features ${{ matrix.features }},serde -- --test-threads=1 --nocapture --include-ignored
+ - name: Wait for input events to be done
+ run: sleep 60
+
- name: Take screenshot
if: always()
uses: ./.github/actions/screenshot
diff --git a/tests/index.html b/tests/index.html
index 48f719f8..358b8e43 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -151,10 +151,6 @@
Conducted tests
break;
}
- // 🔹 Clear the textarea after each keyup
- if (e.type === "keyup") {
- textArea.value = "";
- }
const msg = { text, event: token };
console.log("prepared message:", msg);
diff --git a/tests/integration_browser.rs b/tests/integration_browser.rs
index 644abc5a..91f21672 100644
--- a/tests/integration_browser.rs
+++ b/tests/integration_browser.rs
@@ -5,75 +5,17 @@ use enigo::{
};
mod common;
-use common::enigo_test::EnigoTest as Enigo;
#[test]
fn integration_browser_events() {
- let mut enigo = Enigo::new(&Settings::default());
+ let enigo = common::enigo_test::EnigoTest::new(&Settings::default());
+ let mut enigo = enigo::Enigo::new(&Settings::default()).unwrap();
- enigo.key(Key::UpArrow, Click).unwrap();
- enigo.key(Key::DownArrow, Click).unwrap();
+ // write text
+ enigo
+ .text("Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️Hello World! here is a lot of text ❤️")
+ .unwrap();
- // Skip on macOS because Firefox emits another "pressed" event when CapsLock is
- // released
- #[cfg(not(target_os = "macos"))]
- {
- enigo.key(Key::CapsLock, Click).unwrap();
- enigo.key(Key::CapsLock, Click).unwrap();
- }
- // Skip on macOS because Firefox does not emit an event for them or there is a
- // bug
- #[cfg(not(target_os = "macos"))]
- {
- enigo.key(Key::Numlock, Click).unwrap();
- enigo.key(Key::Numlock, Click).unwrap();
- enigo.key(Key::Help, Click).unwrap();
- }
- enigo.text("TestText❤️").unwrap();
- #[cfg(not(any(target_os = "macos", all(feature = "xdo", target_os = "linux"))))]
- // The simulation fails for these variants
- enigo.key(Key::Unicode('❤'), Click).unwrap();
- enigo.key(Key::F1, Click).unwrap();
- enigo.key(Key::Control, Click).unwrap();
- enigo.key(Key::Backspace, Click).unwrap();
- enigo.key(Key::PageUp, Click).unwrap();
-
- enigo.text("❤️TestText❤️").unwrap();
- enigo.key(Key::Backspace, Press).unwrap();
- enigo.key(Key::Backspace, Release).unwrap();
-
- // Skip when using xdo feature because xdotools doesn't properly simulate right
- // modifiers
- // https://github.com/jordansissel/xdotool/issues/487
- #[cfg(not(feature = "xdo"))]
- {
- log::debug!("Test if the left and right versions of keys can get differentiated");
- enigo.key(Key::Control, Press).unwrap();
- enigo.key(Key::Control, Release).unwrap();
- enigo.key(Key::LControl, Press).unwrap();
- enigo.key(Key::LControl, Release).unwrap();
- enigo.key(Key::RControl, Press).unwrap();
- enigo.key(Key::RControl, Release).unwrap();
- enigo.key(Key::Shift, Click).unwrap();
- enigo.key(Key::LShift, Click).unwrap();
- enigo.key(Key::RShift, Click).unwrap();
- }
-
- log::debug!("Test mouse");
- // enigo.button(Button::Left, Click).unwrap();
- enigo.move_mouse(100, 100, Abs).unwrap();
- enigo.move_mouse(200, 200, Abs).unwrap();
- let (x, y) = enigo.location().unwrap();
- assert_eq!((200, 200), (x, y));
- enigo.move_mouse(20, 20, Rel).unwrap();
- enigo.move_mouse(-20, 20, Rel).unwrap();
- enigo.move_mouse(20, -20, Rel).unwrap();
- enigo.move_mouse(-20, -20, Rel).unwrap();
-
- // Stalls on Windows, macOS and Linux with x11rb
- // enigo.scroll(1, Vertical).unwrap();
- // enigo.scroll(1, Horizontal).unwrap();
-
- enigo.main_display().unwrap();
- enigo.location().unwrap();
+ // select all
+ enigo.key(Key::Unicode('a'), Click).unwrap();
}