1use core::BotCmdAuthLvl as Auth;
2use core::*;
3use yaml_rust::Yaml;
4
5pub fn mk() -> Module {
6 mk_module("test")
7 .command(
8 "test-line-wrap",
9 "",
10 "Request a long message from the bot, to test its line-wrapping function.",
11 Auth::Admin,
12 Box::new(test_line_wrap),
13 &[],
14 )
15 .command(
16 "test-error-handling",
17 "",
18 "This command's handler function returns an error, to test the bot framework's \
19 error-handling mechanism(s).",
20 Auth::Admin,
21 Box::new(test_error_handling),
22 &[],
23 )
24 .command(
25 "test-panic-catching",
26 "",
27 "This command's handler function panics, to test the bot framework's panic-catching \
28 mechanism.",
29 Auth::Admin,
30 Box::new(test_panic_catching),
31 &[],
32 )
33 .end()
34}
35
36const LOREM_IPSUM_TEXT: &'static str =
37 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer et tincidunt nibh. Nullam \
38 aliquet imperdiet cursus. Duis at turpis mollis, iaculis quam sed, efficitur arcu. Sed vel \
39 massa sit amet magna efficitur hendrerit. Donec auctor auctor ligula nec semper. Nulla a \
40 odio suscipit, suscipit velit in, ullamcorper velit. In bibendum pulvinar ipsum. Fusce \
41 elementum maximus mattis. Donec sed mauris nec ante eleifend dapibus non faucibus massa. \
42 Vivamus a auctor ligula. Cras hendrerit, velit sit amet sagittis placerat, elit elit feugiat \
43 quam, vel aliquet ligula elit sit amet nibh. Fusce dignissim, orci vitae sodales ornare, \
44 lacus risus facilisis sem, a imperdiet lectus massa at velit. Etiam sed magna congue, \
45 pulvinar diam quis, facilisis risus. Sed semper, lectus vulputate luctus fermentum, quam \
46 lacus consectetur arcu, ac mollis ipsum metus vel nunc. Ut posuere arcu enim, id dictum arcu \
47 sagittis in. Mauris a lectus nec ligula eleifend rutrum. Class aptent taciti sociosqu ad \
48 litora torquent per conubia massa nunc.";
49
50fn test_line_wrap(_: &State, _: &MsgMetadata, _: &Yaml) -> BotCmdResult {
51 BotCmdResult::Ok(Reaction::Reply(LOREM_IPSUM_TEXT.into()))
52}
53
54fn test_error_handling(_: &State, _: &MsgMetadata, _: &Yaml) -> BotCmdResult {
55 BotCmdResult::BotErrMsg("An error for testing purposes.".into())
56}
57
58fn test_panic_catching(_: &State, _: &MsgMetadata, _: &Yaml) -> BotCmdResult {
59 panic!("Panicking for testing purposes....")
60}