docs/index.md

Thu, 23 Mar 2023 18:28:20 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 23 Mar 2023 18:28:20 +0000
changeset 181
3a9b9c98304a
parent 166
5d39804f108b
permissions
-rw-r--r--

Add support for component connections

166
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 # Scansion - Automated XMPP Client
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 Scansion is an automated scriptable XMPP client, useful for testing and
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 automating tasks. It is primarily designed to be a handy tool in an XMPP
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 developer's toolbox, however its scripting language is designed to be easy
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 to read and write by non-programmers who understand basic XML and XMPP.
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 An example Scansion script:
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 ```xml
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 # Pubsub: Test node creation
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 [Client] Romeo
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 jid: admin@localhost
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 password: password
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 [Client] Juliet
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 jid: juliet@localhost
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 password: password
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 ---------
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 Romeo connects
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 # Create the node
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 Romeo sends:
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 <iq type='set' to='pubsub.localhost' id='create-node'>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 <pubsub xmlns='http://jabber.org/protocol/pubsub'>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 <create node='princely_musings'/>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 </pubsub>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 </iq>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 # Server acknowledges successful creation
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 Romeo receives:
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 <iq type='result' id='create-node'/>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 # Juliet sees the node appear in the node list
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 Juliet connects
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 Juliet sends:
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42 <iq type='get' id='list-nodes' to='pubsub.localhost'>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 <query xmlns='http://jabber.org/protocol/disco#items'/>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 </iq>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 Juliet receives:
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47 <iq type='result' id='list-nodes' from='pubsub.localhost'>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 <query xmlns='http://jabber.org/protocol/disco#items'>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 <item xmlns='http://jabber.org/protocol/disco#items' jid='pubsub.localhost' node='princely_musings'/>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 </query>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51 </iq>
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 # Yay!
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 ```
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 This example demonstrates how Scansion:
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59 - Supports multiple characters in a script
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 - Takes care of establishing a connection and authentication
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61 - Automatically verifies responses to stanzas
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
63 This final point is what makes Scansion a great tool for testing - it
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
64 has a flexible matching system that allows you to ensure a certain stanza
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
65 receives the response you expect.
5d39804f108b docs: Add initial documentation
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
66

mercurial