diff options
Diffstat (limited to 'vendor/web-sys/tests/wasm/html_element.rs')
-rw-r--r-- | vendor/web-sys/tests/wasm/html_element.rs | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/vendor/web-sys/tests/wasm/html_element.rs b/vendor/web-sys/tests/wasm/html_element.rs new file mode 100644 index 000000000..73157ceee --- /dev/null +++ b/vendor/web-sys/tests/wasm/html_element.rs @@ -0,0 +1,160 @@ +use wasm_bindgen::prelude::*; +use wasm_bindgen_test::*; +use web_sys::HtmlElement; + +#[wasm_bindgen(module = "/tests/wasm/element.js")] +extern "C" { + fn new_html() -> HtmlElement; +} + +#[wasm_bindgen_test] +fn test_html_element() { + let element = new_html(); + assert!(element.is_instance_of::<HtmlElement>()); + + assert_eq!(element.title(), "", "Shouldn't have a title"); + element.set_title("boop"); + assert_eq!(element.title(), "boop", "Should have a title"); + + assert_eq!(element.lang(), "", "Shouldn't have a lang"); + element.set_lang("en-us"); + assert_eq!(element.lang(), "en-us", "Should have a lang"); + + assert_eq!(element.dir(), "", "Shouldn't have a dir"); + element.set_dir("ltr"); + assert_eq!(element.dir(), "ltr", "Should have a dir"); + + assert_eq!(element.inner_text(), "", "Shouldn't have inner_text"); + element.set_inner_text("hey"); + assert_eq!(element.inner_text(), "hey", "Should have inner_text"); + + assert!(!element.hidden(), "Shouldn't be hidden"); + element.set_hidden(true); + assert!(element.hidden(), "Should be hidden"); + + assert_eq!( + element.class_list().get(0), + None, + "Shouldn't have class at index 0" + ); + element.class_list().add_2("a", "b").unwrap(); + assert_eq!( + element.class_list().get(0).unwrap(), + "a", + "Should have class at index 0" + ); + assert_eq!( + element.class_list().get(1).unwrap(), + "b", + "Should have class at index 1" + ); + assert_eq!( + element.class_list().get(2), + None, + "Shouldn't have class at index 2" + ); + + assert_eq!(element.dataset().get("id"), None, "Shouldn't have data-id"); + element.dataset().set("id", "123").unwrap(); + assert_eq!( + element.dataset().get("id").unwrap(), + "123", + "Should have data-id" + ); + + assert_eq!( + element.style().get(0), + None, + "Shouldn't have style property name at index 0" + ); + element + .style() + .set_property("background-color", "red") + .unwrap(); + assert_eq!( + element.style().get(0).unwrap(), + "background-color", + "Should have style property at index 0" + ); + assert_eq!( + element + .style() + .get_property_value("background-color") + .unwrap(), + "red", + "Should have style property" + ); + + // TODO add a click handler here + element.click(); + + assert_eq!(element.tab_index(), -1, "Shouldn't be tab_index"); + element.set_tab_index(1); + assert_eq!(element.tab_index(), 1, "Should be tab_index"); + + // TODO add a focus handler here + assert_eq!(element.focus().unwrap(), (), "No result"); + + // TODO add a blur handler here + assert_eq!(element.blur().unwrap(), (), "No result"); + + assert_eq!(element.access_key(), "", "Shouldn't have a access_key"); + element.set_access_key("a"); + assert_eq!(element.access_key(), "a", "Should have a access_key"); + + // TODO add test for access_key_label + + assert!(!element.draggable(), "Shouldn't be draggable"); + element.set_draggable(true); + assert!(element.draggable(), "Should be draggable"); + + assert_eq!( + element.content_editable(), + "inherit", + "Shouldn't have a content_editable" + ); + element.set_content_editable("true"); + assert_eq!( + element.content_editable(), + "true", + "Should be content_editable" + ); + assert!(element.is_content_editable(), "Should be content_editable"); + + /*TODO doesn't work in Chrome + // TODO verify case where menu is passed + match element.context_menu() { + None => assert!(true, "Shouldn't have a custom menu set"), + _ => assert!(false, "Shouldn't have a custom menu set") + }; + */ + + // TODO: This test is also broken in Chrome (but not Firefox). + // assert!(!element.spellcheck(), "Shouldn't be spellchecked"); + element.set_spellcheck(true); + assert!(element.spellcheck(), "Should be dragspellcheckedgable"); + + // TODO verify case where we have an offset_parent + match element.offset_parent() { + None => assert!(true, "Shouldn't have an offset_parent set"), + _ => assert!(false, "Shouldn't have a offset_parent set"), + }; + + // TODO verify when we have offsets + assert_eq!(element.offset_top(), 0, "Shouldn't have an offset_top yet"); + assert_eq!( + element.offset_left(), + 0, + "Shouldn't have an offset_left yet" + ); + assert_eq!( + element.offset_width(), + 0, + "Shouldn't have an offset_width yet" + ); + assert_eq!( + element.offset_height(), + 0, + "Shouldn't have an offset_height yet" + ); +} |