1 // xestiaab_carddav.h - Xestia Address Book CardDAV Object Unit Tests.
3 // (c) 2012-2015 Xestia Software Development.
5 // This file is part of Xestia Address Book.
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.
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.
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){
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";
34 std::string ServerAddress3 = "gibberish3.invalid";
35 std::string ServerUser3 = "user3";
36 std::string ServerPass3 = "pass3";
38 FakeConnectionObject FakeConnection1(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
39 FakeConnectionObject FakeConnection2(ServerAddress2, 8800, ServerUser2, ServerPass2, true);
40 FakeConnectionObject FakeConnection3(ServerAddress3, 8008, ServerUser3, ServerPass3, false);
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());
65 TEST(CardDAV, Use_Fake_To_Setup_And_Check_Connection_Settings_With_TestMode_False){
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";
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";
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");
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){
120 std::string ServerAddress1 = "gibberish.invalid";
121 std::string ServerUser1 = "user";
122 std::string ServerPass1 = "pass";
124 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
125 FakeConnection.ResultStatus = COCONNECT_OK;
127 EXPECT_EQ(COCONNECT_OK, FakeConnection.Connect());
131 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_Returning_InvalidAddress){
133 std::string ServerAddress1 = "gibberish.invalid";
134 std::string ServerUser1 = "user";
135 std::string ServerPass1 = "pass";
137 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
138 FakeConnection.ResultStatus = COCONNECT_INVALID;
140 EXPECT_EQ(COCONNECT_INVALID, FakeConnection.Connect());
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";
150 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
151 FakeConnection.ResultStatus = COCONNECT_TIMEOUT;
153 EXPECT_EQ(COCONNECT_TIMEOUT, FakeConnection.Connect());
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";
163 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
164 FakeConnection.ResultStatus = COCONNECT_AUTHFAIL;
166 EXPECT_EQ(COCONNECT_AUTHFAIL, FakeConnection.Connect());
170 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Is_Able_To_Login){
172 std::string ServerAddress1 = "gibberish.invalid";
173 std::string ServerUser1 = "user";
174 std::string ServerPass1 = "pass";
176 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
177 FakeConnection.ResultAuthPassed = true;
178 FakeConnection.Connect();
180 EXPECT_EQ(true, FakeConnection.AbleToLogin());
184 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Is_Unable_To_Login){
186 std::string ServerAddress1 = "gibberish.invalid";
187 std::string ServerUser1 = "user";
188 std::string ServerPass1 = "pass";
190 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
191 FakeConnection.ResultAuthPassed = false;
192 FakeConnection.Connect();
194 EXPECT_EQ(false, FakeConnection.AbleToLogin());
198 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Can_Do_Processing){
200 std::string ServerAddress1 = "gibberish.invalid";
201 std::string ServerUser1 = "user";
202 std::string ServerPass1 = "pass";
204 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
205 FakeConnection.ResultCanProcess = true;
206 FakeConnection.Connect();
208 EXPECT_EQ(true, FakeConnection.CanDoProcessing());
212 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Supports_SSL){
214 std::string ServerAddress1 = "gibberish.invalid";
215 std::string ServerUser1 = "user";
216 std::string ServerPass1 = "pass";
218 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
219 FakeConnection.ResultSSLStatus = true;
220 FakeConnection.Connect();
222 EXPECT_EQ(true, FakeConnection.CanDoSSL());
226 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Does_Not_Support_SSL){
228 std::string ServerAddress1 = "gibberish.invalid";
229 std::string ServerUser1 = "user";
230 std::string ServerPass1 = "pass";
232 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
233 FakeConnection.ResultSSLStatus = false;
234 FakeConnection.Connect();
236 EXPECT_EQ(false, FakeConnection.CanDoSSL());
240 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Has_Valid_SSL_Certificate_Data){
242 std::string ServerAddress1 = "gibberish.invalid";
243 std::string ServerUser1 = "user";
244 std::string ServerPass1 = "pass";
246 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
247 FakeConnection.ResultSSLVerified = true;
248 FakeConnection.Connect();
250 EXPECT_EQ(true, FakeConnection.SSLVerify());
254 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Has_Invalid_SSL_Certificate_Data){
256 std::string ServerAddress1 = "gibberish.invalid";
257 std::string ServerUser1 = "user";
258 std::string ServerPass1 = "pass";
260 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
261 FakeConnection.ResultSSLVerified = false;
262 FakeConnection.Connect();
264 EXPECT_EQ(false, FakeConnection.SSLVerify());
268 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Has_A_Valid_Response){
270 std::string ServerAddress1 = "gibberish.invalid";
271 std::string ServerUser1 = "user";
272 std::string ServerPass1 = "pass";
274 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
275 FakeConnection.ResultValidResponse = true;
276 FakeConnection.Connect();
278 EXPECT_EQ(true, FakeConnection.HasValidResponse());
282 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Has_A_Invalid_Response){
284 std::string ServerAddress1 = "gibberish.invalid";
285 std::string ServerUser1 = "user";
286 std::string ServerPass1 = "pass";
288 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
289 FakeConnection.ResultValidResponse = false;
290 FakeConnection.Connect();
292 EXPECT_EQ(false, FakeConnection.HasValidResponse());
296 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Uses_A_Self_Signed_SSL_Certificate){
298 std::string ServerAddress1 = "gibberish.invalid";
299 std::string ServerUser1 = "user";
300 std::string ServerPass1 = "pass";
302 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
303 FakeConnection.ResultSelfSigned = true;
304 FakeConnection.Connect();
306 EXPECT_EQ(true, FakeConnection.IsSelfSigned());
310 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Doesnt_Use_A_Self_Signed_SSL_Certificate){
312 std::string ServerAddress1 = "gibberish.invalid";
313 std::string ServerUser1 = "user";
314 std::string ServerPass1 = "pass";
316 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
317 FakeConnection.ResultSelfSigned = false;
318 FakeConnection.Connect();
320 EXPECT_EQ(false, FakeConnection.IsSelfSigned());
324 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Gets_The_Server_Prefix_Of_Prefix_Test_A){
326 std::string ServerAddress1 = "gibberish.invalid";
327 std::string ServerUser1 = "user";
328 std::string ServerPass1 = "pass";
330 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
331 FakeConnection.ResultServerPrefix = "/prefix/test/a";
332 FakeConnection.Connect();
334 EXPECT_EQ("/prefix/test/a", FakeConnection.GetDefaultPrefix());
338 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Gets_The_Server_Prefix_Of_Prefix_Test_B){
340 std::string ServerAddress1 = "gibberish.invalid";
341 std::string ServerUser1 = "user";
342 std::string ServerPass1 = "pass";
344 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true);
345 FakeConnection.ResultServerPrefix = "/prefix/test/b";
346 FakeConnection.Connect();
348 EXPECT_EQ("/prefix/test/b", FakeConnection.GetDefaultPrefix());
352 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Adds_A_Contact_Successfully){
354 std::string ServerAddress1 = "gibberish.invalid";
355 std::string ServerUser1 = "user";
356 std::string ServerPass1 = "pass";
358 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
359 FakeConnection.ResultServerPrefix = "/prefix/test/b";
360 FakeConnection.Connect();
362 std::string ContactFile =
365 "UID:84q2ioj13jofiujqwr\n"
370 FakeConnection.TestRequestResult = COREQUEST_OK;
371 FakeConnection.TestEntityTag = "4324svafhuiaffsdhui";
372 FakeConnection.TestResultCode = 201;
373 FakeConnection.TestSessionCode = 0;
374 FakeConnection.TestResultMessage = "";
376 COServerResponse AddContactResult = FakeConnection.AddContact("testfile.vcf", ContactFile);
378 EXPECT_EQ(COREQUEST_OK, AddContactResult.RequestResult);
379 EXPECT_EQ("4324svafhuiaffsdhui", AddContactResult.EntityTag);
380 EXPECT_EQ(201, AddContactResult.ResultCode);
381 EXPECT_EQ(0, AddContactResult.SessionCode);
382 EXPECT_EQ("", AddContactResult.ResultMessage);
386 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Add_A_Contact_Due_To_Permissions){
388 std::string ServerAddress1 = "gibberish.invalid";
389 std::string ServerUser1 = "user";
390 std::string ServerPass1 = "pass";
392 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
393 FakeConnection.ResultServerPrefix = "/prefix/test/b";
394 FakeConnection.Connect();
396 std::string ContactFile =
399 "UID:84q2ioj13jofiujqwr\n"
404 FakeConnection.TestRequestResult = COREQUEST_ERROR_SERVER;
405 FakeConnection.TestEntityTag = "";
406 FakeConnection.TestResultCode = 403;
407 FakeConnection.TestSessionCode = 22;
408 FakeConnection.TestResultMessage = "You do not have permission to add this resource.";
410 COServerResponse AddContactResult = FakeConnection.AddContact("testfile.vcf", ContactFile);
412 EXPECT_EQ(COREQUEST_ERROR_SERVER, AddContactResult.RequestResult);
413 EXPECT_EQ("", AddContactResult.EntityTag);
414 EXPECT_EQ(403, AddContactResult.ResultCode);
415 EXPECT_EQ(22, AddContactResult.SessionCode);
416 EXPECT_EQ("You do not have permission to add this resource.", AddContactResult.ResultMessage);
420 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Add_A_Contact_Due_To_Invalid_Path){
422 std::string ServerAddress1 = "gibberish.invalid";
423 std::string ServerUser1 = "user";
424 std::string ServerPass1 = "pass";
426 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
427 FakeConnection.ResultServerPrefix = "/prefix/test/b";
428 FakeConnection.Connect();
430 std::string ContactFile =
433 "UID:84q2ioj13jofiujqwr\n"
438 FakeConnection.TestRequestResult = COREQUEST_ERROR_SERVER;
439 FakeConnection.TestEntityTag = "";
440 FakeConnection.TestResultCode = 404;
441 FakeConnection.TestSessionCode = 22;
442 FakeConnection.TestResultMessage = "The location cannot be found.";
444 COServerResponse AddContactResult = FakeConnection.AddContact("testfile.vcf", ContactFile);
446 EXPECT_EQ(COREQUEST_ERROR_SERVER, AddContactResult.RequestResult);
447 EXPECT_EQ("", AddContactResult.EntityTag);
448 EXPECT_EQ(404, AddContactResult.ResultCode);
449 EXPECT_EQ(22, AddContactResult.SessionCode);
450 EXPECT_EQ("The location cannot be found.", AddContactResult.ResultMessage);
454 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Add_A_Contact_Due_To_No_Connection){
456 std::string ServerAddress1 = "gibberish.invalid";
457 std::string ServerUser1 = "user";
458 std::string ServerPass1 = "pass";
460 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
461 FakeConnection.ResultServerPrefix = "/prefix/test/b";
462 FakeConnection.Connect();
464 std::string ContactFile =
467 "UID:84q2ioj13jofiujqwr\n"
472 FakeConnection.TestRequestResult = COREQUEST_ERROR_NOTCONNECTED;
473 FakeConnection.TestEntityTag = "";
474 FakeConnection.TestResultCode = 0;
475 FakeConnection.TestSessionCode = 0;
476 FakeConnection.TestResultMessage = "";
478 COServerResponse AddContactResult = FakeConnection.AddContact("testfile.vcf", ContactFile);
480 EXPECT_EQ(COREQUEST_ERROR_NOTCONNECTED, AddContactResult.RequestResult);
481 EXPECT_EQ("", AddContactResult.EntityTag);
482 EXPECT_EQ(0, AddContactResult.ResultCode);
483 EXPECT_EQ(0, AddContactResult.SessionCode);
484 EXPECT_EQ("", AddContactResult.ResultMessage);
488 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Edits_A_Server_Contact){
490 std::string ServerAddress1 = "gibberish.invalid";
491 std::string ServerUser1 = "user";
492 std::string ServerPass1 = "pass";
494 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
495 FakeConnection.ResultServerPrefix = "/prefix/test/b";
496 FakeConnection.Connect();
498 std::string ContactFile =
501 "UID:84q2ioj13jofiujqwrAAA\n"
506 FakeConnection.TestRequestResult = COREQUEST_OK;
507 FakeConnection.TestEntityTag = "a23124sfadfdvxc1646541bsdfaf";
508 FakeConnection.TestResultCode = 200;
509 FakeConnection.TestSessionCode = 0;
510 FakeConnection.TestResultMessage = "";
512 COServerResponse EditContactResult = FakeConnection.EditContact("testfile.vcf", ContactFile);
514 EXPECT_EQ(COREQUEST_OK, EditContactResult.RequestResult);
515 EXPECT_EQ("a23124sfadfdvxc1646541bsdfaf", EditContactResult.EntityTag);
516 EXPECT_EQ(200, EditContactResult.ResultCode);
517 EXPECT_EQ(0, EditContactResult.SessionCode);
518 EXPECT_EQ("", EditContactResult.ResultMessage);
520 FakeConnection.TestRequestResult = COREQUEST_OK;
521 FakeConnection.TestEntityTag = "asf84sa484saf614as64asvada4s6fas";
522 FakeConnection.TestResultCode = 204;
523 FakeConnection.TestSessionCode = 0;
524 FakeConnection.TestResultMessage = "";
526 EditContactResult = FakeConnection.EditContact("testfile.vcf", ContactFile);
528 EXPECT_EQ(COREQUEST_OK, EditContactResult.RequestResult);
529 EXPECT_EQ("asf84sa484saf614as64asvada4s6fas", EditContactResult.EntityTag);
530 EXPECT_EQ(204, EditContactResult.ResultCode);
531 EXPECT_EQ(0, EditContactResult.SessionCode);
532 EXPECT_EQ("", EditContactResult.ResultMessage);
536 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Edit_A_Server_Contact_Due_To_Invalid_Permissions){
538 std::string ServerAddress1 = "gibberish.invalid";
539 std::string ServerUser1 = "user";
540 std::string ServerPass1 = "pass";
542 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
543 FakeConnection.ResultServerPrefix = "/prefix/test/b";
544 FakeConnection.Connect();
546 std::string ContactFile =
549 "UID:84q2ioj13jofiujqwrAAA\n"
554 FakeConnection.TestRequestResult = COREQUEST_ERROR_SERVER;
555 FakeConnection.TestEntityTag = "";
556 FakeConnection.TestResultCode = 403;
557 FakeConnection.TestSessionCode = 22;
558 FakeConnection.TestResultMessage = "You do not have permission to add this resource.";
560 COServerResponse EditContactResult = FakeConnection.EditContact("testfile.vcf", ContactFile);
562 EXPECT_EQ(COREQUEST_ERROR_SERVER, EditContactResult.RequestResult);
563 EXPECT_EQ("", EditContactResult.EntityTag);
564 EXPECT_EQ(403, EditContactResult.ResultCode);
565 EXPECT_EQ(22, EditContactResult.SessionCode);
566 EXPECT_EQ("You do not have permission to add this resource.", EditContactResult.ResultMessage);
570 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Edit_A_Server_Contact_Due_To_Invalid_Location){
572 std::string ServerAddress1 = "gibberish.invalid";
573 std::string ServerUser1 = "user";
574 std::string ServerPass1 = "pass";
576 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
577 FakeConnection.ResultServerPrefix = "/prefix/test/b";
578 FakeConnection.Connect();
580 std::string ContactFile =
583 "UID:84q2ioj13jofiujqwrAAA\n"
588 FakeConnection.TestRequestResult = COREQUEST_ERROR_SERVER;
589 FakeConnection.TestEntityTag = "";
590 FakeConnection.TestResultCode = 404;
591 FakeConnection.TestSessionCode = 22;
592 FakeConnection.TestResultMessage = "The resource could not be found.";
594 COServerResponse EditContactResult = FakeConnection.EditContact("testfile.vcf", ContactFile);
596 EXPECT_EQ(COREQUEST_ERROR_SERVER, EditContactResult.RequestResult);
597 EXPECT_EQ("", EditContactResult.EntityTag);
598 EXPECT_EQ(404, EditContactResult.ResultCode);
599 EXPECT_EQ(22, EditContactResult.SessionCode);
600 EXPECT_EQ("The resource could not be found.", EditContactResult.ResultMessage);
604 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Edit_A_Server_Contact_Due_To_No_Connection){
606 std::string ServerAddress1 = "gibberish.invalid";
607 std::string ServerUser1 = "user";
608 std::string ServerPass1 = "pass";
610 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
611 FakeConnection.ResultServerPrefix = "/prefix/test/b";
612 FakeConnection.Connect();
614 std::string ContactFile =
617 "UID:84q2ioj13jofiujqwrAAA\n"
622 FakeConnection.TestRequestResult = COREQUEST_ERROR_NOTCONNECTED;
623 FakeConnection.TestEntityTag = "";
624 FakeConnection.TestResultCode = 0;
625 FakeConnection.TestSessionCode = 0;
626 FakeConnection.TestResultMessage = "";
628 COServerResponse EditContactResult = FakeConnection.EditContact("testfile.vcf", ContactFile);
630 EXPECT_EQ(COREQUEST_ERROR_NOTCONNECTED, EditContactResult.RequestResult);
631 EXPECT_EQ("", EditContactResult.EntityTag);
632 EXPECT_EQ(0, EditContactResult.ResultCode);
633 EXPECT_EQ(0, EditContactResult.SessionCode);
634 EXPECT_EQ("", EditContactResult.ResultMessage);
638 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Deletes_A_Server_Contact){
640 std::string ServerAddress1 = "gibberish.invalid";
641 std::string ServerUser1 = "user";
642 std::string ServerPass1 = "pass";
644 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
645 FakeConnection.ResultServerPrefix = "/prefix/test/b";
646 FakeConnection.Connect();
648 FakeConnection.TestRequestResult = COREQUEST_OK;
649 FakeConnection.TestEntityTag = "";
650 FakeConnection.TestResultCode = 200;
651 FakeConnection.TestSessionCode = 0;
652 FakeConnection.TestResultMessage = "";
654 COServerResponse DeleteContactResult = FakeConnection.DeleteContact("testfile.vcf", "a23124sfadfdvxc1646541bsdfaf");
656 EXPECT_EQ(COREQUEST_OK, DeleteContactResult.RequestResult);
657 EXPECT_EQ("", DeleteContactResult.EntityTag);
658 EXPECT_EQ(200, DeleteContactResult.ResultCode);
659 EXPECT_EQ(0, DeleteContactResult.SessionCode);
660 EXPECT_EQ("", DeleteContactResult.ResultMessage);
662 FakeConnection.TestRequestResult = COREQUEST_OK;
663 FakeConnection.TestEntityTag = "";
664 FakeConnection.TestResultCode = 204;
665 FakeConnection.TestSessionCode = 0;
666 FakeConnection.TestResultMessage = "";
668 DeleteContactResult = FakeConnection.DeleteContact("testfile.vcf", "asf84sa484saf614as64asvada4s6fas");
670 EXPECT_EQ(COREQUEST_OK, DeleteContactResult.RequestResult);
671 EXPECT_EQ("", DeleteContactResult.EntityTag);
672 EXPECT_EQ(204, DeleteContactResult.ResultCode);
673 EXPECT_EQ(0, DeleteContactResult.SessionCode);
674 EXPECT_EQ("", DeleteContactResult.ResultMessage);
678 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Delete_A_Server_Contact_Due_To_Invalid_Permissions){
680 std::string ServerAddress1 = "gibberish.invalid";
681 std::string ServerUser1 = "user";
682 std::string ServerPass1 = "pass";
684 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
685 FakeConnection.ResultServerPrefix = "/prefix/test/b";
686 FakeConnection.Connect();
688 FakeConnection.TestRequestResult = COREQUEST_ERROR_SERVER;
689 FakeConnection.TestEntityTag = "";
690 FakeConnection.TestResultCode = 403;
691 FakeConnection.TestSessionCode = 22;
692 FakeConnection.TestResultMessage = "You do not have permission to delete this resource.";
694 COServerResponse DeleteContactResult = FakeConnection.DeleteContact("testfile.vcf", "a23124sfadfdvxc1646541bsdfaf");
696 EXPECT_EQ(COREQUEST_ERROR_SERVER, DeleteContactResult.RequestResult);
697 EXPECT_EQ("", DeleteContactResult.EntityTag);
698 EXPECT_EQ(403, DeleteContactResult.ResultCode);
699 EXPECT_EQ(22, DeleteContactResult.SessionCode);
700 EXPECT_EQ("You do not have permission to delete this resource.", DeleteContactResult.ResultMessage);
704 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Delete_A_Server_Contact_Due_To_Missing_Location){
706 std::string ServerAddress1 = "gibberish.invalid";
707 std::string ServerUser1 = "user";
708 std::string ServerPass1 = "pass";
710 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
711 FakeConnection.ResultServerPrefix = "/prefix/test/b";
712 FakeConnection.Connect();
714 FakeConnection.TestRequestResult = COREQUEST_ERROR_SERVER;
715 FakeConnection.TestEntityTag = "";
716 FakeConnection.TestResultCode = 404;
717 FakeConnection.TestSessionCode = 22;
718 FakeConnection.TestResultMessage = "The resource could not be found.";
720 COServerResponse DeleteContactResult = FakeConnection.DeleteContact("testfile.vcf", "a23124sfadfdvxc1646541bsdfaf");
722 EXPECT_EQ(COREQUEST_ERROR_SERVER, DeleteContactResult.RequestResult);
723 EXPECT_EQ("", DeleteContactResult.EntityTag);
724 EXPECT_EQ(404, DeleteContactResult.ResultCode);
725 EXPECT_EQ(22, DeleteContactResult.SessionCode);
726 EXPECT_EQ("The resource could not be found.", DeleteContactResult.ResultMessage);
730 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Delete_A_Server_Contact_Due_To_No_Connection){
732 std::string ServerAddress1 = "gibberish.invalid";
733 std::string ServerUser1 = "user";
734 std::string ServerPass1 = "pass";
736 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
737 FakeConnection.ResultServerPrefix = "/prefix/test/b";
738 FakeConnection.Connect();
740 FakeConnection.TestRequestResult = COREQUEST_ERROR_NOTCONNECTED;
741 FakeConnection.TestEntityTag = "";
742 FakeConnection.TestResultCode = 0;
743 FakeConnection.TestSessionCode = 0;
744 FakeConnection.TestResultMessage = "";
746 COServerResponse DeleteContactResult = FakeConnection.DeleteContact("testfile.vcf", "a23124sfadfdvxc1646541bsdfaf");
748 EXPECT_EQ(COREQUEST_ERROR_NOTCONNECTED, DeleteContactResult.RequestResult);
749 EXPECT_EQ("", DeleteContactResult.EntityTag);
750 EXPECT_EQ(0, DeleteContactResult.ResultCode);
751 EXPECT_EQ(0, DeleteContactResult.SessionCode);
752 EXPECT_EQ("", DeleteContactResult.ResultMessage);
756 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Gets_Server_Entity_Tag_Value){
758 std::string ServerAddress1 = "gibberish.invalid";
759 std::string ServerUser1 = "user";
760 std::string ServerPass1 = "pass";
762 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
763 FakeConnection.ResultServerPrefix = "/prefix/test/b";
764 FakeConnection.Connect();
766 FakeConnection.TestRequestResult = COREQUEST_OK;
767 FakeConnection.TestEntityTag = "a23124sfadfdvxc1646541bsdfaf";
768 FakeConnection.TestResultCode = 200;
769 FakeConnection.TestSessionCode = 0;
770 FakeConnection.TestResultMessage = "";
772 COServerResponse EntityTagResult = FakeConnection.GetServerEntityTagValue("testfile.vcf");
774 EXPECT_EQ(COREQUEST_OK, EntityTagResult.RequestResult);
775 EXPECT_EQ("a23124sfadfdvxc1646541bsdfaf", EntityTagResult.EntityTag);
776 EXPECT_EQ(200, EntityTagResult.ResultCode);
777 EXPECT_EQ(0, EntityTagResult.SessionCode);
778 EXPECT_EQ("", EntityTagResult.ResultMessage);
782 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Get_Server_Entity_Tag_Value_Due_To_Invalid_Permissions){
784 std::string ServerAddress1 = "gibberish.invalid";
785 std::string ServerUser1 = "user";
786 std::string ServerPass1 = "pass";
788 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
789 FakeConnection.ResultServerPrefix = "/prefix/test/b";
790 FakeConnection.Connect();
792 FakeConnection.TestRequestResult = COREQUEST_ERROR_SERVER;
793 FakeConnection.TestEntityTag = "";
794 FakeConnection.TestResultCode = 403;
795 FakeConnection.TestSessionCode = 22;
796 FakeConnection.TestResultMessage = "You do not have permission to access this resource.";
798 COServerResponse EntityTagResult = FakeConnection.GetServerEntityTagValue("testfile.vcf");
800 EXPECT_EQ(COREQUEST_ERROR_SERVER, EntityTagResult.RequestResult);
801 EXPECT_EQ("", EntityTagResult.EntityTag);
802 EXPECT_EQ(403, EntityTagResult.ResultCode);
803 EXPECT_EQ(22, EntityTagResult.SessionCode);
804 EXPECT_EQ("You do not have permission to access this resource.", EntityTagResult.ResultMessage);
808 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Get_Server_Entity_Tag_Value_Due_To_Missing_Resource){
810 std::string ServerAddress1 = "gibberish.invalid";
811 std::string ServerUser1 = "user";
812 std::string ServerPass1 = "pass";
814 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
815 FakeConnection.ResultServerPrefix = "/prefix/test/b";
816 FakeConnection.Connect();
818 FakeConnection.TestRequestResult = COREQUEST_ERROR_SERVER;
819 FakeConnection.TestEntityTag = "";
820 FakeConnection.TestResultCode = 404;
821 FakeConnection.TestSessionCode = 22;
822 FakeConnection.TestResultMessage = "The resource cannot be found.";
824 COServerResponse EntityTagResult = FakeConnection.GetServerEntityTagValue("testfile.vcf");
826 EXPECT_EQ(COREQUEST_ERROR_SERVER, EntityTagResult.RequestResult);
827 EXPECT_EQ("", EntityTagResult.EntityTag);
828 EXPECT_EQ(404, EntityTagResult.ResultCode);
829 EXPECT_EQ(22, EntityTagResult.SessionCode);
830 EXPECT_EQ("The resource cannot be found.", EntityTagResult.ResultMessage);
834 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Get_Server_Entity_Tag_Value_Due_To_No_Connection){
836 std::string ServerAddress1 = "gibberish.invalid";
837 std::string ServerUser1 = "user";
838 std::string ServerPass1 = "pass";
840 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
841 FakeConnection.ResultServerPrefix = "/prefix/test/b";
842 FakeConnection.Connect();
844 FakeConnection.TestRequestResult = COREQUEST_ERROR_NOTCONNECTED;
845 FakeConnection.TestEntityTag = "";
846 FakeConnection.TestResultCode = 0;
847 FakeConnection.TestSessionCode = 0;
848 FakeConnection.TestResultMessage = "";
850 COServerResponse EntityTagResult = FakeConnection.GetServerEntityTagValue("testfile.vcf");
852 EXPECT_EQ(COREQUEST_ERROR_NOTCONNECTED, EntityTagResult.RequestResult);
853 EXPECT_EQ("", EntityTagResult.EntityTag);
854 EXPECT_EQ(0, EntityTagResult.ResultCode);
855 EXPECT_EQ(0, EntityTagResult.SessionCode);
856 EXPECT_EQ("", EntityTagResult.ResultMessage);
860 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Gets_Server_Contact_Data){
862 std::string ServerAddress1 = "gibberish.invalid";
863 std::string ServerUser1 = "user";
864 std::string ServerPass1 = "pass";
866 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
867 FakeConnection.ResultServerPrefix = "/prefix/test/b";
868 FakeConnection.Connect();
870 std::string ContactFile =
873 "UID:84q2ioj13jofiujqwrAAA\n"
878 FakeConnection.TestRequestResult = COREQUEST_OK;
879 FakeConnection.TestEntityTag = "";
880 FakeConnection.TestResultCode = 200;
881 FakeConnection.TestSessionCode = 0;
882 FakeConnection.TestResultMessage = ContactFile;
884 COServerResponse ServerDataResult = FakeConnection.GetContact("/location/testfile.vcf");
886 EXPECT_EQ(COREQUEST_OK, ServerDataResult.RequestResult);
887 EXPECT_EQ("", ServerDataResult.EntityTag);
888 EXPECT_EQ(200, ServerDataResult.ResultCode);
889 EXPECT_EQ(0, ServerDataResult.SessionCode);
890 EXPECT_EQ(ContactFile, ServerDataResult.ResultMessage);
894 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Gets_Server_Contact_Data_Due_To_Invalid_Permissions){
896 std::string ServerAddress1 = "gibberish.invalid";
897 std::string ServerUser1 = "user";
898 std::string ServerPass1 = "pass";
900 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
901 FakeConnection.ResultServerPrefix = "/prefix/test/b";
902 FakeConnection.Connect();
904 FakeConnection.TestRequestResult = COREQUEST_OK;
905 FakeConnection.TestEntityTag = "";
906 FakeConnection.TestResultCode = 403;
907 FakeConnection.TestSessionCode = 22;
908 FakeConnection.TestResultMessage = "You do not have permission to access this resource.";
910 COServerResponse ServerDataResult = FakeConnection.GetContact("/location/testfile.vcf");
912 EXPECT_EQ(COREQUEST_OK, ServerDataResult.RequestResult);
913 EXPECT_EQ("", ServerDataResult.EntityTag);
914 EXPECT_EQ(403, ServerDataResult.ResultCode);
915 EXPECT_EQ(22, ServerDataResult.SessionCode);
916 EXPECT_EQ("You do not have permission to access this resource.", ServerDataResult.ResultMessage);
920 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Gets_Server_Contact_Data_Due_To_Missing_Resource){
922 std::string ServerAddress1 = "gibberish.invalid";
923 std::string ServerUser1 = "user";
924 std::string ServerPass1 = "pass";
926 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
927 FakeConnection.ResultServerPrefix = "/prefix/test/b";
928 FakeConnection.Connect();
930 FakeConnection.TestRequestResult = COREQUEST_OK;
931 FakeConnection.TestEntityTag = "";
932 FakeConnection.TestResultCode = 404;
933 FakeConnection.TestSessionCode = 22;
934 FakeConnection.TestResultMessage = "The resource could not be found.";
936 COServerResponse ServerDataResult = FakeConnection.GetContact("/location/testfile.vcf");
938 EXPECT_EQ(COREQUEST_OK, ServerDataResult.RequestResult);
939 EXPECT_EQ("", ServerDataResult.EntityTag);
940 EXPECT_EQ(404, ServerDataResult.ResultCode);
941 EXPECT_EQ(22, ServerDataResult.SessionCode);
942 EXPECT_EQ("The resource could not be found.", ServerDataResult.ResultMessage);
946 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Get_Server_Contact_Data_Due_To_No_Connection){
948 std::string ServerAddress1 = "gibberish.invalid";
949 std::string ServerUser1 = "user";
950 std::string ServerPass1 = "pass";
952 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
953 FakeConnection.ResultServerPrefix = "/prefix/test/b";
954 FakeConnection.Connect();
956 FakeConnection.TestRequestResult = COREQUEST_ERROR_NOTCONNECTED;
957 FakeConnection.TestEntityTag = "";
958 FakeConnection.TestResultCode = 0;
959 FakeConnection.TestSessionCode = 0;
960 FakeConnection.TestResultMessage = "";
962 COServerResponse ServerDataResult = FakeConnection.GetContact("/location/testfile.vcf");
964 EXPECT_EQ(COREQUEST_ERROR_NOTCONNECTED, ServerDataResult.RequestResult);
965 EXPECT_EQ("", ServerDataResult.EntityTag);
966 EXPECT_EQ(0, ServerDataResult.ResultCode);
967 EXPECT_EQ(0, ServerDataResult.SessionCode);
968 EXPECT_EQ("", ServerDataResult.ResultMessage);
972 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Gets_A_Full_Server_Contact_List){
974 std::string ServerAddress1 = "gibberish.invalid";
975 std::string ServerUser1 = "user";
976 std::string ServerPass1 = "pass";
978 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
979 FakeConnection.ResultServerPrefix = "/prefix/test/b";
980 FakeConnection.Connect();
982 std::string ContactFile1 =
985 "UID:84q2ioj13jofiujqwrAAA-1\n"
990 std::string ContactFile2 =
993 "UID:84q2ioj13jofiujqwrAAA-2\n"
998 std::string ContactFile3 =
1001 "UID:84q2ioj13jofiujqwrAAA-3\n"
1003 "FN:The Meep Moop\n"
1006 COContactList ContactListSetup;
1007 COContactData ContactPerson;
1009 ContactPerson.Location = "/location1.vcf";
1010 ContactPerson.Data = ContactFile1;
1011 ContactListSetup.ListData.push_back(ContactPerson);
1013 ContactPerson.Location = "/location2.vcf";
1014 ContactPerson.Data = ContactFile2;
1015 ContactListSetup.ListData.push_back(ContactPerson);
1017 ContactPerson.Location = "/location3.vcf";
1018 ContactPerson.Data = ContactFile3;
1019 ContactListSetup.ListData.push_back(ContactPerson);
1020 ContactListSetup.SyncToken = "2312312-12312312";
1022 FakeConnection.TestContactList = ContactListSetup;
1023 FakeConnection.TestRequestResult = COREQUEST_OK;
1024 FakeConnection.TestEntityTag = "";
1025 FakeConnection.TestResultCode = 200;
1026 FakeConnection.TestSessionCode = 0;
1027 FakeConnection.TestResultMessage = "";
1029 COContactList ServerDataResult = FakeConnection.GetContactList("");
1031 EXPECT_EQ(COREQUEST_OK, ServerDataResult.ServerResponse.RequestResult);
1032 EXPECT_EQ("", ServerDataResult.ServerResponse.EntityTag);
1033 EXPECT_EQ(200, ServerDataResult.ServerResponse.ResultCode);
1034 EXPECT_EQ(0, ServerDataResult.ServerResponse.SessionCode);
1035 EXPECT_EQ("", ServerDataResult.ServerResponse.ResultMessage);
1037 EXPECT_EQ("2312312-12312312", ServerDataResult.SyncToken);
1039 EXPECT_EQ(3, ServerDataResult.ListData.size());
1041 EXPECT_EQ("/location1.vcf", ServerDataResult.ListData[0].Location);
1042 EXPECT_EQ(ContactFile1, ServerDataResult.ListData[0].Data);
1044 EXPECT_EQ("/location2.vcf", ServerDataResult.ListData[1].Location);
1045 EXPECT_EQ(ContactFile2, ServerDataResult.ListData[1].Data);
1047 EXPECT_EQ("/location3.vcf", ServerDataResult.ListData[2].Location);
1048 EXPECT_EQ(ContactFile3, ServerDataResult.ListData[2].Data);
1052 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Gets_A_Partial_Server_Contact_List){
1054 std::string ServerAddress1 = "gibberish.invalid";
1055 std::string ServerUser1 = "user";
1056 std::string ServerPass1 = "pass";
1058 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
1059 FakeConnection.ResultServerPrefix = "/prefix/test/b";
1060 FakeConnection.Connect();
1062 std::string ContactFile3 =
1065 "UID:84q2ioj13jofiujqwrAAA-3\n"
1067 "FN:The Meep Moop\n"
1070 COContactList ContactListSetup;
1071 COContactData ContactPerson;
1073 ContactPerson.Location = "/location3.vcf";
1074 ContactPerson.Data = ContactFile3;
1075 ContactListSetup.ListData.push_back(ContactPerson);
1076 ContactListSetup.SyncToken = "5964589-43543534";
1078 FakeConnection.TestContactList = ContactListSetup;
1079 FakeConnection.TestRequestResult = COREQUEST_OK;
1080 FakeConnection.TestEntityTag = "";
1081 FakeConnection.TestResultCode = 200;
1082 FakeConnection.TestSessionCode = 0;
1083 FakeConnection.TestResultMessage = "";
1085 COContactList ServerDataResult = FakeConnection.GetContactList("2312312-12312312");
1087 EXPECT_EQ(COREQUEST_OK, ServerDataResult.ServerResponse.RequestResult);
1088 EXPECT_EQ("", ServerDataResult.ServerResponse.EntityTag);
1089 EXPECT_EQ(200, ServerDataResult.ServerResponse.ResultCode);
1090 EXPECT_EQ(0, ServerDataResult.ServerResponse.SessionCode);
1091 EXPECT_EQ("", ServerDataResult.ServerResponse.ResultMessage);
1093 EXPECT_EQ("5964589-43543534", ServerDataResult.SyncToken);
1095 EXPECT_EQ(1, ServerDataResult.ListData.size());
1097 EXPECT_EQ("/location3.vcf", ServerDataResult.ListData[0].Location);
1098 EXPECT_EQ(ContactFile3, ServerDataResult.ListData[0].Data);
1102 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Get_A_Contact_List_Due_To_Invalid_Permissions){
1104 std::string ServerAddress1 = "gibberish.invalid";
1105 std::string ServerUser1 = "user";
1106 std::string ServerPass1 = "pass";
1108 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
1109 FakeConnection.ResultServerPrefix = "/prefix/test/b";
1110 FakeConnection.Connect();
1112 COContactList ContactListSetup;
1113 ContactListSetup.SyncToken = "";
1115 FakeConnection.TestContactList = ContactListSetup;
1116 FakeConnection.TestRequestResult = COREQUEST_ERROR_SERVER;
1117 FakeConnection.TestEntityTag = "";
1118 FakeConnection.TestResultCode = 403;
1119 FakeConnection.TestSessionCode = 22;
1120 FakeConnection.TestResultMessage = "You do not have permission to access this resource.";
1122 COContactList ServerDataResult = FakeConnection.GetContactList("");
1124 EXPECT_EQ(COREQUEST_ERROR_SERVER, ServerDataResult.ServerResponse.RequestResult);
1125 EXPECT_EQ("", ServerDataResult.ServerResponse.EntityTag);
1126 EXPECT_EQ(403, ServerDataResult.ServerResponse.ResultCode);
1127 EXPECT_EQ(22, ServerDataResult.ServerResponse.SessionCode);
1128 EXPECT_EQ("You do not have permission to access this resource.", ServerDataResult.ServerResponse.ResultMessage);
1130 EXPECT_EQ(0, ServerDataResult.ListData.size());
1134 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Get_A_Contact_List_Due_To_Missing_Resource){
1136 std::string ServerAddress1 = "gibberish.invalid";
1137 std::string ServerUser1 = "user";
1138 std::string ServerPass1 = "pass";
1140 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
1141 FakeConnection.ResultServerPrefix = "/prefix/test/b";
1142 FakeConnection.Connect();
1144 COContactList ContactListSetup;
1145 ContactListSetup.SyncToken = "";
1147 FakeConnection.TestContactList = ContactListSetup;
1148 FakeConnection.TestRequestResult = COREQUEST_ERROR_SERVER;
1149 FakeConnection.TestEntityTag = "";
1150 FakeConnection.TestResultCode = 404;
1151 FakeConnection.TestSessionCode = 22;
1152 FakeConnection.TestResultMessage = "The resource could not be found.";
1154 COContactList ServerDataResult = FakeConnection.GetContactList("");
1156 EXPECT_EQ(COREQUEST_ERROR_SERVER, ServerDataResult.ServerResponse.RequestResult);
1157 EXPECT_EQ("", ServerDataResult.ServerResponse.EntityTag);
1158 EXPECT_EQ(404, ServerDataResult.ServerResponse.ResultCode);
1159 EXPECT_EQ(22, ServerDataResult.ServerResponse.SessionCode);
1160 EXPECT_EQ("The resource could not be found.", ServerDataResult.ServerResponse.ResultMessage);
1162 EXPECT_EQ(0, ServerDataResult.ListData.size());
1166 TEST(CardDAV, Use_Fake_To_Simulate_A_Connection_That_Fails_To_Get_A_Contact_List_Due_To_No_Connection){
1168 std::string ServerAddress1 = "gibberish.invalid";
1169 std::string ServerUser1 = "user";
1170 std::string ServerPass1 = "pass";
1172 FakeConnectionObject FakeConnection(ServerAddress1, 8080, ServerUser1, ServerPass1, true, "/prefix", "Account1");
1173 FakeConnection.ResultServerPrefix = "/prefix/test/b";
1174 FakeConnection.Connect();
1176 COContactList ContactListSetup;
1177 ContactListSetup.SyncToken = "";
1179 FakeConnection.TestContactList = ContactListSetup;
1180 FakeConnection.TestRequestResult = COREQUEST_ERROR_NOTCONNECTED;
1181 FakeConnection.TestEntityTag = "";
1182 FakeConnection.TestResultCode = 404;
1183 FakeConnection.TestSessionCode = 22;
1184 FakeConnection.TestResultMessage = "The resource could not be found.";
1186 COContactList ServerDataResult = FakeConnection.GetContactList("");
1188 EXPECT_EQ(COREQUEST_ERROR_NOTCONNECTED, ServerDataResult.ServerResponse.RequestResult);
1189 EXPECT_EQ("", ServerDataResult.ServerResponse.EntityTag);
1190 EXPECT_EQ(404, ServerDataResult.ServerResponse.ResultCode);
1191 EXPECT_EQ(22, ServerDataResult.ServerResponse.SessionCode);
1192 EXPECT_EQ("The resource could not be found.", ServerDataResult.ServerResponse.ResultMessage);
1194 EXPECT_EQ(0, ServerDataResult.ListData.size());