We've recently moved hosts! Please report any weirdness with the wiki (or spam) on Utopia.

Conspire Acceptance Tests

From BBSWiki

Jump to: navigation, search

Contents

General

  • Usernames are 19 characters max.
  • Room names are 40 characters max.
  • Room 0 is the lobby. Room 1 is Mail>. Room 2 is the Admin Log>. These rooms are unzappable.
  • An absolute maximum of 64K X messages persist per user. (Configurable)
  • An absolute maximum of 64K messages persist per room. (Configurable)

Connecting to a BBS

  • If a local config file specifies it, the client allows the user to select from a list of BBSes to connect to or enter a new BBS.
  • If a local config file specifies it, the client autoconnects to a given BBS with no possibility of abort or choice.
  • Upon connect, the client displays the splash screen for the given BBS and a login prompt.

Login prompt

  • The login prompt allows the user to log in with username and password, and gives an error for an invalid combination.
  • The login prompt allows new account creation if 'New' is typed at the username prompt.
  • The login prompt allows immediate exit upon input of Ctrl-D at the username or password prompt.

Logging in

  • After login, "useful information" as specified in NuDOC_Requirements_Specification#Logging_In.
  • Following this, the client prompts for color if this is not disabled in the config menu
  • Following this,
    • If there are new messages in the Lobby, the client drops into read mode in that room.
    • Else if there are new messages in Mail, the client drops into read mode in that room.
    • Else the client drops to the short prompt in the Lobby.

New account creation

Locked creation

Username and password

  • When account creation proceeds, a username and password are selected by the user according to the linked spec.
    • If a pre-existing name is selected, an error is presented according to spec.
    • If an insufficient password (fewer than 6 characters) is entered, an error is presented according to spec.

Personal details

  • The user is prompted for all pieces of information listed in the spec.
  • Mandatory pieces as configured in nuDOC Requirements Specification/Config menu/System must be entered or an error/retry sequence will occur.
  • Upon entry of all information, it is reprinted for review by the user.

Mistakes

  • The user is prompted as to whether the reviewed information is correct.
    • If no, the process starts over from username selection.
    • If yes, account creation proceeds to the next step.

Profile hiding

  • The user is given a yes/no prompt to allow them to hide their identity.
    • If yes, all personal information is marked hidden in the user's profile.
    • If no, nothing is marked hidden.

Account creation

Color check

  • The user is prompted for color.

Introduction helpfile

  • The introduction help file is displayed, paginated as needed.
  • A "press return to continue" prompt is displayed.

Lobby

  • The user is jumped to the Lobby after the help file is displayed.

Short prompt

The prompt itself

  • The prompt itself always displays the current room.

Aide commands

Toggle eXpress beeps

  • The proper key toggles eXpress beeps according to the linked spec.

Read reverse

  • The proper key begins reading messages in the current room in backwards order.
  • If there are no messages in the room, an error is displayed.

Config menu

  • The proper key enters the config menu.
  • If the user is twitted, an error message is displayed and the user is returned to the short prompt.



Change doing field

  • The proper key allows the user to change their doing field.
  • If the user is twitted, an error message is displayed and the user is returned to the short prompt.

Enter a message

  • The proper key allows the user to start a new thread in the current room. See nuDOC Requirements Specification/Message entry.
  • If the upload key is used, the new message will be entered in upload mode.
  • If the user is entering mail, she is prompted for a recipient to which the message is directed.
  • If the flagged post key is used, a notice is printed and the message will be entered in upload mode.
  • If a sysop or programmer is posting in the Lobby, a confirmation prompt is issued.
  • If a user who is not a sysop or programmer attempts to enter a message in the Lobby, an error message is printed.
  • If a twitted user attempts to enter a message, an error message is printed.
  • If the user is muzzled in the current room, an error message is printed.

Find

Fortune

  • The proper key displays a fortune cookie for the user (different every time). See the UNIX command 'fortune'.

Goto

  • If there are unread messages in the current room, they are all immediately marked read.
  • The user is advanced to the next room with unread messages, or to the Lobby if there are no rooms with unread messages.
  • If there are unread messages in the Mail room, the user is advanced to that room before any other.
  • If the user skipped rooms in the current read cycle and she has dropped back to the Lobby, the skips are cleared and a message is printed out.

Help

RoomInfo

Jump

  • The proper key prompts the user for a room name/number to jump to.
  • Entry of a valid name or number advances to the requested room and returns the user to the short prompt, displaying a message count if there are unread messages in the room.
  • Entry of a partial room name which can be matched by substring from the entire list of room names jumps to the first match.
  • Entry of an invalid name, partial name or number displays an error message.
  • On a successful jump, all messages in the room jumped from are marked read.

Known rooms

Logout

  • The user is prompted for confirmation and logged out upon confirmation.

Read new messages

  • If there are unread messages in the current room, reading begins in a forward direction at the oldest unread message.
  • If there are no unread messages in the current room, a Goto is executed which does not touch read pointers in the current room (to eliminate a race condition where a message that was being entered could be mistakenly marked read).
    • If there are unread messages in Mail, that room is read next.

Read old messages reverse

  • The proper key begins reading messages in the current room in a reverse direction, starting at the newest message marked read.
  • If there are no messages marked read in the current room, an error message is displayed.

Profile

  • The proper key prompts the user for a username to profile.
  • The prompt is prefilled with the author of the last message read.
  • If the username entered is valid, that user's profile is displayed, minus any hidden data.
  • If the username entered is invalid, an error message is displayed.

Profile (full)

  • The proper key prompts the user for a username to profile.
  • If the user is not a sysop, anyone can be full profiled.
  • If the user is not a sysop, profiling anyone but the user themself only reveals a regular profile. That is to say, users may only full profile themselves.
  • The prompt is prefilled with the author of the last message read, unless the message is anonymous in which case nothing is prefilled.
  • If the username entered is valid, that user's profile is displayed, including any hidden data.
  • If the username entered is invalid, an error message is displayed.

