wasm-bindgen/crates/web-sys/tests/wasm/table_element.rs

180 lines
4.0 KiB
Rust

use wasm_bindgen::prelude::*;
use wasm_bindgen_test::*;
use web_sys::{HtmlTableCaptionElement, HtmlTableElement, HtmlTableSectionElement};
#[wasm_bindgen(module = "./tests/wasm/element.js")]
extern "C" {
fn new_table() -> HtmlTableElement;
fn new_caption() -> HtmlTableCaptionElement;
fn new_thead() -> HtmlTableSectionElement;
fn new_tfoot() -> HtmlTableSectionElement;
}
#[wasm_bindgen_test]
fn test_table_element() {
let table = new_table();
assert!(
table.caption().is_none(),
"New table element should have no caption element."
);
table.create_caption();
assert!(
table.caption().is_some(),
"Table element should have caption element after create caption."
);
table.delete_caption();
assert!(
table.caption().is_none(),
"Table element should have no caption element after delete caption."
);
table.set_caption(Some(&new_caption()));
assert!(
table.caption().is_some(),
"Table element should have caption element after set."
);
assert!(
table.t_head().is_none(),
"New table element should have no thead element."
);
table.create_t_head();
assert!(
table.t_head().is_some(),
"Table element should have thead element after create thead."
);
table.delete_t_head();
assert!(
table.t_head().is_none(),
"Table element should have no thead element after delete thead."
);
table.set_t_head(Some(&new_thead()));
assert!(
table.t_head().is_some(),
"Table element should have thead element after set."
);
assert!(
table.t_foot().is_none(),
"New table element should have no tfoot element."
);
table.create_t_foot();
assert!(
table.t_foot().is_some(),
"Table element should have tfoot element after create tfoot."
);
table.delete_t_foot();
assert!(
table.t_foot().is_none(),
"Table element should have no tfoot element after delete tfoot."
);
table.set_t_foot(Some(&new_tfoot()));
assert!(
table.t_foot().is_some(),
"Table element should have tfoot element after set."
);
assert!(
table.t_bodies().length() == 0,
"New table element should have no tbody element."
);
table.create_t_body();
assert!(
table.t_bodies().length() == 1,
"Table element should have tbody element after create tbody."
);
assert!(
table.rows().length() == 0,
"New table element should have no rows."
);
table
.insert_row(0)
.expect("Failed to insert row at index 0");
assert!(
table.rows().length() == 1,
"Table element should have rows after insert row."
);
table
.delete_row(0)
.expect("Failed to delete row at index 0");
assert!(
table.rows().length() == 0,
"Table element should have no rows after delete row."
);
table.set_align("left");
assert_eq!(
table.align(),
"left",
"Table element should have an align property of 'left'"
);
table.set_border("10");
assert_eq!(
table.border(),
"10",
"Table element should have a border property of '10'"
);
table.set_frame("above");
assert_eq!(
table.frame(),
"above",
"Table element should have an frame property of 'above'"
);
table.set_rules("none");
assert_eq!(
table.rules(),
"none",
"Table element should have an rules property of 'none'"
);
table.set_summary("summary");
assert_eq!(
table.summary(),
"summary",
"Table element should have an summary property of 'summary'"
);
table.set_width("1000");
assert_eq!(
table.width(),
"1000",
"Table element should have a width property of '1000'"
);
table.set_bg_color("#ffffff");
assert_eq!(
table.bg_color(),
"#ffffff",
"Table element should have an bgColor property of '#ffffff'"
);
table.set_cell_padding("1");
assert_eq!(
table.cell_padding(),
"1",
"Table element should have an cellPadding property of '1'"
);
table.set_cell_spacing("1");
assert_eq!(
table.cell_spacing(),
"1",
"Table element should have an cellSpacing property of '1'"
);
}