X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Ftests%2Fxestiacalendar_testcommon.cpp;h=e36378ae43003b1c9b8c84770b25e3b38ffb3896;hb=cba151c4b833a26c63984769f921bab5e755decd;hp=99cf8fa379a0dec73c6efa37cbce2ae95887963f;hpb=15e1b2f8480eff7f827e5a81c7c700ed1a30429a;p=xestiacalendar%2F.git diff --git a/source/tests/xestiacalendar_testcommon.cpp b/source/tests/xestiacalendar_testcommon.cpp index 99cf8fa..e36378a 100644 --- a/source/tests/xestiacalendar_testcommon.cpp +++ b/source/tests/xestiacalendar_testcommon.cpp @@ -1,3 +1,21 @@ +// xestiacalendar_testcommon.cpp - Xestia Calendar Unit Test Common Functions. +// +// (c) 2016-2017 Xestia Software Development. +// +// This file is part of Xestia Calendar. +// +// 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 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. +// +// You should have received a copy of the GNU General Public License along +// with Xestia Calendar. If not, see + #include #include "xestiacalendar_testcommon.h" @@ -42,6 +60,147 @@ ProcessConnectionDataFileResult ProcessConnectionDataFile(string DataFilename, delete[] BufferRead; + bool NewLine = false; + bool SkipMode = false; + bool EqualFound = false; + bool QuoteMode = false; + bool ServerNameFound = false; + bool ServerUserFound = false; + bool ServerPassFound = false; + bool ServerSSLFound = false; + bool ServerPortFound = false; + bool ServerPrefixFound = false; + char BufferChar = 0; + int StringDataSize = ReceivedStringData.size(); + int SeekCount = 0; + string PropertyName; + string PropertyValue; + + while (SeekCount < StringDataSize){ + + if (ReceivedStringData[SeekCount] == '='){ + + EqualFound = true; + + } else if (ReceivedStringData[SeekCount] == '\n'){ + + // Newline reached. Check for what type of + // data it is. + + // Chceck that the equals sign has been found, + // there is a values in the property name + // and property value before doing anything. + + if (EqualFound == true && + PropertyName.size() > 0 && + PropertyValue.size() > 0){ + + if (PropertyName == "server" && ServerNameFound == false){ + + // Setup the server hostname. + + ConnData->Hostname = PropertyValue; + ServerNameFound = true; + + } else if (PropertyName == "port" && ServerPortFound == false){ + + // Setup the server port. + + int PortNum; + bool PortNumValid = true; + + try{ + PortNum = stoi(PropertyValue); + } + + catch(const invalid_argument &oor){ + PortNumValid = false; + } + + // Port Number is valid so add to the + // CalDAVConnectionData handle. + + if (PortNumValid == true){ + ConnData->Port = PortNum; + ServerPortFound = true; + } + + } else if (PropertyName == "user" && ServerUserFound == false){ + + // Setup the server user. + + ConnData->Username = PropertyValue; + ServerUserFound = true; + + } else if (PropertyName == "pass" && ServerPassFound == false){ + + // Setup the server pass. + + ConnData->Password = PropertyValue; + ServerPassFound = true; + + } else if (PropertyName == "ssl" && ServerSSLFound == false){ + + // Setup the server SSL status. + + if (PropertyValue == "true"){ + ConnData->UseSSL = true; + } else { + ConnData->UseSSL = false; + } + + ServerSSLFound = true; + + } else if (PropertyName == "prefix" && ServerPrefixFound == false){ + + // Setup the server prefix. + + ConnData->Prefix = PropertyValue; + ServerPrefixFound = true; + + } + + } + + // Reset the variables. + + EqualFound = false; + PropertyName.clear(); + PropertyValue.clear(); + + } else { + + // No special character so add it to the + // Property name or value depending on + // if the equal sign has been found. + + BufferChar = ReceivedStringData[SeekCount]; + + if (EqualFound == true){ + PropertyValue += BufferChar; + } else { + PropertyName += BufferChar; + } + + BufferChar = 0; + + } + + SeekCount++; + + } + + // Check that the CalDAV connection data object + // contains valid data. + + bool CalDAVConnDataResult = CalDAVObjectValidSettings(ConnData); + + if (CalDAVConnDataResult == false){ + ProcessResult = PROCESSCONNECTIONDATAFILE_INVALID; + } else { + ProcessResult = PROCESSCONNECTIONDATAFILE_OK; + } + return ProcessResult; } \ No newline at end of file