tictactoe_move()
{
- curl_post $tictactoe_game_path/move "{ \"move\": $1 }"
+ curl_post $tictactoe_game_path/move "{ \"move\": $1 }" "-b .test-cookie"
}
lmno_profile()
| grep ^data
}
-tictactoe_player()
+tictactoe_player_name()
{
curl_put $tictactoe_game_path/player "{ \"name\": \"$1\" }" "-b .test-cookie"
}
+tictactoe_player_team()
+{
+ curl_put $tictactoe_game_path/player "{ \"team\": \"$1\" }" "-b .test-cookie"
+}
+
TEST_SUBSECTION "Tic Tac Toe player-info"
TEST "Hit LMNO /profile to set name to 'curl'"
TEST "Verify player-info event reports 'curl' name"
result=$(tictactoe_player_info)
-test "$result" = 'data: {"id":1,"name":"curl"}'
+test "$result" = 'data: {"id":1,"name":"curl","team":""}'
TEST_END
TEST_SUBSECTION "Tic Tac Toe /player"
TEST "Change name to 'newname'"
-tictactoe_player newname
+tictactoe_player_name newname
+result=$(tictactoe_player_info)
+test "$result" = 'data: {"id":1,"name":"newname","team":""}'
+TEST_END
+
+TEST "Change team to 'X'"
+tictactoe_player_team X
+result=$(tictactoe_player_info)
+test "$result" = 'data: {"id":1,"name":"newname","team":"X"}'
+TEST_END
+
+TEST "Change team to 'O'"
+tictactoe_player_team O
+result=$(tictactoe_player_info)
+test "$result" = 'data: {"id":1,"name":"newname","team":"O"}'
TEST_END
-TEST "Verify player-info event reports 'newname'"
+TEST "Verify cannot change team to 'Z'"
+tictactoe_player_team Z
result=$(tictactoe_player_info)
-test "$result" = 'data: {"id":1,"name":"newname"}'
+test "$result" = 'data: {"id":1,"name":"newname","team":"O"}'
+TEST_END
+
+TEST "Leave current team"
+tictactoe_player_team ""
+result=$(tictactoe_player_info)
+test "$result" = 'data: {"id":1,"name":"newname","team":""}'
TEST_END
TEST_SUBSECTION "Tic Tac Toe /move"
-TEST "Move to the center square"
+TEST "Illegal to move when not on a team"
+result=$(tictactoe_move 4)
+test "$result" = '{"legal":false,"message":"You must be on a team to take a turn"}'
+TEST_END
+
+TEST "Illegal to move when it's not your turn"
+tictactoe_player_team O
+result=$(tictactoe_move 4)
+test "$result" = '{"legal":false,"message":"It'"'"'s not your turn to move"}'
+TEST_END
+
+TEST "Legal move to center square"
+tictactoe_player_team X
result=$(tictactoe_move 4)
test "$result" = '{"legal":true}'
TEST_END
TEST "Move to center square again is now illegal"
+tictactoe_player_team O
result=$(tictactoe_move 4)
test "$result" = '{"legal":false,"message":"Square is already occupied"}'
TEST_END