event.rs 901 B

12345678910111213141516171819202122232425262728293031
  1. use js_sys::{Object, Promise};
  2. use wasm_bindgen::prelude::*;
  3. use wasm_bindgen::JsCast;
  4. use wasm_bindgen_futures::JsFuture;
  5. use wasm_bindgen_test::*;
  6. use web_sys::Event;
  7. #[wasm_bindgen(module = "/tests/wasm/event.js")]
  8. extern "C" {
  9. fn new_event() -> Promise;
  10. }
  11. #[wasm_bindgen_test]
  12. async fn event() {
  13. let result = JsFuture::from(new_event()).await.unwrap();
  14. let event = Event::from(result);
  15. // All DOM interfaces should inherit from `Object`.
  16. assert!(event.is_instance_of::<Object>());
  17. let _: &Object = event.as_ref();
  18. // These should match `new Event`.
  19. assert!(event.bubbles());
  20. assert!(event.cancelable());
  21. assert!(event.composed());
  22. // The default behavior not initially prevented, but after
  23. // we call `prevent_default` it better be.
  24. assert!(!event.default_prevented());
  25. event.prevent_default();
  26. assert!(event.default_prevented());
  27. }