3 #include <stdio.h>
5 #include "pedroxmpp.h"
6 #include "pedroconfig.h"
8 //########################################################################
9 //# T E S T
10 //########################################################################
13 class TestListener : public Pedro::XmppEventListener
14 {
15 public:
16 TestListener(){}
18 virtual ~TestListener(){}
20 virtual void processXmppEvent(const Pedro::XmppEvent &evt)
21 {
22 int typ = evt.getType();
23 switch (typ)
24 {
25 case Pedro::XmppEvent::EVENT_STATUS:
26 {
27 printf("STATUS: %s\n", evt.getData().c_str());
28 break;
29 }
30 case Pedro::XmppEvent::EVENT_ERROR:
31 {
32 printf("ERROR: %s\n", evt.getData().c_str());
33 break;
34 }
35 case Pedro::XmppEvent::EVENT_CONNECTED:
36 {
37 printf("CONNECTED\n");
38 break;
39 }
40 case Pedro::XmppEvent::EVENT_DISCONNECTED:
41 {
42 printf("DISCONNECTED\n");
43 break;
44 }
45 case Pedro::XmppEvent::EVENT_MESSAGE:
46 {
47 printf("MESSAGE\n");
48 printf("from : %s\n", evt.getFrom().c_str());
49 printf("msg : %s\n", evt.getData().c_str());
50 break;
51 }
52 case Pedro::XmppEvent::EVENT_PRESENCE:
53 {
54 printf("PRESENCE\n");
55 printf("from : %s\n", evt.getFrom().c_str());
56 printf("presence : %d\n", evt.getPresence());
57 break;
58 }
59 case Pedro::XmppEvent::EVENT_MUC_MESSAGE:
60 {
61 printf("MUC GROUP MESSAGE\n");
62 printf("group: %s\n", evt.getGroup().c_str());
63 printf("from : %s\n", evt.getFrom().c_str());
64 printf("msg : %s\n", evt.getData().c_str());
65 break;
66 }
67 case Pedro::XmppEvent::EVENT_MUC_JOIN:
68 {
69 printf("MUC JOIN\n");
70 printf("group: %s\n", evt.getGroup().c_str());
71 printf("from : %s\n", evt.getFrom().c_str());
72 printf("presence: %d\n", evt.getPresence());
73 break;
74 }
75 case Pedro::XmppEvent::EVENT_MUC_LEAVE:
76 {
77 printf("MUC LEAVE\n");
78 printf("group: %s\n", evt.getGroup().c_str());
79 printf("from : %s\n", evt.getFrom().c_str());
80 printf("presence: %d\n", evt.getPresence());
81 break;
82 }
83 case Pedro::XmppEvent::EVENT_MUC_PRESENCE:
84 {
85 printf("MUC PRESENCE\n");
86 printf("group : %s\n", evt.getGroup().c_str());
87 printf("from : %s\n", evt.getFrom().c_str());
88 printf("presence: %d\n", evt.getPresence());
89 break;
90 }
92 }
93 }
94 };
97 bool doTest()
98 {
99 printf("############ TESTING\n");
101 char *groupJid = "inkscape@conference.gristle.org";
103 Pedro::XmppClient client;
104 TestListener listener;
105 client.addXmppEventListener(listener);
107 //Host, port, user, pass, resource
108 if (!client.connect("jabber.org.uk", 443, "ishmal", "PASSWORD", "myclient"))
109 {
110 printf("Connect failed\n");
111 return false;
112 }
114 //Group jabber id, nick, pass
115 client.groupChatJoin(groupJid, "mynick", "");
117 client.pause(8000);
119 //Group jabber id, nick, msg
120 //client.groupChatMessage(groupJid, "hello, world");
122 client.pause(3000);
124 //client.groupChatGetUserList(groupJid);
126 client.pause(3000);
128 //client.groupChatPrivateMessage("inkscape2@conference.gristle.org",
129 // "ishmal", "hello, world");
130 client.message("ishmal@jabber.org.uk/https", "hey, bob");
132 client.pause(60000);
134 //Group jabber id, nick
135 client.groupChatLeave(groupJid, "mynick");
137 client.pause(1000000);
139 client.disconnect();
141 return true;
142 }
145 bool configTest()
146 {
147 printf("#################################\n");
148 printf("## C o n f i g t e s t\n");
149 printf("#################################\n");
151 Pedro::XmppConfig config;
153 if (!config.readFile("pedro.ini"))
154 {
155 printf("could not read config file\n");
156 return false;
157 }
159 Pedro::DOMString str = config.toXmlBuffer();
161 printf("#################################\n");
162 printf("%s\n", str.c_str());
164 if (!config.writeFile("pedro2.ini"))
165 {
166 printf("could not write config file\n");
167 return false;
168 }
171 return true;
173 };
177 int main(int argc, char **argv)
178 {
179 if (!configTest())
180 return 1;
181 return 0;
182 }