wasm-bindgen/crates/web-sys/tests/wasm/table_element.rs
Alex Crichton 92b7de3d3d Skip args in overloaded method names if all same
This commit updates how we name overloaded methods. Previously all argument
names were concatenated, but after this commit it only concatenates argument
names where at least one possibility has a different type. Otherwise if all
possibilities have the same type name it in theory isn't adding too much more
information!

Additionally this commit also switches to using `_with_` consistently everywhere
instead of `_with_` for constructors and `_using_` for methods.

Closes #712
2018-08-20 10:30:02 -07:00

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_with_index(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'"
);
}