Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added code and unit tests to FakeConnectionObject class
[xestiaab/.git] / source / tests / xestiaab_carddav.cpp
1 // xestiaab_carddav.h - Xestia Address Book CardDAV Object Unit Tests.
2 //
3 // (c) 2012-2015 Xestia Software Development.
4 //
5 // This file is part of Xestia Address Book.
6 //
7 // Xestia Address Book is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by the
9 // Free Software Foundation, version 3 of the license.
10 //
11 // Xestia Address Book is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License along
17 // with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
19 #include <gtest/gtest.h>
20 #include "classes/FakeConnectionObject.h"
22 // TODO: Add tests for the CardDAV object.
24 TEST(CardDAV, Use_Fake_To_Setup_And_Check_Connection_Settings_With_TestMode_True){
25         
26         std::string ServerAddress1 = "gibberish.invalid";
27         std::string ServerUser1 = "user";
28         std::string ServerPass1 = "pass";
30         std::string ServerAddress2 = "gibberish2.invalid";
31         std::string ServerUser2 = "user2";
32         std::string ServerPass2 = "pass2";
33         
34         std::string ServerAddress3 = "gibberish3.invalid";
35         std::string ServerUser3 = "user3";
36         std::string ServerPass3 = "pass3";
37         
38         FakeConnectionObject FakeConnection1(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
39         FakeConnectionObject FakeConnection2(ServerAddress2, 8800, ServerUser2, ServerPass2, true);
40         FakeConnectionObject FakeConnection3(ServerAddress3, 8008, ServerUser3, ServerPass3, false);
41         
42         EXPECT_EQ("gibberish.invalid", FakeConnection1.GetServerAddress());
43         EXPECT_EQ(8080, FakeConnection1.GetServerPort());
44         EXPECT_EQ("user", FakeConnection1.GetServerUser());
45         EXPECT_EQ("pass", FakeConnection1.GetServerPass());
46         EXPECT_EQ(true, FakeConnection1.GetServerSSL());
47         EXPECT_EQ(true, FakeConnection1.GetTestMode());
49         EXPECT_EQ("gibberish2.invalid", FakeConnection2.GetServerAddress());
50         EXPECT_EQ(8800, FakeConnection2.GetServerPort());
51         EXPECT_EQ("user2", FakeConnection2.GetServerUser());
52         EXPECT_EQ("pass2", FakeConnection2.GetServerPass());
53         EXPECT_EQ(true, FakeConnection2.GetServerSSL());
54         EXPECT_EQ(true, FakeConnection2.GetTestMode());
56         EXPECT_EQ("gibberish3.invalid", FakeConnection3.GetServerAddress());
57         EXPECT_EQ(8008, FakeConnection3.GetServerPort());
58         EXPECT_EQ("user3", FakeConnection3.GetServerUser());
59         EXPECT_EQ("pass3", FakeConnection3.GetServerPass());
60         EXPECT_EQ(false, FakeConnection3.GetServerSSL());
61         EXPECT_EQ(true, FakeConnection3.GetTestMode());
63 }
65 TEST(CardDAV, Use_Fake_To_Setup_And_Check_Connection_Settings_With_TestMode_False){
66         
67         std::string ServerAddress1 = "gibberish.invalid";
68         std::string ServerUser1 = "user";
69         std::string ServerPass1 = "pass";
70         std::string ServerPrefix1 = "/prefix";
71         std::string ServerAccount1 = "Account1";
73         std::string ServerAddress2 = "gibberish2.invalid";
74         std::string ServerUser2 = "user2";
75         std::string ServerPass2 = "pass2";
76         std::string ServerPrefix2 = "/prefix2";
77         std::string ServerAccount2 = "Account2";
78         
79         std::string ServerAddress3 = "gibberish3.invalid";
80         std::string ServerUser3 = "user3";
81         std::string ServerPass3 = "pass3";
82         std::string ServerPrefix3 = "/prefix3";
83         std::string ServerAccount3 = "Account3";
84         
85         FakeConnectionObject FakeConnection1(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
86         FakeConnectionObject FakeConnection2(ServerAddress2, 8800, ServerUser2, ServerPass2, true, "/prefix2", "Account2");
87         FakeConnectionObject FakeConnection3(ServerAddress3, 8008, ServerUser3, ServerPass3, false, "/prefix3", "Account3");
88         
89         EXPECT_EQ("gibberish.invalid", FakeConnection1.GetServerAddress());
90         EXPECT_EQ(8080, FakeConnection1.GetServerPort());
91         EXPECT_EQ("user", FakeConnection1.GetServerUser());
92         EXPECT_EQ("pass", FakeConnection1.GetServerPass());
93         EXPECT_EQ(true, FakeConnection1.GetServerSSL());
94         EXPECT_EQ(false, FakeConnection1.GetTestMode());
95         EXPECT_EQ("/prefix", FakeConnection1.GetServerPrefix());
96         EXPECT_EQ("Account1", FakeConnection1.GetServerAccount());
98         EXPECT_EQ("gibberish2.invalid", FakeConnection2.GetServerAddress());
99         EXPECT_EQ(8800, FakeConnection2.GetServerPort());
100         EXPECT_EQ("user2", FakeConnection2.GetServerUser());
101         EXPECT_EQ("pass2", FakeConnection2.GetServerPass());
102         EXPECT_EQ(true, FakeConnection2.GetServerSSL());
103         EXPECT_EQ(false, FakeConnection2.GetTestMode());
104         EXPECT_EQ("/prefix2", FakeConnection2.GetServerPrefix());
105         EXPECT_EQ("Account2", FakeConnection2.GetServerAccount());
107         EXPECT_EQ("gibberish3.invalid", FakeConnection3.GetServerAddress());
108         EXPECT_EQ(8008, FakeConnection3.GetServerPort());
109         EXPECT_EQ("user3", FakeConnection3.GetServerUser());
110         EXPECT_EQ("pass3", FakeConnection3.GetServerPass());
111         EXPECT_EQ(false, FakeConnection3.GetServerSSL());
112         EXPECT_EQ(false, FakeConnection3.GetTestMode());
113         EXPECT_EQ("/prefix3", FakeConnection3.GetServerPrefix());
114         EXPECT_EQ("Account3", FakeConnection3.GetServerAccount());
118 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_Returning_Success){
119         
120         std::string ServerAddress1 = "gibberish.invalid";
121         std::string ServerUser1 = "user";
122         std::string ServerPass1 = "pass";
123         
124         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
125         FakeConnection.ResultStatus = COCONNECT_OK;
126         
127         EXPECT_EQ(COCONNECT_OK, FakeConnection.Connect());
128         
131 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_Returning_InvalidAddress){
132         
133         std::string ServerAddress1 = "gibberish.invalid";
134         std::string ServerUser1 = "user";
135         std::string ServerPass1 = "pass";
136         
137         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
138         FakeConnection.ResultStatus = COCONNECT_INVALID;
139         
140         EXPECT_EQ(COCONNECT_INVALID, FakeConnection.Connect());
141         
144 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_Returning_Timeout){
146         std::string ServerAddress1 = "gibberish.invalid";
147         std::string ServerUser1 = "user";
148         std::string ServerPass1 = "pass";
149         
150         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
151         FakeConnection.ResultStatus = COCONNECT_TIMEOUT;
152         
153         EXPECT_EQ(COCONNECT_TIMEOUT, FakeConnection.Connect());
154         
157 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_Returning_Authentication_Failure){
159         std::string ServerAddress1 = "gibberish.invalid";
160         std::string ServerUser1 = "user";
161         std::string ServerPass1 = "pass";
162         
163         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
164         FakeConnection.ResultStatus = COCONNECT_AUTHFAIL;
165         
166         EXPECT_EQ(COCONNECT_AUTHFAIL, FakeConnection.Connect());
167         
170 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Is_Able_To_Login){
171         
172         std::string ServerAddress1 = "gibberish.invalid";
173         std::string ServerUser1 = "user";
174         std::string ServerPass1 = "pass";
175         
176         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
177         FakeConnection.ResultAuthPassed = true;
178         FakeConnection.Connect();
179         
180         EXPECT_EQ(true, FakeConnection.AbleToLogin());
181         
184 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Is_Unable_To_Login){
185         
186         std::string ServerAddress1 = "gibberish.invalid";
187         std::string ServerUser1 = "user";
188         std::string ServerPass1 = "pass";
189         
190         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
191         FakeConnection.ResultAuthPassed = false;
192         FakeConnection.Connect();
193         
194         EXPECT_EQ(false, FakeConnection.AbleToLogin());
195         
198 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Can_Do_Processing){
199         
200         std::string ServerAddress1 = "gibberish.invalid";
201         std::string ServerUser1 = "user";
202         std::string ServerPass1 = "pass";
203         
204         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
205         FakeConnection.ResultCanProcess = true;
206         FakeConnection.Connect();
207         
208         EXPECT_EQ(true, FakeConnection.CanDoProcessing());
209         
212 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Supports_SSL){
213         
214         std::string ServerAddress1 = "gibberish.invalid";
215         std::string ServerUser1 = "user";
216         std::string ServerPass1 = "pass";
217         
218         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
219         FakeConnection.ResultSSLStatus  = true;
220         FakeConnection.Connect();
221         
222         EXPECT_EQ(true, FakeConnection.CanDoSSL());
223         
226 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Does_Not_Support_SSL){
227         
228         std::string ServerAddress1 = "gibberish.invalid";
229         std::string ServerUser1 = "user";
230         std::string ServerPass1 = "pass";
231         
232         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
233         FakeConnection.ResultSSLStatus  = false;
234         FakeConnection.Connect();
235         
236         EXPECT_EQ(false, FakeConnection.CanDoSSL());
237         
240 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Has_Valid_SSL_Certificate_Data){
241         
242         std::string ServerAddress1 = "gibberish.invalid";
243         std::string ServerUser1 = "user";
244         std::string ServerPass1 = "pass";
245         
246         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
247         FakeConnection.ResultSSLVerified = true;
248         FakeConnection.Connect();
249         
250         EXPECT_EQ(true, FakeConnection.SSLVerify());
251         
254 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Has_Invalid_SSL_Certificate_Data){
255         
256         std::string ServerAddress1 = "gibberish.invalid";
257         std::string ServerUser1 = "user";
258         std::string ServerPass1 = "pass";
259         
260         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
261         FakeConnection.ResultSSLVerified = false;
262         FakeConnection.Connect();
263         
264         EXPECT_EQ(false, FakeConnection.SSLVerify());
265         
268 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Has_A_Valid_Response){
269         
270         std::string ServerAddress1 = "gibberish.invalid";
271         std::string ServerUser1 = "user";
272         std::string ServerPass1 = "pass";
273         
274         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
275         FakeConnection.ResultValidResponse = true;
276         FakeConnection.Connect();
277         
278         EXPECT_EQ(true, FakeConnection.HasValidResponse());
279         
282 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Has_A_Invalid_Response){
283         
284         std::string ServerAddress1 = "gibberish.invalid";
285         std::string ServerUser1 = "user";
286         std::string ServerPass1 = "pass";
287         
288         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
289         FakeConnection.ResultValidResponse = false;
290         FakeConnection.Connect();
291         
292         EXPECT_EQ(false, FakeConnection.HasValidResponse());
293         
296 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Uses_A_Self_Signed_SSL_Certificate){
297         
298         std::string ServerAddress1 = "gibberish.invalid";
299         std::string ServerUser1 = "user";
300         std::string ServerPass1 = "pass";
301         
302         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
303         FakeConnection.ResultSelfSigned = true;
304         FakeConnection.Connect();
305         
306         EXPECT_EQ(true, FakeConnection.IsSelfSigned());
307         
310 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Doesnt_Use_A_Self_Signed_SSL_Certificate){
311         
312         std::string ServerAddress1 = "gibberish.invalid";
313         std::string ServerUser1 = "user";
314         std::string ServerPass1 = "pass";
315         
316         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
317         FakeConnection.ResultSelfSigned = false;
318         FakeConnection.Connect();
319         
320         EXPECT_EQ(false, FakeConnection.IsSelfSigned());
321         
324 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Gets_The_Server_Prefix_Of_Prefix_Test_A){
325         
326         std::string ServerAddress1 = "gibberish.invalid";
327         std::string ServerUser1 = "user";
328         std::string ServerPass1 = "pass";
329         
330         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
331         FakeConnection.ResultServerPrefix = "/prefix/test/a";
332         FakeConnection.Connect();
333         
334         EXPECT_EQ("/prefix/test/a", FakeConnection.GetDefaultPrefix());
335         
338 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Gets_The_Server_Prefix_Of_Prefix_Test_B){
339         
340         std::string ServerAddress1 = "gibberish.invalid";
341         std::string ServerUser1 = "user";
342         std::string ServerPass1 = "pass";
343         
344         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
345         FakeConnection.ResultServerPrefix = "/prefix/test/b";
346         FakeConnection.Connect();
347         
348         EXPECT_EQ("/prefix/test/b", FakeConnection.GetDefaultPrefix());
349         
352 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Adds_A_Contact_Successfully){
353         
354         std::string ServerAddress1 = "gibberish.invalid";
355         std::string ServerUser1 = "user";
356         std::string ServerPass1 = "pass";
357         
358         FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
359         FakeConnection.ResultServerPrefix = "/prefix/test/b";
360         FakeConnection.Connect();
361         
362         std::string ContactFile =
363         "BEGIN:VCARD\n"
364         "VERSION:4.0\n"
365         "UID:84q2ioj13jofiujqwr\n"
366         "N:;;Meep;Moop;;\n"
367         "FN:The Meep Moop\n"
368         "END:VCARD";
369         
370         FakeConnection.TestRequestResult = COREQUEST_OK;
371         FakeConnection.TestEntityTag = "4324svafhuiaffsdhui";
372         FakeConnection.TestResultCode = 200;
373         FakeConnection.TestResultMessage = "";
374         
375         COServerResponse AddContactResult = FakeConnection.AddContact("testfile.vcf", ContactFile);
376         
377         EXPECT_EQ(COREQUEST_OK, AddContactResult.RequestResult);
378         EXPECT_EQ("4324svafhuiaffsdhui", AddContactResult.EntityTag);
379         EXPECT_EQ(200, AddContactResult.ResultCode);
380         EXPECT_EQ("", AddContactResult.ResultMessage);
381         
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy