123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- use wasm_bindgen::prelude::*;
- use wasm_bindgen::JsCast;
- 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"
- );
- }
|