#![cfg(feature = "model")]
extern crate parking_lot;
extern crate serenity;
#[cfg(feature = "utils")]
mod utils {
use parking_lot::RwLock;
use serenity::model::prelude::*;
use std::collections::HashMap;
use std::sync::Arc;
fn group() -> Group {
Group {
channel_id: ChannelId(1),
icon: None,
last_message_id: None,
last_pin_timestamp: None,
name: None,
owner_id: UserId(2),
recipients: HashMap::new(),
}
}
fn guild_channel() -> GuildChannel {
GuildChannel {
id: ChannelId(1),
bitrate: None,
category_id: None,
guild_id: GuildId(2),
kind: ChannelType::Text,
last_message_id: None,
last_pin_timestamp: None,
name: "nsfw-stuff".to_string(),
permission_overwrites: vec![],
position: 0,
topic: None,
user_limit: None,
nsfw: false,
}
}
fn private_channel() -> PrivateChannel {
PrivateChannel {
id: ChannelId(1),
last_message_id: None,
last_pin_timestamp: None,
kind: ChannelType::Private,
recipient: Arc::new(RwLock::new(User {
id: UserId(2),
avatar: None,
bot: false,
discriminator: 1,
name: "ab".to_string(),
})),
}
}
#[test]
fn nsfw_checks() {
let mut channel = guild_channel();
assert!(channel.is_nsfw());
channel.kind = ChannelType::Voice;
assert!(!channel.is_nsfw());
channel.kind = ChannelType::Text;
channel.name = "nsfw-".to_string();
assert!(channel.is_nsfw());
channel.name = "nsfw".to_string();
assert!(channel.is_nsfw());
channel.kind = ChannelType::Voice;
assert!(!channel.is_nsfw());
channel.kind = ChannelType::Text;
channel.name = "nsf".to_string();
channel.nsfw = true;
assert!(channel.is_nsfw());
channel.nsfw = false;
assert!(!channel.is_nsfw());
let channel = Channel::Guild(Arc::new(RwLock::new(channel)));
assert!(!channel.is_nsfw());
let group = group();
assert!(!group.is_nsfw());
let private_channel = private_channel();
assert!(!private_channel.is_nsfw());
}
}