Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Updated/Added copyright header and licensing to all source files
[xestiacalendar/.git] / source / tests / xestiacalendar_caldav.h
index 4e4b638..87090ff 100644 (file)
@@ -1,14 +1,14 @@
 // xestiacalendar_caldav.h - Xestia Calendar CalDAV Object Unit Tests
 //
-// (c) 2016 Xestia Software Development.
+// (c) 2016-2017 Xestia Software Development.
 //
 // This file is part of Xestia Calendar.
 //
-// Xestia Address Book is free software: you can redistribute it and/or modify
+// Xestia Calendar is free software: you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by the
 // Free Software Foundation, version 3 of the license.
 //
-// Xestia Address Book is distributed in the hope that it will be useful,
+// Xestia Calendar is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 // GNU General Public License for more details.
@@ -985,6 +985,8 @@ TEST(CalDAV, GetEntryETag){
        ASSERT_EQ(207, ConnResult.HTTPCode);
        ASSERT_EQ(CURLE_OK, ConnResult.Code);
        
+       // Get the entry entity tag.
+       
        string ETagValue;
        
        ConnResult = ServerConnection.GetEntryETag(&EntryCalendarHREFProcessing, &ETagValue);
@@ -1161,4 +1163,106 @@ TEST(CalDAV, DeleteEntry){
        ASSERT_EQ(204, ConnResult.HTTPCode);
        ASSERT_EQ(CURLE_OK, ConnResult.Code);
        
+}
+
+TEST(CalDAV, GetEntryList){
+       
+       // Check that EntryCalendarHREFProcessing is not blank. 
+       
+       ASSERT_NE("", EntryCalendarHREFProcessing);
+       
+       CalDAVConnectionData ConnNormal;
+       string CurrentUserPrincipal;
+
+       bool ValidDataNormal = false;
+       
+       // Attempt to read the caldavtest.auth file.
+
+       ProcessConnectionDataFileResult DataFileResult = ProcessConnectionDataFile("caldavtest.auth", &ConnNormal);
+       if (DataFileResult == PROCESSCONNECTIONDATAFILE_OK){
+               ValidDataNormal = true;
+       }
+
+       ASSERT_EQ(true, ValidDataNormal);
+       
+       // Setup the connection.
+       
+       CalDAV ServerConnection;
+       
+       ServerConnection.SetupConnectionData(&ConnNormal);
+       
+       // Verify the connection settings.
+       
+       CalDAVStatus CalDAVStatus = ServerConnection.GetConnectionData();
+       
+       ASSERT_EQ(CalDAVStatus.Hostname, ConnNormal.Hostname);
+       ASSERT_EQ(CalDAVStatus.Username, ConnNormal.Username);
+       ASSERT_EQ(CalDAVStatus.Port, ConnNormal.Port);
+       ASSERT_EQ(CalDAVStatus.Prefix, ConnNormal.Prefix);
+       ASSERT_EQ(CalDAVStatus.UseSSL, ConnNormal.UseSSL);
+       
+       // Connect to the server.
+       
+       CalDAVServerResult ConnResult = ServerConnection.Connect();
+       
+       EXPECT_EQ(CALDAVQUERYRESULT_OK, ConnResult.Result);
+       ASSERT_EQ(200, ConnResult.HTTPCode);
+       ASSERT_EQ(CURLE_OK, ConnResult.Code);
+       
+       // Check that the server supports CalDAV.
+       
+       CalDAVServerSupport ConnSupport = ServerConnection.GetServerSupport();
+       ConnResult = ServerConnection.GetServerResult();
+       
+       EXPECT_EQ(CALDAVQUERYRESULT_OK, ConnResult.Result);
+       ASSERT_EQ(200, ConnResult.HTTPCode);
+       ASSERT_EQ(CURLE_OK, ConnResult.Code);
+       ASSERT_EQ(true, ConnSupport.BasicSupport);
+       
+       // Get the user principal.
+       
+       string UserPrincipalURI = ServerConnection.GetUserPrincipal();
+       
+       // Get the calendar home.
+       
+       string CalendarHomeURL = ServerConnection.GetCalendarHome(UserPrincipalURI);
+
+       string CalendarHREF = CalendarHomeURL;
+       CalendarHREF += "unittestcal/";
+
+       // Get the entry list without a calendar tag set.
+       
+       CalDAVEntryList EntryList = ServerConnection.GetEntryList(&CalendarHREF);
+
+       EXPECT_GE(EntryList.HREF.size(), 1);
+
+       // Get the list of calendars.
+       
+       CalDAVCalendarList CalendarList = ServerConnection.GetCalendars();
+
+       string CalendarTagURL = "";
+
+       for (std::map<int,string>::iterator CalHREFIter = CalendarList.HREF.begin();
+               CalHREFIter != CalendarList.HREF.end(); CalHREFIter++){
+                       
+               if (CalHREFIter->second.substr(CalHREFIter->second.length() - 13) == "/unittestcal/"){
+                       
+                       CalendarTagURL = CalendarList.TagURL.find(CalHREFIter->first)->second;
+                       
+               }
+                       
+       }
+
+       // Get the entry list without a calendar tag set (shouldn't be empty).
+       
+       EntryList = ServerConnection.GetEntryList(&CalendarHREF, nullptr);
+
+       EXPECT_GE(EntryList.HREF.size(), 1);
+       
+       // Get the entry list with a calendar tag set (should be empty).
+       
+       EntryList = ServerConnection.GetEntryList(&CalendarHREF, &CalendarTagURL);
+
+       EXPECT_EQ(EntryList.HREF.size(), 0);
+
 }
\ No newline at end of file
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