Things that a
client (
friv,
Gamut) should be able to do without choking:
(Maybe this is the same list as the compliant client features on the client page, but those are written like functional spec. Whereas this is my list of cases -- some common, some weird corners -- which we have to think about clients coping with.)
- Start a new game (table).
- Reject RPCs coming from people who are not MUC members.
- Reject RPCs coming from MUC members who are not the referee.
- Join a table which is configuring.
- and show the other players and where they're currently sitting.
- and display the current configuration, as chosen by the other players.
- Change table configuration.
- Sit. Stand.
- Provide non-confusing sit/stand UI...
- in a game with a fixed number of seats.
- in a game with a variable number of seats (like "2 to 4")
- in a game with a variable number of seats (like "up to 20")
- in a game with a variable number of seats (like "4 to 20")
- Go ready. Go unready.
- Go into an unready state because someone (maybe me) performed a configuration change.
- Try to go ready in an invalid table configuration
- and receive the referee's failure reply to ready()
- and display it in the client's i18n.
- Cope with your JID containing Unicode characters.
- Cope with other players' JIDs containing Unicode characters.
- See another player change his MUC nick.
- without screwing up the displayed seating chart or anything.
- Go ready and begin playing.
- Watch a game begin while standing (becoming an observer).
- Join an in-progress game (as an observer).
- and display the current observable state.
- Join an in-progress game which you are sitting at, within the table timeout.
- and re-enter cleanly, picking up all of your game state and displaying it.
See Also