use pagetop::prelude::*; #[pagetop::test] async fn groups_zones_by_region_and_marks_the_selected_one() { let mut field = form::SelectTimezone::new() .with_name("timezone") .with_selected("Europe/Madrid"); let html = field.render(&mut Context::default()).await.into_string(); assert!(html.contains(r#""#)); assert!(html.contains(r#""#)); assert!(html.contains(r#""#)); } #[pagetop::test] async fn legacy_and_fixed_offset_zones_are_not_offered() { let mut field = form::SelectTimezone::new(); let html = field.render(&mut Context::default()).await.into_string(); assert!(!html.contains(r#"value="US/Eastern""#)); assert!(!html.contains(r#"value="Japan""#)); assert!(!html.contains(r#"value="Etc/GMT+1""#)); } #[pagetop::test] async fn optional_field_offers_the_site_time_zone_first() { let mut field = form::SelectTimezone::new(); let html = field.render(&mut Context::default()).await.into_string(); let site = html.find(r#""#)); let mut unknown = form::SelectTimezone::new() .with_required(true) .with_selected("Mars/Olympus"); let html = unknown.render(&mut Context::default()).await.into_string(); assert!(html.contains(r#""#)); let mut chosen = form::SelectTimezone::new() .with_required(true) .with_selected("Europe/Madrid"); let html = chosen.render(&mut Context::default()).await.into_string(); assert!(!html.contains(r#"value="""#)); }