Question

  • The current guide pool is checked. If no guides are online, an error message is displayed.
  • If at least one guide is online, an unidle guide is randomly selected and the user is issued a confirmation prompt.
  • If the user confirms, a question is sent to the guide according to the linked spec.

Read reverse

  • If there are messages in the current room, reading begins in a reverse direction at the latest message.
  • If there are no messages in the current room, an error message is displayed.

Skip

  • The current room is marked skipped for the current read cycle -- it will not be returned to until all other rooms have been read or skipped without direct intervention by the user.
  • A Goto is executed, but no messages are marked read and "Skip" is printed instead.
    • If there are unread messages in Mail, that room is read next.

Skip specific

  • The proper key prompts the user for a room name/number to skip to.
  • Entry of a valid name or number advances to the requested room and returns the user to the short prompt, displaying a message count if there are unread messages in the room.
  • Entry of a partial room name which can be matched by substring from the entire list of room names skips to the first match.
  • Entry of an invalid name, partial name or number displays an error message.
  • On a successful skip, all messages in the room skipped from are NOT marked read.

Time

  • The proper key prints the current system time.

Tag

Ungoto

  • The ungoto list is built up to five deep when the user Jumps or Gotos from a room with unread messages.
  • The ungoto list is cleared on any message read, or the end of a read cycle.
  • Ungotoing with nothing in the list does nothing.
  • Ungotoing with a room in the list properly resets read pointers and drops the user to the short prompt in the rom, displaying a message count like the one displayed on a Jump with unread messages.

