use rustbot::config::parse_str; #[test] fn flat_config_is_a_single_network() { let cfgs = parse_str("server = irc.example.org\nnick = flatbot\nchannels = #a #b\n"); assert_eq!(cfgs.len(), 1); assert_eq!(cfgs[0].server, "irc.example.org"); assert_eq!(cfgs[0].nick, "flatbot"); assert_eq!(cfgs[0].channels, vec!["#a", "#b"]); assert_eq!(cfgs[0].name, "irc.example.org"); } #[test] fn sections_inherit_top_level_defaults_and_override() { let cfgs = parse_str( "nick = shared\nchannels = #lobby\n\ [libera]\nserver = irc.libera.chat\ntls = true\n\ [oftc]\nserver = irc.oftc.net\nnick = other\nchannels = #oftc\n", ); assert_eq!(cfgs.len(), 2); let libera = &cfgs[0]; assert_eq!(libera.name, "libera"); assert_eq!(libera.server, "irc.libera.chat"); assert_eq!(libera.nick, "shared"); assert_eq!(libera.channels, vec!["#lobby"]); assert!(libera.tls); assert_eq!(libera.port, 6697); let oftc = &cfgs[1]; assert_eq!(oftc.name, "oftc"); assert_eq!(oftc.server, "irc.oftc.net"); assert_eq!(oftc.nick, "other"); assert_eq!(oftc.channels, vec!["#oftc"]); assert!(!oftc.tls); } #[test] fn a_section_may_rename_itself() { let cfgs = parse_str("[net]\nname = pretty\nserver = irc.example.org\n"); assert_eq!(cfgs.len(), 1); assert_eq!(cfgs[0].name, "pretty"); } #[test] fn comments_and_blanks_are_ignored() { let cfgs = parse_str("# comment\n; also\n\n \n"); assert_eq!(cfgs.len(), 1); assert_eq!(cfgs[0].server, "irc.tchatou.fr"); }