// Static function // Split name-value pair around '=' char of the form "name=value" AclReader::nvPair AclReader::splitNameValuePair(const std::string& nvpString) { std::size_t pos = nvpString.find("="); if (pos == std::string::npos || pos == nvpString.size() - 1) { return nvPair(nvpString, ""); } return nvPair(nvpString.substr(0, pos), nvpString.substr(pos+1)); }
void testSimple(int& iRet) { ANameValuePair nvPair("name", "alex"); AString str; nvPair.emit(str); ASSERT_UNIT_TEST(str.equals("name=alex"), "Simple emit to AString failed", "", iRet); ASSERT_UNIT_TEST(nvPair.isName("name"), "Checking name", "", iRet); ASSERT_UNIT_TEST(nvPair.isValue("alex"), "Checking value", "", iRet); ASSERT_UNIT_TEST(!nvPair.isName("Name"), "Checking against wrong case", "", iRet); ASSERT_UNIT_TEST(nvPair.isNameNoCase("Name"), "Compare without case", "", iRet); }
void testJson(int& iRet) { ANameValuePair nvPair(ANameValuePair::JSON); size_t pos = 0; nvPair.parse(" \r\n \t coLoR : \t \t \" green's yellow \" \r\n} \t ", pos); ASSERT_UNIT_TEST(nvPair.isName("coLoR"), "Json name test", "", iRet); ASSERT_UNIT_TEST(nvPair.isValue(" green's yellow "), "Json value test", "", iRet); AString str('{'); nvPair.emit(str); str.append('}'); ASSERT_UNIT_TEST(str.equals("{coLoR:\" green's yellow \"}"), "Json emit test", "", iRet); }
void testXml(int& iRet) { //a_XML value parsing AString str; ANameValuePair nvPair(ANameValuePair::XML); size_t pos = 0; nvPair.parse(" \t \t \n \r \r\n iam \r = \n \t \"a'b'c'\" \r\n ", pos); nvPair.emit(str); ASSERT_UNIT_TEST(str == "iam=\"a'b'c'\"", "Handling of single quote in double quote error", "0", iRet); pos = 0; str.clear(); nvPair.parse(" \t \t \n \r \r\n iam \r = \t \"Myvalue's value\" ", pos); nvPair.emit(str); ASSERT_UNIT_TEST(str == "iam=\"Myvalue's value\"", "Handling of single quote in double quote error", "1", iRet); pos = 0; str.clear(); nvPair.parse("iam = 'is \"quoted\" often'", pos); nvPair.emit(str); ASSERT_UNIT_TEST(str == "iam='is \"quoted\" often'", "Handling of double quote in single quote error", "", iRet); }