summaryrefslogtreecommitdiff
path: root/test/invite.et
diff options
context:
space:
mode:
Diffstat (limited to 'test/invite.et')
-rw-r--r--test/invite.et194
1 files changed, 194 insertions, 0 deletions
diff --git a/test/invite.et b/test/invite.et
new file mode 100644
index 0000000..52f2c8b
--- /dev/null
+++ b/test/invite.et
@@ -0,0 +1,194 @@
+module invite
+
+import common
+
+test InviteContact:
+ let services = "contact,invite"
+
+ spawn as p1
+ spawn as p2
+
+ send "create-identity Device1 Owner1" to p1
+ expect /create-identity-done ref ($refpat)/ from p1 capture p1id
+ send "identity-info $p1id" to p1
+ expect /identity-info ref $p1id base ($refpat) owner ($refpat).*/ from p1 capture p1base, p1owner
+ send "identity-info $p1owner" to p1
+ expect /identity-info ref $p1owner base ($refpat).*/ from p1 capture p1obase
+
+ send "create-identity Device2 Owner2" to p2
+ expect /create-identity-done ref ($refpat)/ from p2 capture p2id
+
+ send "start-server services $services" to p1
+ send "start-server services $services" to p2
+
+ expect from p1:
+ /peer ([0-9]+) addr ${p2.node.ip} 29665/ capture peer1_2
+ /peer $peer1_2 id Device2 Owner2/
+
+ expect from p2:
+ /peer ([0-9]+) addr ${p1.node.ip} 29665/ capture peer2_1
+ /peer $peer2_1 id Device1 Owner1/
+
+ send "invite-contact-create Contact2" to p1
+ expect from p1 /invite-contact-create-done ([^ ]+)/ capture token
+
+ with p2:
+ send "invite-accept 00 $p1obase"
+ expect /invite-accept-done 00/
+ expect /invite-reply 00 invalid/
+
+ send "contact-list"
+ expect:
+ /contact-list-(.*)/ capture done
+ guard (done == "done")
+
+ with p2:
+ send "invite-accept $token $p1obase"
+ expect /invite-accept-done $token/
+ expect /invite-reply $token contact/
+
+ send "contact-list"
+ expect:
+ /contact-list-item [a-z0-9#]+ Owner1 Owner1/
+ /contact-list-(.*)/ capture done
+ guard (done == "done")
+
+ with p2:
+ send "invite-accept $token $p1obase"
+ expect /invite-accept-done $token/
+ expect /invite-reply $token invalid/
+
+ send "contact-list"
+ expect:
+ /contact-list-item [a-z0-9#]+ Owner1 Owner1/
+ /contact-list-(.*)/ capture done
+ guard (done == "done")
+
+ with p1:
+ expect /invite-accepted $token $p2id/
+
+ send "contact-list"
+ expect:
+ /contact-list-item [a-z0-9#]+ Contact2 Owner2/
+ /contact-list-(.*)/ capture done
+ guard (done == "done")
+
+
+test InviteContactDelayed:
+ let services = "contact,invite"
+
+ subnet s1
+ subnet s2
+
+ spawn as p1 on s1
+ spawn as p2 on s2
+
+ send "create-identity Device1 Owner1" to p1
+ expect /create-identity-done ref ($refpat)/ from p1 capture p1id
+ send "identity-info $p1id" to p1
+ expect /identity-info ref $p1id base ($refpat) owner ($refpat).*/ from p1 capture p1base, p1owner
+ send "identity-info $p1owner" to p1
+ expect /identity-info ref $p1owner base ($refpat).*/ from p1 capture p1obase
+
+ send "create-identity Device2 Owner2" to p2
+ expect /create-identity-done ref ($refpat)/ from p2 capture p2id
+
+ send "start-server services $services" to p1
+ send "start-server services $services" to p2
+
+ send "invite-contact-create Contact2" to p1
+ expect from p1 /invite-contact-create-done ([^ ]+)/ capture token
+
+ with p2:
+ send "invite-accept $token $p1obase"
+ expect /invite-accept-done $token/
+
+ send to p2 "peer-add ${p1.node.ip}"
+
+ expect from p1:
+ /peer ([0-9]+) addr ${p2.node.ip} 29665/ capture peer1_2
+ /peer $peer1_2 id Device2 Owner2/
+
+ expect from p2:
+ /peer ([0-9]+) addr ${p1.node.ip} 29665/ capture peer2_1
+ /peer $peer2_1 id Device1 Owner1/
+
+ with p2:
+ expect /invite-reply $token contact/
+
+ send "contact-list"
+ expect:
+ /contact-list-item [a-z0-9#]+ .*/
+ /contact-list-(.*)/ capture done
+ guard (done == "done")
+
+ with p1:
+ expect /invite-accepted $token $refpat/
+
+ send "contact-list"
+ expect:
+ /contact-list-item [a-z0-9#]+ Contact2 .*/
+ /contact-list-(.*)/ capture done
+ guard (done == "done")
+
+
+test InviteContactDiscovery:
+ let services = "contact,invite,discovery"
+
+ subnet sd
+ subnet s1
+ subnet s2
+
+ spawn as pd on sd
+ spawn as p1 on s1
+ spawn as p2 on s2
+
+ send "create-identity Discovery" to pd
+ expect /create-identity-done ref $refpat.*/ from pd
+
+ send "create-identity Device1 Owner1" to p1
+ expect /create-identity-done ref ($refpat)/ from p1 capture p1id
+ send "identity-info $p1id" to p1
+ expect /identity-info ref $p1id base ($refpat) owner ($refpat).*/ from p1 capture p1base, p1owner
+ send "identity-info $p1owner" to p1
+ expect /identity-info ref $p1owner base ($refpat).*/ from p1 capture p1obase
+
+ send "create-identity Device2 Owner2" to p2
+ expect /create-identity-done ref ($refpat)/ from p2 capture p2id
+
+ send "start-server services discovery" to pd
+ send "start-server services $services" to p1
+ send "start-server services $services" to p2
+
+ for p in [ p1, p2 ]:
+ with p:
+ send "peer-add ${pd.node.ip}"
+ expect:
+ /peer 1 addr ${pd.node.ip} 29665/
+ /peer 1 id Discovery/
+ expect from pd:
+ /peer [12] addr ${p.node.ip} 29665/
+ /peer [12] id .*/
+
+ send "invite-contact-create Contact2" to p1
+ expect from p1 /invite-contact-create-done ([^ ]+)/ capture token
+
+ with p2:
+ send "invite-accept $token $p1obase"
+ expect /invite-accept-done $token/
+ expect /invite-reply $token contact/
+
+ send "contact-list"
+ expect:
+ /contact-list-item [a-z0-9#]+ .*/
+ /contact-list-(.*)/ capture done
+ guard (done == "done")
+
+ with p1:
+ expect /invite-accepted $token $refpat/
+
+ send "contact-list"
+ expect:
+ /contact-list-item [a-z0-9#]+ Contact2 .*/
+ /contact-list-(.*)/ capture done
+ guard (done == "done")