Reply eXpress

  • An X to the last person to send the user an X is initiated. (see #eXpress messages)
  • If the last sender is not online, an error message is displayed according to the linked spec.
  • If no Xes have been received in the current session, an error message is displayed according to the linked spec.
  • Attempting to X someone not on one's enable list while X-disabled prints an error message.

Validate

  • If the user is a Sysop, the proper key enters the user validation system.
  • If the user is not a Sysop and has not entered a correct e-mail verification code, the proper key enters the e-mail verification system.

User validation

  • A counter of remaining users and skipped users is displayed with each iteration.
  • The full profile of an unvalidated user is displayed each iteration.
  • A prompt is displayed with each iteration according to the linked spec.
  • The accept key validates the current user under consideration, removes them from the queue, and advances to the next user if any.
  • The change key drops the user into the config menu with the current user under consideration as the working user. When the config menu is exited, the program returns to the short prompt.
  • The delete key prompts the user for confirmation according to the linked spec. If confirmed, the user under consideration is immediately deleted and the process advances to the next user if any.
  • The skip key leaves the user under consideration in the validation queue and advances to the next user, if any.
  • The quit key returns to the short prompt.
  • If there are no users left in the queue upon advance, the program returns to the short prompt.

E-mail verification

  • Entering e-mail verification with a previously verified address produces an error message according to the linked spec.
  • Entering a correct code with auto-validation on (see nuDOC Requirements Specification/Config menu/System) immediately validates the user.
  • Entering a correct code with auto-validation off prints a message according to the linked spec.
  • Entering an incorrect code prints an error message and re-prompts the user.
  • At any code entry prompt the user may elect to re-send the code to the e-mail address in his profile. See linked spec.

Wholist

  • The proper key immediately displays the wholist in the format specified by the sysops; see nuDOC Requirements Specification/Config menu/System.
    • If geographic, users with hidden profile data do not have that data displayed in the wholist.
  • X-disabled flags are correctly displayed.
  • Guide flags are correctly displayed.
  • Mute flags are correctly displayed.
  • Sysop/programmer (op) flags are correctly displayed.
  • Doing fields are correctly displayed.
  • Time online is correctly displayed.
  • Idle time is correctly displayed.

Wholist (short)

  • The proper key immediately displays the short format wholist. See linked spec.
  • X-disabled flags are correctly displayed.
  • Guide flags are correctly displayed.
  • Mute flags are correctly displayed.
  • Sysop/programmer (op) flags are correctly displayed.

Friends online

  • The proper key immediately displays a long-format wholist in the format specified by the sysops; see nuDOC Requirements Specification/Config menu/System. This wholist contains only the user's friends online (see nuDOC Requirements Specification/Config menu).
    • If geographic, users with hidden profile data do not have that data displayed in the wholist.
  • X-disabled flags are correctly displayed.
  • Guide flags are correctly displayed.
  • Mute flags are correctly displayed.
  • Sysop/programmer (op) flags are correctly displayed.
  • Doing fields are correctly displayed.
  • Time online is correctly displayed.
  • Idle time is correctly displayed.

eXpress message

  • The proper key prompts the user for the recipient of an eXpress message. The last user from whom an X was received is prefilled and can be selected by simply hitting enter.
  • An invalid username entered at the prompt results in an error message.
  • Entering a valid username begins an X message. (see #eXpress messages)
  • Attempting to X someone not on one's enable list while X-disabled prints an error message.

Toggle express messages

  • The proper key toggles the user's ability to receive eXpress messages (and their associated flag in the wholist) while displaying a message according to the linked spec.

eXpress message log

Yell

  • The proper key enters a yell in regular edit mode or upload mode (see message entry).
  • A confirmation prompt is issued before entry begins.

Zap room

  • A confirmation prompt is presented.
  • Upon confirmation, the current room is removed from the user's read list and a Skip is executed.

QuickX

  • Hitting a QuickX key assigned to an online user immediately starts an X to the assigned user.
  • Hitting a QuickX key assigned to a user who is offline prints an error message according to the linked spec.
  • Hitting an unassigned QuickX key prints an error message according to the linked spec.
  • Attempting to QuickX someone not on one's enable list while X-disabled prints an error.

Find message by number

  • The user is prompted for a specific message number.
  • If the number is a valid message number for the current room, reading begins in a forward direction at the specified message.
  • If the message number is invalid, an error is displayed.

Read last messages

  • The user is prompted for a number of messages to read.
  • If the number is less than the total messages in the room, reading begins in a forward direction at a position x messages back, where x is the number the user entered.
  • If the number is greater than the total messages in the room, reading begins in a forward direction at the first available message.

Toggle guide flag

  • If the user is flagged as a guide by the sysops, the proper key toggles the available for questions flag and prints a message according to the linked spec.
  • If the user is not flagged as a guide by the sysops, nothing happens.

Aide list

Quote harrassing Xes

  • The user is warned about their action and prompted for a username according to the linked spec.
  • If the name is valid, any Xes to and from the quoting user and the user selected within the scope of the current session and within the past 24 hours are quoted into an automatically generated Yell to the sysops from the quoting user.
  • If the name is invalid, an error message is displayed.

Menu

  • A menu of short prompt commands is displayed.

Read prompt

The prompt itself

  • The prompt always displays the current room and current message number.
  • In flat mode, the prompt displays the number of posts remaining.
  • In threaded mode, the prompt displays the number of posts remaining in the current thread and in the entire room.

Again

  • The current post is immediately redisplayed with pagination.

Again (no "more" prompt)

  • The current post is immediately redisplayed without and pagination (including spoiler prompts).

Back

  • The read direction is toggled to the reverse of its current direction, and the next post in the new direction is displayed.

Delete message

  • If the user does not own the current message and is not a sysop or roomaide in the current room, nothing happens.
  • If the user owns the current message or is a sysop or roomaide in the current room, she is presented with a confirmation prompt (see linked spec).
  • On confirmation, the message is deleted.

Find

  • The proper key enters the Find system with the scope initially limited to the current room. See #Find_3.

Room info

  • The proper key immediately displays the room info for the current room. See #Roominfo.

Ignore user

  • The proper key presents the user with a prompt requesting the name of a user to ignore.
  • Entering an invalid username displays an error message and drops the user back to the read prompt.
  • Upon entering a valid user to ignore, the user is presented with an option to ignore in the current room or BBS-wide.

Next message

  • The proper key advances to the next unread message in the room and displays it.
  • If there are no more unread messages in the room, the user is dropped to the short prompt.

Stop

  • The proper key immediately drops the user to the short prompt.

Find by number

  • The user is prompted for a specific message number.
  • If the number is a valid message number for the current room, reading begins in a forward direction at the specified message.
  • If the message number is invalid, an error is displayed.

Back up

  • The user is prompted for a number of messages to back up.
  • If the number is valid, reading begins in the direction it was proceeding before at the specified message by number. Backing up 20 messages at message 100 lands the user on message 80.
  • If the number is greater than the total available messages in the room, the user is backed up to the first message in the room.

Back by thread

  • Moves the read pointer to the first message of the previous thread and displays that message.
  • If there is no previous thread, moves the read pointer to the beginning of the current thread and displays that message.

Goto next thread

  • Moves the read pointer to the first post of the next thread and displays that message, marking all messages in the current thread read.
  • If there is no next thread, drops the user to the short prompt, marking all messages in the current thread read.

Skip thread

  • Moves the read pointer to the first post of the next thread and displays that message, without marking any further messages in the current thread read.
  • If there is no next thread, drops the user to the short prompt, without marking any further messages in the current thread read.

Show parent

  • Immediately displays the parent of the current message without moving the read pointer.
  • If there is no parent, an error message is displayed.

List posts in thread

  • Displays a list of all posts in the current thread, paginated as necessary, according to the linked spec.

List threads in room

  • Lists all threads in the current room which contain unread messages according to the linked spec.

Reply

  • The proper key drops the user into post entry mode with the subject prefilled to that of the current message. For details, see #Message entry.
  • The proper key accesses upload mode. See #Message entry.
  • The message, if saved, will be a child of the current message.
  • If the flagged post key is used, a notice is printed and the message will be entered in upload mode with the resulting post having an aide flag.
  • If a sysop or programmer is posting in the Lobby, a confirmation prompt is issued.
  • If a user who is not a sysop or programmer attempts to enter a message in the Lobby, an error message is printed.
  • If a twitted user attempts to enter a message, an error message is printed.
  • If the user is muzzled in the current room, an error message is printed.

Enter

  • The proper key drops the user into post entry mode with the subject prefilled to blank. For details, see #Message entry.
  • The proper key accesses upload mode. See #Message entry.
  • The message, if saved, will be the root of a new thread.
  • If the flagged post key is used, a notice is printed and the message will be entered in upload mode with the resulting post having an aide flag.
  • If a sysop or programmer is posting in the Lobby, a confirmation prompt is issued.
  • If a user who is not a sysop or programmer attempts to enter a message in the Lobby, an error message is printed.
  • If a twitted user attempts to enter a message, an error message is printed.
  • If the user is muzzled in the current room, an error message is printed.

Menu

  • Displays a menu of commands for the read prompt according to the linked spec.

Config menu

  • The proper key enters the config menu.

Help

  • The proper key enters the help system. See #Help menu.

Profile

  • The proper key prompts the user for a username to profile.
  • The prompt is prefilled with the author of the current message, unless the current message is anonymous.
  • If the username entered is valid, that user's profile is displayed, minus any hidden data.
  • If the username entered is invalid, an error message is displayed.

Question

  • The current guide pool is checked. If no guides are online, an error message is displayed.
  • If at least one guide is online, an unidle guide is randomly selected and the user is issued a confirmation prompt.
  • If the user confirms, a question is sent to the guide according to the linked spec.

Time

  • The proper key prints the current system time.

Tag

Reply eXpress

  • An X to the last person to send the user an X is initiated. (see #eXpress messages)
  • If the last sender is not online, an error message is displayed according to the linked spec.
  • If no Xes have been received in the current session, an error message is displayed according to the linked spec.
  • Attempting to X someone not on one's enable list while X-disabled prints an error message.

Wholist

  • The proper key immediately displays the wholist in the format specified by the sysops; see nuDOC Requirements Specification/Config menu/System.
    • If geographic, users with hidden profile data do not have that data displayed in the wholist.
  • The proper key immediately displays the wholist in short format.
  • X-disabled flags are correctly displayed.
  • Guide flags are correctly displayed.
  • Mute flags are correctly displayed.
  • Sysop/programmer (op) flags are correctly displayed.
  • Doing fields are correctly displayed in the long list.
  • Time online is correctly displayed in the long list.
  • Idle time is correctly displayed in the long list.

eXpress message

  • The proper key prompts the user for the recipient of an eXpress message. The last user from whom an X was received is prefilled and can be selected by simply hitting enter.
  • An invalid username entered at the prompt results in an error message.
  • Entering a valid username begins an X message. (see #eXpress messages)
  • Attempting to X someone not on one's enable list while X-disabled prints an error message.

Toggle eXpress messages

  • The proper key toggles the user's ability to receive eXpress messages (and their associated flag in the wholist) while displaying a message according to the linked spec.

Yell

  • The proper key enters a yell in regular edit mode or upload mode (see message entry).
  • A confirmation prompt is issued before entry begins.

Full profile

  • If the user is a sysop, the proper key prompts the user for a username to profile.
  • If the user is not a sysop, nothing happens.
  • The prompt is prefilled with the author of the last message read, unless the message is anonymous in which case nothing is prefilled.
  • If the username entered is valid, that user's profile is displayed, including any hidden data.
  • If the username entered is invalid, an error message is displayed.

Delete thread

  • If the user is not a Sysop or Roomaide of the current room, nothing happens.
  • The proper key prompts the user for confirmation, requiring them to type 'DELETE' in upper case characters as confirmation.
    • On confirmation, the entire thread is deleted and a note is made in the admin log.
    • On failure to confirm, an error is displayed and the user is returned to the read prompt.

Reveal anon

  • If the user is not a Sysop or Roomaide of the current room, nothing happens.
  • If the user has sufficient priveleges a shift-Y confirmation prompt is presented.
    • On confirmation, the anonymous author is displayed and a note is made in the admin log.
    • On failure to confirm, a message is displayed according to the linked spec.

Toggle guideflag

  • If the user is flagged as a guide by the sysops, the proper key toggles the available for questions flag and prints a message according to the linked spec.
  • If the user is not flagged as a guide by the sysops, nothing happens.

eXpress message log

Validate

(See #Validate in case of changes, as these tests are duplicate)

  • If the user is a Sysop, the proper key enters the user validation system.
  • If the user is not a Sysop and has not entered a correct e-mail verification code, the proper key enters the e-mail verification system.

User validation

  • A counter of remaining users and skipped users is displayed with each iteration.
  • The full profile of an unvalidated user is displayed each iteration.
  • A prompt is displayed with each iteration according to the linked spec.
  • The accept key validates the current user under consideration, removes them from the queue, and advances to the next user if any.
  • The change key drops the user into the config menu with the current user under consideration as the working user. When the config menu is exited, the program returns to the short prompt.
  • The delete key prompts the user for confirmation according to the linked spec. If confirmed, the user under consideration is immediately deleted and the process advances to the next user if any.
  • The skip key leaves the user under consideration in the validation queue and advances to the next user, if any.
  • The quit key returns to the short prompt.
  • If there are no users left in the queue upon advance, the program returns to the short prompt.

E-mail verification

  • Entering e-mail verification with a previously verified address produces an error message according to the linked spec.
  • Entering a correct code with auto-validation on (see nuDOC Requirements Specification/Config menu/System) immediately validates the user.
  • Entering a correct code with auto-validation off prints a message according to the linked spec.
  • Entering an incorrect code prints an error message and re-prompts the user.
  • At any code entry prompt the user may elect to re-send the code to the e-mail address in his profile. See linked spec.

Aide commands

Ban

  • Prompts for the name of a user to ban/unban.
    • An invalid name displays an error message.
    • A valid username of an unbanned user prompts for a number of days to ban.
      • After the time prompt, a confirmation prompt is presented according to linked spec.
      • Entering a number of days other than 0 sets a ban with an automatic expiration after the given number of days.
      • Entering 0 as the number of days sets a permanent ban.
    • A valid username of a banned user displays the length of the remaining ban and an option to unban.
      • A confirmation prompt for unbanning is displayed. If confirmed, the user is unbanned.
  • Any ban/unban makes a note in the admin log.
  • Banned users may not log in to the BBS and an error message is presented when they try to do so.

Create room

  • A prompt is issued for the name of the room to be created.
  • Only non-fully-numeric names which do not already exist are valid.
  • A confirmation prompt is issued after the name is chosen.
  • Once given a valid room name, the room is created and the user dropped into the room options editor.
  • Hitting enter with no name at the name prompt or at the confirm prompt aborts the process and returns the user to the Aide menu.

Roomaide

  • The list of current roomaides for the room is displayed.
  • The user is prompted whether to add or delete a roomaide.
  • After choosing to add or delete, the user is prompted for a name.
  • Entering a valid name having chosen to add will install the chosen user as roomaide.
  • Entering a valid name having chosen to delete will remove the chosen user as roomaide.
  • Entering an invalid name will display an error message.
  • Hitting enter at any of the prompts drops the user back to the aide menu.

Roominfo

  • The proper key displays the current room info, paginated as necessary.
  • This is followed by a confirmation prompt.
  • Upon confirmation the user is allowed to upload new roominfo.
  • The new roominfo is installed immediately after upload.

Room options

  • A series of options prompts are presented according to linked spec.
  • If a duplicate or all-numeric room name is entered, an error message is displayed.
  • Setting a room public makes it public.
  • Setting a room guessname requires all users who have the room zapped or have never jumped to it to have to jump or skip explicitly to the room by its full name.
  • Setting a password on the room causes users who have the room zapped or have never jumped to it to have to enter the password to add the room to their read list.
    • Failing the password verification prints an error and restarts the verification.
  • Setting the room invite only causes the users to have to be invited manually by sysops or roomaides.
    • Setting a public room guessname, passworded or invite-only prompts the user whether or not to cause all users to forget the room.
  • Setting the room to be restricted to guest, twits and unvalidated users causes the room to not appear on their read or known rooms list.
  • Any user who is not a member of a passworded, guessname or invite only room will not have that room on their read or known rooms list.
  • Setting the identity option to "normal" disallows anonymous posting in the room.
  • Setting the identity option to "anon" makes the room 100% anonymous.
  • Setting the identity option to "anon-optional" allows users to make anonymous postsin the room if they wish.
  • A confirmation prompt is presented allowing changes to be saved or aborted.

Invite

  • Presents a prompt requesting a user name to invite.
  • Inviting a valid user adds the current room to that user's read list and known rooms (makes it visible) and grants them access, regardless of whether the room is password, guessname or invite-only.
  • Inviting an invalid user displays an error message.

Kickout

  • Prompts for the name of a user to kick/unkick.
    • An invalid name displays an error message.
    • A valid username of an unkicked user prompts for a number of days to kick.
      • After the time prompt, a confirmation prompt is presented according to linked spec.
      • Entering a number of days other than 0 sets a kick with an automatic expiration after the given number of days.
      • Entering 0 as the number of days sets a permanent kick.
    • A valid username of a kicked user displays the length of the remaining kick and an option to unkick.
      • A confirmation prompt for unkicking is displayed. If confirmed, the user is unkicked.
  • Any kick/unkick makes a note in the admin log.
  • Kicked users may not jump or skip to the room they are kicked out of or otherwise read any messages there; attempting to do so produces an error message.

Logout user

  • A prompt is presented asking for the name of a user to log out.
  • A valid name of an online user logs that user out immediately and makes a note in the admin log.
  • A valid name of an offline user displays an error message.
  • An invalid name displays an error message.

Logout all

  • A shift-Y confirmation prompt is presented. Hitting enter at this prompt aborts.
  • A confirmation immediately logs out all users other than the sysop from the BBS and makes a note in the admin log.

Muzzle

  • Prompts for the name of a user to muzzle/unmuzzle.
    • An invalid name displays an error message.
    • A valid username of an unmuzzled user prompts for a number of days to muzzle.
      • After the time prompt, a confirmation prompt is presented according to linked spec.
      • Entering a number of days other than 0 sets a muzzle with an automatic expiration after the given number of days.
      • Entering 0 as the number of days sets a permanent muzzle.
    • A valid username of a muzzled user displays the length of the remaining muzzle and an option to unmuzzle.
      • A confirmation prompt for unmuzzleing is displayed. If confirmed, the user is unmuzzled.
  • Any muzzle/unmuzzle makes a note in the admin log.
  • Muzzled users may not post messages or replies in the room in which they are muzzled; attempting to do so produces an error message.

Twit

  • Prompts for the name of a user to twit/untwit.
    • An invalid name displays an error message.
    • A valid username of an untwitted user prompts for a number of days to twit.
      • After the time prompt, a confirmation prompt is presented according to linked spec.
      • Entering a number of days other than 0 sets a twit with an automatic expiration after the given number of days.
      • Entering 0 as the number of days sets a permanent twit.
    • A valid username of a twitted user displays the length of the remaining twit and an option to untwit.
      • A confirmation prompt for untwiting is displayed. If confirmed, the user is untwitted.
  • Any twit/untwit makes a note in the admin log.
  • Twitted users may not post messages or replies in any room, may not send mail (but may send yells), may not send Xes, may not change their doing field or profile info or settings.

Whoknows

  • Immediately displays a 3-column list of all users who know the current room according to linked spec, paginated as necessary.

Broadcast

  • Accepts an X message for broadcast to all users. On completion of entry the message is broadcast.
  • ABORT on a line by itself aborts the message.

Zap room

  • Presents a warning and a confirmation prompt to which the user must type 'DELETE' in capital letters.
    • If confirmed, the room and all its posts, tags and other associated data are immediately expunged from the database and the user is dropped back to the Lobby, as are all users reading the room. A note is made in the admin log.
    • If not confirmed an error message is displayed.

Config menu

User

  • The proper key prompts for a username to make the working user.
  • If a valid name is entered, that user's full profile is displayed and the config menu prompt changes to include the user's name; all changes made in the config menu now affect that user.
  • If an invalid name is entered, an error message is displayed.

User flags

  • If there is no working user (see above), an error message is displayed.
  • If there is a working user, a series of yes/no prompts are displayed enabling the user's flags to be set according to the linked spec.
  • Each of the flags is set according to the choices made by the user.
  • A note about any completed change is made in the admin log.

Change username

  • If there is no working user, an error message is displayed.
  • Prompts for a new name for the working user.
  • If the new name is invalid or already exists an error message is displayed.
  • If the new name is valid and free, the working user's name is changed to the new name.

System config

  • Enters the system configuration options. See NuDOC_Requirements_Specification/Config_menu/System.
  • Each yes/no flag in the series of prompts presented is applied correctly.
  • Numeric values entered affect the behavior of the system properly.
  • An account creation password, if entered, is required to create new accounts on the system.

Address

  • A confirmation prompt is issued. If the user confirms, they are allowed to change their address info.
  • Blank entries on mandatory fields are not allowed.
  • Changing one's e-mail address devalidates that user until the address is verified.
  • Upon change of an e-mail address, a new verification e-mail is sent out.
  • Revalidation of a previously validated user who has changed their e-mail address automatically validates that user regardless of sysop settings about manual validation.
  • A shift-Y confirmation prompt is required to change the e-mail address.

Vanity flag

  • If the changing user is a normal user and vanity flag editing has been disallowed for these users, an error message is displayed.
  • Otherwise (or if a sysop is editing another user), the changing user is prompted for a new vanity flag and whatever they enter is displayed in the vanity flag field in the profile of the changed user.

Profile info

  • The current profile info is printed.
  • A confirmation prompt is issued.
  • Upon confirmation, the user may enter up to 10 lines of profile information which is immediately displayed in that user's profile upon completion.

Ignore list

  • Enters the ignore list management menu.

BBS ignore list

  • Presents the BBS-wide ignore list according to the linked spec.

Room ignore list

  • Presents the room-level ignore list according to linked spec.

eXpress ignore list

  • Presents the eXpress message ignore list according to linked spec.

Ignore user

  • Prompts for a user to ignore. Invalid usernames display an error.
  • If the username is valid, prompts to ignore Xes, room-level or BBS-wide.
  • Ignoring Xes adds the offending user to the operator's X ignore list. Xes from the offending user will no longer be received.
  • Ignoring an offending user BBS-wide will ignore posts from that user in all rooms (with a possible exception if the offending user makes a roomaide flagged post or the operator is reading a room in which they are roomaide, the offending user posted and a System config option was set). Anonymous posts are never ignored.
    • Depending on the value of a config option, ignoring a user BBS-wide may also ignore Xes.
    • Ignoring a user BBS-wide clears any room-level ignores present for that user.
  • Ignoring an offending user in a particular room presents a prompt for the room name. Numeric and partial rooms are accepted. Posts from the offending user in the selected room will be ignored (with a possible exception if the offending user makes a roomaide flagged post or the operator is reading a room in which they are roomaide, the offending user posted and a System config option was set). Anonymous posts are never ignored.

Unignore user

  • Prompts for the name of a user to unignore. Invalid names give an error.
  • If the user is ignored BBS-wide, Xan unignore confirm prompt to that effect is presented.
  • If the user is ignored in one or more rooms, an unignore prompt asking for the specific room is presented.
    • Invalid rooms display an error message.
    • Valid rooms cause the unoffending user to be unignored in the specified rooms. Partials and numeric are okay.
    • Entering 'ALL' unignores the unoffending user in all rooms.
  • If the user is (also) ignored in Xes, an unignore confirm prompt to that effect is presented.
  • If the user hits enter at any prompt, they are returned to the ignore config prompt OR to the next question as appropriate.

Options

  • Presents a series of yes/no options related to ignore functionality.
  • These options are all followed.
  • If the sysops have disallowed roomaides from ignoring posts in their own rooms, the listed option does not appear.

Friends list

  • Enters the friends list management menu.

Friend user

  • The user's current friends are displayed.
  • The user is prompted for the name of a user to friend.
  • Invalid names or already-friended names produce an error message.
  • Valid names are added to the user's friends list.

Unfriend user

  • The user's current friends are displayed.
  • The user is prompted for the name of a user to unfriend.
  • Invalid names or names not on the friends list produce an error message.
  • Valid names are removed from the user's friends list.

Options

  • A series of yes/no prompts are presented to set friends-related options.
  • The effects of the options are implemented correctly.

Options

  • A series of yes/no prompts setting options is presented.
  • The options are implemented correctly.

Password

  • The user is allowed to change their password after verifying their current password.
  • The new password must be entered twice for verification.

Reminder

  • Allows the user to set a 1-line reminder which is displayed to them upon every login.
  • Hitting enter at the prompt with nothing entered blanks the reminder and shuts it off.

Secret status

  • Enters the profile hiding system. The user is prompted to hide all, unhide all or selectively hide their profile info.
  • Electing to hide all information hides all personal details from the user's public profile.
  • Electing to unhide all information allows all personal details to be seen in the user's public profile.
  • Selectively hiding/unhiding information allows the user to individually flag items of personal information for hiding according to the linked spec.
  • The user's location is only displayed in the geographic wholist if this information is unhidden.

Terminal type

  • The user is prompted to enable color or not according to linked spec.
  • Color is enabled if requested and if the user's terminal supports it.

eXpress config

  • Enters the eXpress configuration menu.

QuickX

  • Displays the user's current QuickX list.
  • Allows the user to select a QuickX slot.
  • Selecting a slot prompts for a username to add. The current user if any is prefilled into the prompt, but
    • Hitting return at a prompt for a filled slot prompts the user to confirm clearing that slot.
    • Entering a valid name puts that user into the slot.
    • Entering an invalid name displays an error.

Enable

  • The user's enable list is displayed according to the linked spec.
  • The user is prompted to add or remove a user.
  • After selecting, the user is prompted for the name of a user to add or remove.
    • Invalid names produce an error.
    • Removing names not on the list produces an error.
    • Adding or removing valid names has the intended effect.
  • Hitting enter at either prompt returns the user to the X Config prompt.

Options

  • A series of yes/no prompts setting options is presented.
  • The options are implemented correctly.

Log

  • A yes/no confirm prompt is presented allowing the user to clear her eXpress log.
    • On confirmation, the user's eXpress log is cleared. Any Xes losing all reference are deleted from the database.

MultiZapper

  • A prompt is presented allowing the user to zap or unzap all rooms on the BBS.
  • The user's choice is immediately implemented.
  • Hitting enter or entering an invalid choice at the prompt returns the user to the config menu prompt.

Delete acct

  • Prompts the user for confirmation in the form of his current password.
  • Prompts the user again for confirmation according to linked spec.
  • Upon confirmation:
    • The user is logged out if online
    • The user's mail is purged
    • The user's account info is purged
    • The user's X log is cleared and dereferenced Xes are purged
    • The user's account is flagged deleted and the user number is retired.

Guide status

  • If the user is flagged as a guide, displays a yes/no confirmation prompt re: setting their guide status available when they log in.
  • The user's choice is followed.
  • If the user is not a guide, an error is displayed.

Help

  • A help screen is displayed.

Help menu

Regular Interface

  • Upon entering the help system, a list of all available topics is displayed according to linked spec.
  • The user is prompted for a help topic to display.
  • Hitting '?' redisplays the list of topics.
  • Entering an invalid topic displays an error.
  • Entering a valid topic displays that topic with pagination as needed and then returns to the (modified) prompt according to linked spec.
  • Hitting enter at the prompt returns the user to the prompt from which they came.

Sysop Interface

  • The proper key at the normal help system prompt enters management mode if the user is a sysop.
  • If the user is not a sysop, nothing happens.
  • Management mode displays a list of existing topics and presents a prompt allowing the user to create, delete or modify a topic.
  • Hitting return at the management prompt drops the user back to the normal help menu.

Creating a topic

  • The proper key allows the user to create a new topic.
  • The user is prompted for a name for the new topic.
    • Duplicate names are not allowed.
    • Blank names drop back to the management prompt.
    • Names are limited to 16 characters in length.
  • After a name is entered the user is prompted for normal entry or upload mode (see #Message entry).
  • After the topic is entered, it is saved and added to the active list and the user is returned to the management prompt.

Editing a topic

  • The proper key allows the user to "edit" a topic (display it and re-enter it).
  • The user is prompted for the name of a topic to edit.
  • Nonexistent names produce an error.
  • When a valid name is entered that topic is displayed with pagination as needed.
  • After the topic is displayed, a prompt for normal entry or upload mode is issued (see #Message entry).
  • The user may enter new text for the topic according to her choice.
  • After entry, the new text is saved.

Deleting a topic

  • The proper key allows the user to delete a topic.
  • The user is prompted for the name of a topic to delete.
  • Nonexistent topics produce an error message.
  • Upon entering a valid topic name, the user is prompted for confirmation according to spec.
  • Upon confirming, the topic content is deleted and it is removed from the list of available topics.

Message entry

Common interface elements

Starting a message

  • Upon starting a new message a post header is displayed according to the linked spec.
  • The user is prompted for a subject. If replying to a message, the previous subject is prefilled.
  • Hitting enter at the subject prompt accepts the subject, blank or not.

The post prompt

  • Upon hitting enter on a blank line (line edit mode) or hitting ctrl-D (upload mode), the post prompt is displayed.
  • Whenever the post prompt is displayed, any incoming X messages are first displayed.
Abort
  • The proper key prompts the user to confirm aborting.
  • If not confirmed, the user is returned to the post prompt.
  • If confirmed, the message is discarded and the user is returned to the prompt (short or read) from which they came.
Continue
  • The proper key allows the user to continue post entry at the line where they left off.
  • An extra line break is not inserted.
Print
  • Redisplays the entire post with pagination and then returns the user to editing where they left off.
  • An extra line break is not inserted.
Save
  • The proper key immediately saves the post to the room in question.
  • The post is placed in its proper place in the thread hierarchy.
  • The user is returned to the prompt (short or read) from which they came.
eXpress
  • The proper key prompts the user for the recipient of an eXpress message. The last user from whom an X was received is prefilled and can be selected by simply hitting enter.
  • An invalid username entered at the prompt results in an error message.
  • Entering a valid username begins an X message. (see #eXpress messages)
  • Attempting to X someone not on one's enable list while X-disabled prints an error message.

Normal (line edit) mode

  • The user is able to continuously type text line by line.
  • The current line only may be edited with the backspace and ^W (delete word) keys.
  • Hitting enter on a blank line drops the user to the post prompt.
  • X messages do not arrive while posting unless the option is enabled.
  • Broadcast messages always arrive immediately.

Upload mode

  • The user is able to continuously type text line by line.
  • The current line only may be edited with the backspace and ^W (delete word) keys.
  • Hitting Ctrl-D drops the user to the post prompt.
  • Hitting enter on a blank line enters a blank line.
  • X messages do not arrive while posting unless the option is enabled.
  • Broadcast messages always arrive immediately.

Aide flag (upload) mode

  • If the user is a Sysop, the (Sysop) flag is applied to the post.
  • If the user is a Roomaide, the (Roomaide) flag is applied to the post.
  • If the user is neither, nothing happens.
  • The post is otherwise entered just like upload mode.

Special features

Spoiler tag

  • Entering "@MORE@" on a blank line in a post in any mode causes a More prompt to be displayed on that line.
  • Only the first "@MORE@" causes a More prompt.
  • All "@MORE@"s in a post are not displayed when reading the post.

Message reading

Message display

Threading

Flat read order
  • If flat read order is selected, messages are displayed in sequential numeric order with successive requests as long as more remain to be read.
  • Deleted messages are skipped without notification.
Thread read order
  • If threaded read order is selected, messages are displayed in the order specified by the linked spec.
Deleted posts in threads
  • Deleted posts do not break thread subtrees as specified in the linked spec.
  • Deleted posts are skipped without notification as specified in the linked spec.

Header

  • Post headers display properly.

Pagination

  • Posts are paginated properly for the user's screen height.
  • The "percent remaining" number is calculated according to the linked spec.
Spoiler prompt
  • The spoiler prompt functions according to linked spec.

Ignore list

  • The proper message is displayed for an ignored post.
  • The proper message is displayed for an ignored subthread.
  • The proper message is displayed for an ignored thread.

eXpress messages

  • Messages are limited to 790 characters.

Sending Xes

  • The proper key initiates an X at all prompts listed in the linked spec.
  • Initiating an X prompts the user for a recpient according to linked spec.
  • If the user entering the X has received an X, the username of the sender of the last X is prefilled in the to: prompt.
    • Simply hitting enter at this prefilled prompt starts and X to the prefilled user.
    • Hitting enter at a prompt with no prefilled name drops out of X sending to the previous prompt.
  • If the recipient is not online, an error message is displayed.
  • If the recipient does not exist, an error message is displayed.
  • If the recipient is X-disabled and the sender is not on that user's enable list, an error message is displayed.
  • If the recipient is online but twitted, an error message is displayed.
  • If the sender is X-disabled and the recipient is not on the sender's enable list, an error message is displayed.

X message entry

  • A ">" prompt is presented at the beginning of each line.
  • Words wrap at the end of the line.
  • Hitting enter on a blank line sends the X immediately.
  • Hitting enter on the 10th line sends the X immediately.
  • Entering "ABORT" at the beginning of a line with no other text aborts the X.
  • "Sending" a blank X (hitting enter at the first blank line) returns the recipient's busy status according to linked spec.
  • After an X is sent (not aborted), the recipient's busy status is displayed according to linked spec.

Missed Xes

  • If the recipient of an X goes offline between the time the sender starts it and attempts to send it, the sender is prompted to forward the message to the recipient's mail per linked spec.
  • The message is forwarded properly per linked spec.

Receiving Xes

  • eXpress messages arrive immediately where they are supposed to according to linked spec.
  • eXpress messages are held in a queue when receiving is temporarily disabled according to the linked spec.
  • Message display follows the linked spec.

eXpress message log

  • The eXpress log conforms to the max storage limit as mentioned in linked spec.
  • Xes display according to linked spec.
  • Menu displays according to linked spec.
  • <n>ext displays the next X message in the current read direction.
  • <b>ack changes the read direction.
  • <s>top drops the user back to the previous prompt from which they entered the X log.
  • <#> allows the user to move the read pointer to a specific X number.
    • moving the read pointer to a lower number than still exists moves to the lowest numbered X.
    • moving the read pointer beyond what exists moves to the highest numbered X.
  • Message reading starts at the newest X with the direction moving older.

Known rooms list

  • The K-list displays according to the linked spec.
  • Extended characters work/fall back gracefully.

Wholist

Long format

  • The wholist displays in the sort order selected by the user (newest logins first by default).
  • The wholist displays the From field in the manner sysops have configured.
  • Flags appear according to linked spec.
  • Fields display with the character limits/widths according to linked spec.
  • The time field collapses/changes according to linked spec.
  • The Doing field displays according to linked spec, with "Message system" and idle times as specified.

Full hostname

  • Full host displays properly.

Chopped hostname

  • Chopped host displays properly.

Geographic location

  • Geographic location displays the city/state fields in the users profile, truncated properly.
    • Geographic location does not display for users that have hidden this information in their profile.

Short format

  • Users are displayed according to the linked spec.
  • Flags are displayed properly.
  • Sort order is always newest logins first, left to right, top to bottom.

Friends only

  • A wholist is displayed exactly the same way the long-format wholist would be displayed when configured by the system, except only the user's friends are displayed.

Aidelist

  • The sysop/programmer list is displayed according to linked spec.
  • The roomaide list is displayed according to linked spec.
  • Hidden rooms are not displayed.

Profile

Regular profile

  • Regular profiles display according to linked spec, with hidden information hidden.
  • If the system is configured for chopped hostnames or geographic From in the wholist, the chopped hostname is displayed, otherwise the full hostname is displayed.

Full profile

  • Full profiles do not display to users who are not sysops or programmers.
    • Regular users can full profile themselves.
  • Full profiles display according to linked spec, with hidden information revealed.
  • The full hostname is revealed.

Roominfo

  • The roominfo header displays according to linked spec.
  • The roominfo is properly paginated if it is too long for the user's screen in the same way a message is paginated; spoiler prompts have no effect.

Find

  • Searching for phrases in double quote marks (") searches for the entire phrase.
  • After searching is complete, the user is returned to the prompt from which they came.

From the short prompt (BBS-wide)

Basic searching

  • The menu is displayed according to linked spec.
  • If the user enters Find from the short prompt, by default they will be searching for posts BBS-wide.
  • Searching for threads searches by default by tags, full text of posts and room name.
  • Searching for rooms by default searches by tags, roominfo full text, and room name.
  • Searching for everything runs a room, thread and post search in order.

Advanced searching

  • The menu is displayed according to the linked spec for entry from the short prompt.
  • Posts is the only indicator toggled upon entry to advanced mode.
Threads, Rooms and Posts
  • Selecting threads, rooms or posts toggles the indicator and properly restricts search to the selected object type.
  • Selecting a different criterion to narrow on after one has already been selected works properly.
Author
  • Selecting to narrow by author toggles the indicator and prompts for a username.
    • If user is nonexistent, indicator is not set, error message is displayed and menu is redisplayed.
  • Selecting author when one has already been set will clear the previous setting and re-prompt.
    • If a new invalid author is selected, the field is cleared completely.
Date
  • Users cannot search rooms by date.
  • Selecting to narrow by date toggles the indicator and prompts for a date range according to linked spec.
    • Lazy date range selection works according to linked spec.
  • Selecting date when a date range has already been selected clears and reprompts.
  • Invalid date ranges (invalid or future dates) generate an error message.
  • Start date after end date generates an error message.
Searching by tag
  • Selecting to narrow by tag toggles the indicator and prompts for a comma-separated list of tags.
  • Selecting tag when tags have already been entered clears and reprompts.
  • Tags are searched by OR, not AND.
Searching by full text
  • Selecting to narrow by full text toggles the indicator and prompts for a full text search phrase.
  • Quote marks cause phrase searching.
  • Selecting fulltext when fulltext has already been entered clears and reprompts.
  • Elements in the search phrase are searched by OR, not AND.

From the read prompt (within a room)

  • If the user enters Find from the read prompt, by default they will be searching for posts within the current room.
  • The notification of room displays according to linked spec.
  • A user is not able to search outside the current room when searching from the long prompt within a room.
    • A user cannot search for rooms from within a room, only threads and posts.

Basic searching

  • The menus display and function according to linked spec. (See above)

Advanced searching

  • The menus display and function according to linked spec.
  • Posts is the only indicator toggled upon entering advanced mode.

Results display

  • Results display according to linked spec.
  • Object types with no results (whether because they were not searched or because no matches came up) are suppressed.
  • The no matches message displays properly when nothing is found.

Tagging

  • Tagging rooms works.
  • Tagging threads works.
  • Tagging posts works.
  • Tags are folded to lower case.
  • Tags are limited to 35 characters.
  • Tags are alphanumeric only.

Tagging a room

  • The tagging UI displays according to linked spec.
  • Previously extant tags owned by the user are displayed if they exist.
    • Previously extant tags are editable.

Tagging a thread

  • The tagging UI displays according to linked spec.
  • Previously extant tags owned by the user are displayed if they exist.
    • Previously extant tags are editable.

Tagging a post

  • The tagging UI displays according to linked spec.
  • Previously extant tags owned by the user are displayed if they exist.
    • Previously extant tags are editable.
Personal tools