+TEST_SECTION "Tic Tac Toe game"
+
+tictactoe_game_path=tictactoe/$tictactoe_game_id
+
+tictactoe_move()
+{
+ curl_post $tictactoe_game_path/move "{ \"move\": $1 }" "-b .test-cookie"
+}
+
+lmno_profile()
+{
+ curl_put /profile "{ \"nickname\": \"$1\" }" "-c .test-cookie"
+}
+
+tictactoe_player_info()
+{
+ curl_get $tictactoe_game_path/events "-m 0.1 -b .test-cookie" 2>&1 \
+ | grep player-info -A 1 \
+ | grep ^data
+}
+
+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'"
+lmno_profile curl
+TEST_END
+
+TEST "Verify player-info event reports 'curl' name"
+result=$(tictactoe_player_info)
+test "$result" = 'data: {"id":1,"name":"curl","team":""}'
+TEST_END
+
+TEST_SUBSECTION "Tic Tac Toe /player"
+
+TEST "Change name to '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 cannot change team to 'Z'"
+tictactoe_player_team Z
+result=$(tictactoe_player_info)
+test "$result" = 'data: {"id":1,"name":"newname","team":"O"}'
+TEST_END