Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added unit tests for checking the invalid SSL certificate.
[xestiacalendar/.git] / source / tests / xestiacalendar_caldav.h
index 885d8a6..45da6f7 100644 (file)
@@ -27,13 +27,13 @@ TEST(CalDAV, BasicTests){
 
        CalDAVConnectionData ConnPlain;
        CalDAVConnectionData ConnNormal;
-       CalDAVConnectionData ConnFail;
+       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.
@@ -52,9 +52,9 @@ TEST(CalDAV, BasicTests){
        
        // Attempt to read the caldavtest-fail.auth file.
        
-       DataFileResult = ProcessConnectionDataFile("caldavtest-fail.auth", &ConnFail);
+       DataFileResult = ProcessConnectionDataFile("caldavtest-fail.auth", &ConnInvalidSSL);
        if (DataFileResult == PROCESSCONNECTIONDATAFILE_OK){
-               ValidDataFail = true;
+               ValidDataInvalidSSL = true;
        }
        
        // Attempt to read the caldavtest-timeout.auth file.
@@ -94,7 +94,7 @@ TEST(CalDAV, BasicTests){
                
        }
        
-       if (ValidDataFail == false){
+       if (ValidDataInvalidSSL == false){
        
                // Cannot read the caldavtest-fail.auth file properly.
                
@@ -126,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.
        
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