test ChatroomSetup: # Local chatrooms spawn as p1 with p1: send "create-identity Device1 Owner1" send "chatroom-create first" send "chatroom-create second" send "chatroom-list-local" expect /chatroom-list-item ([a-z0-9#]+) first/ capture first expect /chatroom-list-item [a-z0-9#]+ second/ local: expect /chatroom-list-(.*)/ capture done guard (done == "done") expect /chatroom-create-done ([a-z0-9#]+) first.*/ from p1 capture first expect /chatroom-create-done ([a-z0-9#]+) second.*/ from p1 capture second # Send chatrooms to new peers spawn as p2 send "create-identity Device2 Owner2" to p2 spawn as p3 send "create-identity Device3 Owner3" to p3 for p in [ p1, p2, p3 ]: with p: send "chatroom-watch-local" send "start-server" for p in [ p2, p3 ]: with p: expect /chatroom-watched-added [a-z0-9#]+ first/ expect /chatroom-watched-added [a-z0-9#]+ second/ with p2: send "chatroom-list-local" expect /chatroom-list-item [a-z0-9#]+ first/ expect /chatroom-list-item [a-z0-9#]+ second/ local: expect /chatroom-list-(.*)/ capture done guard (done == "done") # Create and sync additional chatrooms send "chatroom-create third" to p1 send "chatroom-create fourth" to p2 send "chatroom-create fifth" to p3 expect /chatroom-create-done ([a-z0-9#]+) fourth.*/ from p2 capture fourth expect /chatroom-create-done ([a-z0-9#]+) fifth.*/ from p3 capture fifth for p in [ p1, p2, p3 ]: with p: expect /chatroom-watched-added [a-z0-9#]+ third/ expect /chatroom-watched-added [a-z0-9#]+ fourth/ expect /chatroom-watched-added [a-z0-9#]+ fifth/ # Update chatroom name send "chatroom-set-name $first first2" to p1 for p in [ p1, p2, p3 ]: with p: expect /chatroom-watched-updated [a-z0-9#]+ first2.*/ send "chatroom-set-name $fourth fourth2" to p2 send "chatroom-set-name $fifth fifth2" to p3 for p in [ p1, p2, p3 ]: with p: expect /chatroom-watched-updated [a-z0-9#]+ fourth2.*/ expect /chatroom-watched-updated [a-z0-9#]+ fifth2.*/ test ChatroomMessages: spawn as p1 send "create-identity Device1 Owner1" to p1 for p in [ p1 ]: with p: send "chatroom-watch-local" send "start-server" send "chatroom-create room" to p1 expect /chatroom-create-done ([a-z0-9#]+) room.*/ from p1 capture room for p in [ p1 ]: with p: expect /chatroom-watched-added $room room/ send "chatroom-message-send $room message1" to p1 expect /chatroom-message-new $room from Owner1 text message1/ from p1 send "chatroom-message-send $room message2" to p1 local: expect /chatroom-message-new $room from Owner1 text (.*)/ from p1 capture msg guard (msg == "message2")