X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=blobdiff_plain;f=mudpy%2Ftests%2Fselftest.py;h=0b293865c74d32b81784225e74a0d4824e1bb930;hp=766f01d044cdc6760b540dc6a6fd58b2dd7e153a;hb=54423d0151eebde19eaeb7bb32fd2368e9e6319e;hpb=0c50d321bc2ecb103c9e80896f6d79e77f1a72b2 diff --git a/mudpy/tests/selftest.py b/mudpy/tests/selftest.py index 766f01d..0b29386 100644 --- a/mudpy/tests/selftest.py +++ b/mudpy/tests/selftest.py @@ -96,6 +96,16 @@ test_chat_mode = ( (0, r'says, "Now less chatty\."', ""), ) +test_wrapping = ( + (0, '> ', "say " + 100 * "o"), + (1, r'says,\r\n"O[o]+\."', ""), +) + +test_forbid_ansi_input = ( + (0, '> ', "say \x1b[35mfoo\x1b[0m"), + (1, r'says, "\[35mfoo\[0m\."', ""), +) + test_movement = ( (0, "> ", "move north"), (0, r"You exit to the north\.", ""), @@ -146,9 +156,16 @@ test_admin_setup = ( test_telnet_iac = ( # Send a double (escaped) IAC byte within other text, which should get # unescaped and deduplicated to a single \xff in the buffer and then - # the line of input discarded as a non-UTF-8 sequence + # the line of input discarded as a non-ASCII sequence (2, "> ", b"say argle\xff\xffbargle\r\n"), - (2, r"Non-UTF-8 sequence from admin: b'say argle\\xffbargle'.*> ", ""), + (2, r"Non-ASCII characters from admin: b'say argle\\xffbargle'.*> ", ""), +) + +test_telnet_unknown = ( + # Send an unsupported negotiation command #127 which should get filtered + # from the line of input + (2, "> ", b"say glop\xff\x7fglyf\r\n"), + (2, r'Unknown Telnet IAC command 127 ignored\..*"Glopglyf\.".*> ', ""), ) test_admin_restriction = ( @@ -179,6 +196,11 @@ test_set_refused = ( (2, r'The "mudpy\.limit" element is kept in read-only file', ""), ) +test_show_version = ( + (2, "> ", "show version"), + (2, r"Running mudpy .* on .* Python 3.*with.*pyyaml.*> ", ""), +) + test_show_files = ( (2, "> ", "show files"), (2, r'These are the current files containing the universe:.*' @@ -245,16 +267,20 @@ dialogue = ( (test_typo_replacement, "typo replacement"), (test_sentence_capitalization, "sentence capitalization"), (test_chat_mode, "chat mode"), + (test_wrapping, "wrapping"), + (test_forbid_ansi_input, "raw escape input is filtered"), (test_movement, "movement"), (test_actor_disappears, "actor spontaneous disappearance"), (test_account1_teardown, "second account teardown"), (test_admin_setup, "admin account setup"), (test_telnet_iac, "escape stray telnet iac bytes"), + (test_telnet_unknown, "strip unknown telnet command"), (test_admin_restriction, "restricted admin commands"), (test_admin_help, "admin help"), (test_reload, "reload"), (test_set_facet, "set facet"), (test_set_refused, "refuse altering read-only element"), + (test_show_version, "show version and diagnostic info"), (test_show_files, "show a list of loaded files"), (test_show_file, "show nodes from a specific file"), (test_show_groups, "show groups"),