summaryrefslogtreecommitdiffstats
path: root/vendor/web-sys/tests/wasm/html_element.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/web-sys/tests/wasm/html_element.rs')
-rw-r--r--vendor/web-sys/tests/wasm/html_element.rs160
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"
+ );
+}