X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Ftests%2Fxestiacalendar_caldav.h;h=45da6f78962cdb30f1a4a978e78d2bed92445439;hb=c62ffe9335e1c0480c1e7c1fd20e258a4c40dca1;hp=1bb636650801b86331d2805a95de2a40f8c173fd;hpb=497e770ff0c01c48bb7212916de151f139f024e4;p=xestiacalendar%2F.git diff --git a/source/tests/xestiacalendar_caldav.h b/source/tests/xestiacalendar_caldav.h index 1bb6366..45da6f7 100644 --- a/source/tests/xestiacalendar_caldav.h +++ b/source/tests/xestiacalendar_caldav.h @@ -1,4 +1,4 @@ -// xestiacalendar_icaleventload.h - Xestia Calendar CalDAV Object Unit Tests +// xestiacalendar_caldav.h - Xestia Calendar CalDAV Object Unit Tests // // (c) 2016 Xestia Software Development. // @@ -17,6 +17,7 @@ // with Xestia Calendar. If not, see #include "../objects/CalDAV/CalDAV.h" +#include "xestiacalendar_testcommon.h" #include #include @@ -24,15 +25,44 @@ using namespace std; TEST(CalDAV, BasicTests){ + CalDAVConnectionData ConnPlain; + CalDAVConnectionData ConnNormal; + CalDAVConnectionData ConnInvalidSSL; + CalDAVConnectionData ConnTimeout; + ProcessConnectionDataFileResult DataFileResult; + bool ValidDataPlain = false; bool ValidDataNormal = false; - bool ValidDataFail = false; + bool ValidDataInvalidSSL = false; bool ValidDataTimeout = false; // Attempt to read the caldavtest-plain.auth file. + + DataFileResult = ProcessConnectionDataFile("caldavtest-plain.auth", &ConnPlain); + if (DataFileResult == PROCESSCONNECTIONDATAFILE_OK){ + ValidDataPlain = true; + } + + // Attempt to read the caldavtest.auth file. + + DataFileResult = ProcessConnectionDataFile("caldavtest.auth", &ConnNormal); + if (DataFileResult == PROCESSCONNECTIONDATAFILE_OK){ + ValidDataNormal = true; + } + // Attempt to read the caldavtest-fail.auth file. + + DataFileResult = ProcessConnectionDataFile("caldavtest-fail.auth", &ConnInvalidSSL); + if (DataFileResult == PROCESSCONNECTIONDATAFILE_OK){ + ValidDataInvalidSSL = true; + } + // Attempt to read the caldavtest-timeout.auth file. - // Attempt to read the caldavtest.auth file. + + DataFileResult = ProcessConnectionDataFile("caldavtest-fail.auth", &ConnTimeout); + if (DataFileResult == PROCESSCONNECTIONDATAFILE_OK){ + ValidDataTimeout = true; + } if (ValidDataPlain == false){ @@ -64,7 +94,7 @@ TEST(CalDAV, BasicTests){ } - if (ValidDataFail == false){ + if (ValidDataInvalidSSL == false){ // Cannot read the caldavtest-fail.auth file properly. @@ -96,26 +126,113 @@ TEST(CalDAV, BasicTests){ ASSERT_EQ(true, ValidDataPlain); ASSERT_EQ(true, ValidDataNormal); - ASSERT_EQ(true, ValidDataFail); + ASSERT_EQ(true, ValidDataInvalidSSL); ASSERT_EQ(true, ValidDataTimeout); // (*nix version) Setup an initial connection (just plain // text). + CalDAV CalDAVPlain; + CalDAVPlain.SetupConnectionData(&ConnPlain); + + // Verify that the settings match with the CalDAVConnectionData + // passed. + + CalDAVStatus CalDAVPlainStatus = CalDAVPlain.GetConnectionData(); + + ASSERT_EQ(CalDAVPlainStatus.Hostname, ConnPlain.Hostname); + ASSERT_EQ(CalDAVPlainStatus.Username, ConnPlain.Username); + ASSERT_EQ(CalDAVPlainStatus.Port, ConnPlain.Port); + ASSERT_EQ(CalDAVPlainStatus.Prefix, ConnPlain.Prefix); + ASSERT_EQ(CalDAVPlainStatus.UseSSL, ConnPlain.UseSSL); + // Verify that the connection was successful. + CalDAVServerResult ConnResult = CalDAVPlain.Connect(); + + ASSERT_EQ(CALDAVQUERYRESULT_OK, ConnResult.Result); + ASSERT_EQ(200, ConnResult.HTTPCode); + ASSERT_EQ(CURLE_OK, ConnResult.Code); + + // Do another connection and this time the connection should + // fail due to being an invalid host name. + + CalDAVConnectionData ConnPlainFail; + ConnPlainFail.Hostname = "server.invalid"; + ConnPlainFail.Username = "fail"; + ConnPlainFail.Password = "fail"; + ConnPlainFail.Port = 80; + ConnPlainFail.UseSSL = false; + + // Setup the CalDAV connection object. + + CalDAV CalDAVPlainFail; + CalDAVPlainFail.SetupConnectionData(&ConnPlainFail); + + // Setup the CalDAVStatus object. + + CalDAVStatus CalDAVPlainFailStatus = CalDAVPlain.GetConnectionData(); + + // Connect and fail. + + ConnResult = CalDAVPlainFail.Connect(); + + ASSERT_EQ(CALDAVQUERYRESULT_SERVERERROR, ConnResult.Result); + ASSERT_EQ(0, ConnResult.HTTPCode); + ASSERT_EQ(CURLE_COULDNT_RESOLVE_HOST, ConnResult.Code); + // (*nix version) Setup an initial connection (with a valid // SSL certificate). + + CalDAV CalDAVNormal; + CalDAVNormal.SetupConnectionData(&ConnNormal); + + // Verify that the settings match with the CalDAVConnectionData + // passed. + CalDAVStatus CalDAVNormalStatus = CalDAVNormal.GetConnectionData(); + + ASSERT_EQ(CalDAVNormalStatus.Hostname, ConnNormal.Hostname); + ASSERT_EQ(CalDAVNormalStatus.Username, ConnNormal.Username); + ASSERT_EQ(CalDAVNormalStatus.Port, ConnNormal.Port); + ASSERT_EQ(CalDAVNormalStatus.Prefix, ConnNormal.Prefix); + ASSERT_EQ(CalDAVNormalStatus.UseSSL, ConnNormal.UseSSL); + // Verify that the connection was successful (with a valid // SSL certificate). + ConnResult = CalDAVNormal.Connect(); + + ASSERT_EQ(CALDAVQUERYRESULT_OK, ConnResult.Result); + ASSERT_EQ(200, ConnResult.HTTPCode); + ASSERT_EQ(CURLE_OK, ConnResult.Code); + // (*nix version) Setup an initial connection on a server that // will fail due to having an invalid SSL certificate. + CalDAV CalDAVInvalidSSL; + CalDAVInvalidSSL.SetupConnectionData(&ConnInvalidSSL); + + // Verify that the settings match with the CalDAVConnectionData + // passed. + + CalDAVStatus CalDAVInvalidSSLStatus = CalDAVInvalidSSL.GetConnectionData(); + + ASSERT_EQ(CalDAVInvalidSSLStatus.Hostname, ConnInvalidSSL.Hostname); + ASSERT_EQ(CalDAVInvalidSSLStatus.Username, ConnInvalidSSL.Username); + ASSERT_EQ(CalDAVInvalidSSLStatus.Port, ConnInvalidSSL.Port); + ASSERT_EQ(CalDAVInvalidSSLStatus.Prefix, ConnInvalidSSL.Prefix); + ASSERT_EQ(CalDAVInvalidSSLStatus.UseSSL, ConnInvalidSSL.UseSSL); + // Verify that the connection had failed. (with an invalid // SSL certificate). + ConnResult = CalDAVInvalidSSL.Connect(); + + ASSERT_EQ(CALDAVQUERYRESULT_SERVERERROR, ConnResult.Result); + ASSERT_EQ(0, ConnResult.HTTPCode); + ASSERT_EQ(CURLE_SSL_CACERT, ConnResult.Code); + // (*nix version) Setup an inital connection on a server where // a timeout occurs.