summaryrefslogtreecommitdiff
path: root/test/chatroom.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/chatroom.test')
-rw-r--r--test/chatroom.test101
1 files changed, 101 insertions, 0 deletions
diff --git a/test/chatroom.test b/test/chatroom.test
new file mode 100644
index 0000000..ffb7b4d
--- /dev/null
+++ b/test/chatroom.test
@@ -0,0 +1,101 @@
+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")