| use wasm_bindgen_test::*; |
| use web_sys::HtmlOptionElement; |
| |
| #[wasm_bindgen_test] |
| fn test_option_element() { |
| let option = HtmlOptionElement::new_with_text_and_value_and_default_selected_and_selected( |
| "option_text", |
| "option_value", |
| false, |
| true, |
| ) |
| .unwrap(); |
| |
| option.set_disabled(true); |
| assert_eq!( |
| option.disabled(), |
| true, |
| "Option should be disabled after we set it to be disabled." |
| ); |
| |
| option.set_disabled(false); |
| assert_eq!( |
| option.disabled(), |
| false, |
| "Option should not be disabled after we set it to be not-disabled." |
| ); |
| |
| assert!( |
| option.form().is_none(), |
| "Our option should not be associated with a form." |
| ); |
| |
| option.set_label("Well this truly is a neat option"); |
| assert_eq!( |
| option.label(), |
| "Well this truly is a neat option", |
| "Option should have the label we gave it." |
| ); |
| |
| option.set_default_selected(true); |
| assert_eq!( |
| option.default_selected(), |
| true, |
| "Option should be default_selected after we set it to be default_selected." |
| ); |
| |
| option.set_default_selected(false); |
| assert_eq!( |
| option.default_selected(), |
| false, |
| "Option should not be default_selected after we set it to be not default_selected." |
| ); |
| |
| option.set_selected(true); |
| assert_eq!( |
| option.selected(), |
| true, |
| "Option should be selected after we set it to be selected." |
| ); |
| |
| option.set_selected(false); |
| assert_eq!( |
| option.selected(), |
| false, |
| "Option should not be selected after we set it to be not selected." |
| ); |
| |
| option.set_value("tomato"); |
| assert_eq!( |
| option.value(), |
| "tomato", |
| "Option should have the value we gave it." |
| ); |
| |
| option.set_text("potato"); |
| assert_eq!( |
| option.text(), |
| "potato", |
| "Option should have the text we gave it." |
| ); |
| |
| assert_eq!( |
| option.index(), |
| 0, |
| "This should be the first option, since there are no other known options." |
| ); |
| } |