1
0
Evan Almloff 2 жил өмнө
parent
commit
70687748d3

+ 48 - 7
packages/desktop/headless_tests/events.rs

@@ -11,10 +11,12 @@ fn mock_event(cx: &ScopeState, id: &'static str, value: &'static str) {
     use_effect(cx, (), |_| {
         let desktop_context: DesktopContext = cx.consume_context().unwrap();
         async move {
+            tokio::time::sleep(std::time::Duration::from_millis(100)).await;
             desktop_context.eval(&format!(
                 r#"let element = document.getElementById('{}');
                 // Dispatch a synthetic event
                 const event = {};
+                console.log(element, event);
                 element.dispatchEvent(event);
                 "#,
                 id, value
@@ -103,9 +105,12 @@ fn app(cx: Scope) -> Element {
         &cx,
         "wheel_div",
         r#"new WheelEvent("wheel", {
+    view: window,
     deltaX: 1.0,
     deltaY: 2.0,
     deltaZ: 3.0,
+    deltaMode: 0x00,
+    bubbles: true,
     })"#,
     );
     // key_down_div
@@ -117,6 +122,17 @@ fn app(cx: Scope) -> Element {
     code: "KeyA",
     location: 0,
     repeat: true,
+    keyCode: 65,
+    charCode: 97,
+    char: "a",
+    charCode: 0,
+    altKey: false,
+    ctrlKey: false,
+    metaKey: false,
+    shiftKey: false,
+    isComposing: false,
+    which: 65,
+    bubbles: true,
     })"#,
     );
     // key_up_div
@@ -128,6 +144,17 @@ fn app(cx: Scope) -> Element {
     code: "KeyA",
     location: 0,
     repeat: false,
+    keyCode: 65,
+    charCode: 97,
+    char: "a",
+    charCode: 0,
+    altKey: false,
+    ctrlKey: false,
+    metaKey: false,
+    shiftKey: false,
+    isComposing: false,
+    which: 65,
+    bubbles: true,
     })"#,
     );
     // key_press_div
@@ -139,19 +166,30 @@ fn app(cx: Scope) -> Element {
     code: "KeyA",
     location: 0,
     repeat: false,
+    keyCode: 65,
+    charCode: 97,
+    char: "a",
+    charCode: 0,
+    altKey: false,
+    ctrlKey: false,
+    metaKey: false,
+    shiftKey: false,
+    isComposing: false,
+    which: 65,
+    bubbles: true,
     })"#,
     );
     // focus_in_div
     mock_event(
         &cx,
         "focus_in_div",
-        r#"new FocusEvent("focusin")"#,
+        r#"new FocusEvent("focusin", {bubbles: true})"#,
     );
     // focus_out_div
     mock_event(
         &cx,
         "focus_out_div",
-        r#"new FocusEvent("focusout")"#,
+        r#"new FocusEvent("focusout",{bubbles: true})"#,
     );
     
 
@@ -223,6 +261,9 @@ fn app(cx: Scope) -> Element {
             }
             div{
                 id: "wheel_div",
+                width: "100px",
+                height: "100px",
+                background_color: "red",
                 onwheel: move |event| {
                     println!("{:?}", event.data);
                     let dioxus_html::geometry::WheelDelta::Pixels(delta)= event.data.delta()else{
@@ -232,7 +273,7 @@ fn app(cx: Scope) -> Element {
                     recieved_events.modify(|x| *x + 1)
                 }
             }
-            div{
+            input{
                 id: "key_down_div",
                 onkeydown: move |event| {
                     println!("{:?}", event.data);
@@ -245,7 +286,7 @@ fn app(cx: Scope) -> Element {
                     recieved_events.modify(|x| *x + 1)
                 }
             }
-            div{
+            input{
                 id: "key_up_div",
                 onkeyup: move |event| {
                     println!("{:?}", event.data);
@@ -258,7 +299,7 @@ fn app(cx: Scope) -> Element {
                     recieved_events.modify(|x| *x + 1)
                 }
             }
-            div{
+            input{
                 id: "key_press_div",
                 onkeypress: move |event| {
                     println!("{:?}", event.data);
@@ -271,14 +312,14 @@ fn app(cx: Scope) -> Element {
                     recieved_events.modify(|x| *x + 1)
                 }
             }
-            div{
+            input{
                 id: "focus_in_div",
                 onfocusin: move |event| {
                     println!("{:?}", event.data);
                     recieved_events.modify(|x| *x + 1)
                 }
             }
-            div{
+            input{
                 id: "focus_out_div",
                 onfocusout: move |event| {
                     println!("{:?}", event.data);

+ 1 - 1
packages/desktop/headless_tests/main.rs

@@ -16,7 +16,7 @@ pub(crate) fn check_app_exits(app: Component) {
     let should_panic = std::sync::Arc::new(std::sync::atomic::AtomicBool::new(true));
     let should_panic_clone = should_panic.clone();
     std::thread::spawn(move || {
-        std::thread::sleep(std::time::Duration::from_secs(10));
+        std::thread::sleep(std::time::Duration::from_secs(100));
         if should_panic_clone.load(std::sync::atomic::Ordering::SeqCst) {
             std::process::exit(exitcode::SOFTWARE);
         }