int test15 (void) { int ret = 0; try { printf ("TEST: nfindchr(), nreversefindchr() methods\n"); CBString c0, c1("Test"); printf ("\t\"%s\".nfindchr (CBString(\"abcdef\"));\n", (const char *) c0); ret += -1 != c0.nfindchr (CBString ("abcdef")); printf ("\t\"%s\".nfindchr (CBString(\"abcdef\"));\n", (const char *) c1); ret += 0 != c1.nfindchr (CBString ("abcdef")); printf ("\t\"%s\".nfindchr (\"abcdef\");\n", (const char *) c0); ret += -1 != c0.nfindchr ("abcdef"); printf ("\t\"%s\".nfindchr (\"abcdef\");\n", (const char *) c1); ret += 0 != c1.nfindchr ("abcdef"); printf ("\t\"%s\".nreversefindchr (CBString(\"abcdef\"));\n", (const char *) c0); ret += -1 != c0.nreversefindchr (CBString ("abcdef"), c0.length()); printf ("\t\"%s\".nreversefindchr (CBString(\"abcdef\"));\n", (const char *) c1); ret += 3 != c1.nreversefindchr (CBString ("abcdef"), c1.length()); printf ("\t\"%s\".nreversefindchr (\"abcdef\");\n", (const char *) c0); ret += -1 != c0.nreversefindchr ("abcdef", c0.length()); printf ("\t\"%s\".nreversefindchr (\"abcdef\");\n", (const char *) c1); ret += 3 != c1.nreversefindchr ("abcdef", c1.length()); } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } printf ("\t# failures: %d\n", ret); return ret; }
int test2 (void) { int ret = 0; printf ("TEST: CBString += operator\n"); try { CBString c0; struct tagbstring t = bsStatic ("test"); c0.writeprotect (); EXCEPTION_EXPECTED (c0 += 'x'); EXCEPTION_EXPECTED (c0 += (unsigned char) 'x'); EXCEPTION_EXPECTED (c0 += "test"); EXCEPTION_EXPECTED (c0 += CBString ("test")); EXCEPTION_EXPECTED (c0 += t); } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } try { CBString c0; struct tagbstring t = bsStatic ("extra"); c0 = "test"; printf ("\tc += 'x';\n"); c0 += 'x'; ret += (c0 != "testx"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc += (unsigned char)'x';\n"); c0 += (unsigned char) 'y'; ret += (c0 != "testxy"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc += \"test\";\n"); c0 += "test"; ret += (c0 != "testxytest"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc += CBStr[\"test\"];\n"); c0 += CBString (c0); ret += (c0 != "testxytesttestxytest"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc += tbstr[\"test\"];\n"); c0 += t; ret += (c0 != "testxytesttestxytestextra"); ret += '\0' != ((const char *)c0)[c0.length()]; } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } printf ("\t# failures: %d\n", ret); return ret; }
STDMETHODIMP CBCipher::get_Name(BSTR *pVal) { if(!m_ctx.cipher)return SetErrorInfo(s_strAlgoError); *pVal = CBString(OBJ_nid2sn(EVP_CIPHER_CTX_nid(&m_ctx))).AllocSysString(); return S_OK; }
int test1 (void) { int ret = 0; printf ("TEST: CBString = operator\n"); try { CBString c0; struct tagbstring t = bsStatic ("test"); ret += c0.iswriteprotected(); c0.writeprotect (); ret += 1 != c0.iswriteprotected(); EXCEPTION_EXPECTED (c0 = 'x'); EXCEPTION_EXPECTED (c0 = (unsigned char) 'x'); EXCEPTION_EXPECTED (c0 = "test"); EXCEPTION_EXPECTED (c0 = CBString ("test")); EXCEPTION_EXPECTED (c0 = t); } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } try { CBString c0, c1; struct tagbstring t = bsStatic ("test"); printf ("\tc = 'x';\n"); c0 = 'x'; ret += (c0 != "x"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc = (unsigned char)'x';\n"); c0 = (unsigned char) 'x'; ret += (c0 != "x"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc = \"test\";\n"); c0 = "test"; ret += (c0 != "test"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc = CBStr[\"test\"];\n"); c1 = c0; ret += (c0 != c1); ret += '\0' != ((const char *)c1)[c1.length()]; printf ("\tc = tbstr[\"test\"];\n"); c0 = t; ret += (c0 != "test"); ret += '\0' != ((const char *)c0)[c0.length()]; } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } printf ("\t# failures: %d\n", ret); return ret; }
int test23 (void) { int ret = 0; printf ("TEST: findreplace() method\n"); try { CBString c0, c1("Test-test"); printf ("\t\"%s\".findreplace (\"est\",\"beef\")\n", (const char *) c0); c0.findreplace ("est", "beef"); ret += c0 != ""; c0 = ""; c0.findreplace (CBString ("est"), CBString ("beef")); ret += c0 != ""; printf ("\t\"%s\".findreplace (\"est\",\"beef\")\n", (const char *) c1); c1.findreplace ("est", "beef"); ret += c1 != "Tbeef-tbeef"; c1 = "Test-test"; c1.findreplace (CBString ("est"), CBString ("beef")); ret += c1 != "Tbeef-tbeef"; } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } try { CBString c0, c1("TeSt-tEsT"); printf ("\t\"%s\".findreplacecaseless (\"est\",\"beef\")\n", (const char *) c0); c0.findreplacecaseless ("est", "beef"); ret += c0 != ""; c0 = ""; c0.findreplacecaseless (CBString ("est"), CBString ("beef")); ret += c0 != ""; printf ("\t\"%s\".findreplacecaseless (\"est\",\"beef\")\n", (const char *) c1); c1.findreplacecaseless ("est", "beef"); ret += c1 != "Tbeef-tbeef"; c1 = "Test-test"; c1.findreplacecaseless (CBString ("est"), CBString ("beef")); ret += c1 != "Tbeef-tbeef"; } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } printf ("\t# failures: %d\n", ret); return ret; }
HRESULT CBCookie::ParseUrlEncodeString(LPCSTR pstr, UINT nSize) { LPCSTR pstrTemp; CBString strKey, strValue; LPCSTR pdefstr = pstr; UINT nDefSize = nSize; m_dict.RemoveAll(); while(nSize) { pstrTemp = pstr; while(nSize && *pstr != '=') { pstr ++; nSize --; } if(!nSize)break; if(pstr > pstrTemp) strKey = CBEncoding::UrlDecode(pstrTemp, (UINT)(pstr - pstrTemp)); else strKey.Empty(); if(nSize) { nSize --; pstr ++; } pstrTemp = pstr; while(nSize && *pstr != '&') { pstr ++; nSize --; } if(!strKey.IsEmpty()) if(pstr > pstrTemp) strValue = CBEncoding::UrlDecode(pstrTemp, (UINT)(pstr - pstrTemp)); else strValue.Empty(); if(nSize) { nSize --; pstr ++; } if(!strKey.IsEmpty())AddValue(strKey, strValue); } if(m_dict.GetCount())m_strDefault = CBString(pdefstr, nDefSize); else m_strDefault = CBEncoding::UrlDecode(pdefstr, nDefSize); return S_OK; }
int test22 (void) { int ret = 0; printf ("TEST: replace() method\n"); try { CBString c0("Test-test"); c0.writeprotect (); EXCEPTION_EXPECTED (c0.replace (4, 2, "beef")); } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } try { CBString c0, c1("Test-test"); printf ("\t\"%s\".replace (4,2,\"beef\")\n", (const char *) c0); c0.replace (4, 2, CBString ("beef")); ret += c0 != " beef"; c0 = ""; c0.replace (4, 2, "beef"); ret += c0 != " beef"; printf ("\t\"%s\".replace (4,2,\"beef\")\n", (const char *) c1); c1.replace (4, 2, CBString ("beef")); ret += c1 != "Testbeefest"; c1 = "Test-test"; c1.replace (4, 2, "beef"); ret += c1 != "Testbeefest"; } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } printf ("\t# failures: %d\n", ret); return ret; }
int test31 (void) { CBString c; int ret = 0; printf ("TEST: CBStream test\n"); CBStream s((bNread) test31_aux, NULL); s << CBString("Test"); ret += ((c = s.read ()) != CBString ("Test")); ret += !s.eof(); printf ("\t\"%s\" through CBStream.read()\n", (const char *) c); s << CBString("Test"); c.trunc (0); ret += ((s >> c) != CBString ("Test")); ret += !s.eof(); printf ("\t\"%s\" through CBStream.>>\n", (const char *) c); return ret; }
gcString::gcString(const char *strdata){data = CBString(strdata);}
int test13 (void) { int ret = 0; try { printf ("TEST: find() method\n"); CBString c0, c1("Test"); printf ("\t\"%s\".find (CBString());\n", (const char *) c0); ret += -1 != c0.find (CBString("x")); ret += 1 != c1.find (CBString("e")); printf ("\t\"%s\".find (char *);\n", (const char *) c0); ret += -1 != c0.find ("x"); ret += 1 != c1.find ("e"); ret += 8 != CBString ("sssssssssap").find ("sap"); ret += 9 != CBString ("sssssssssap").find ("ap"); ret += 9 != CBString ("sssssssssap").find ("ap", 3); ret += 9 != CBString ("sssssssssap").find ("a"); ret += 9 != CBString ("sssssssssap").find ("a", 3); ret += -1 != CBString ("sssssssssap").find ("x"); ret += -1 != CBString ("sssssssssap").find ("x", 3); ret += -1 != CBString ("sssssssssap").find ("ax"); ret += -1 != CBString ("sssssssssap").find ("ax", 3); ret += -1 != CBString ("sssssssssap").find ("sax"); ret += -1 != CBString ("sssssssssap").find ("sax", 1); ret += 8 != CBString ("sssssssssap").find ("sap", 3); ret += 9 != CBString ("ssssssssssap").find ("sap", 3); ret += 0 != CBString ("sssssssssap").find ("s"); ret += 3 != CBString ("sssssssssap").find ("s", 3); ret += 9 != CBString ("sssssssssap").find ("a"); ret += 9 != CBString ("sssssssssap").find ("a", 5); ret += 8 != CBString ("sasasasasap").find ("sap"); ret += 9 != CBString ("ssasasasasap").find ("sap"); printf ("\t\"%s\".find (char);\n", (const char *) c0); ret += -1 != c0.find ('x'); ret += 1 != c1.find ('e'); printf ("TEST: reversefind () method\n"); printf ("\t\"%s\".reversefind (CBString());\n", (const char *) c0); ret += -1 != c0.reversefind (CBString("x"), c0.length()); ret += 1 != c1.reversefind (CBString("e"), c1.length()); printf ("\t\"%s\".reversefind (char *);\n", (const char *) c0); ret += -1 != c0.reversefind ("x", c0.length()); ret += 1 != c1.reversefind ("e", c1.length()); printf ("\t\"%s\".reversefind (char);\n", (const char *) c0); ret += -1 != c0.reversefind ('x', c0.length()); ret += 1 != c1.reversefind ('e', c1.length()); } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } printf ("\t# failures: %d\n", ret); return ret; }
int test3 (void) { int ret = 0; try { CBString c0, c1; struct tagbstring t = bsStatic ("extra"); printf ("TEST: CBString + operator\n"); c1 = "test"; printf ("\tc + 'x';\n"); c0 = c1 + 'x'; ret += (c0 != "testx"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc + (unsigned char)'x';\n"); c0 = c1 + (unsigned char) 'y'; ret += (c0 != "testy"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc + \"test\";\n"); c0 = c1 + (const char *) "stuff"; ret += (c0 != "teststuff"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc + (unsigned char *) \"test\";\n"); c0 = c1 + (const unsigned char *) "stuff"; ret += (c0 != "teststuff"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc + CBStr[\"test\"];\n"); c0 = c1 + CBString ("other"); ret += (c0 != "testother"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\tc + tbstr[\"test\"];\n"); c0 = c1 + t; ret += (c0 != "testextra"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("TEST: + CBString operator\n"); printf ("\t'x' + c;\n"); c0 = 'x' + c1; ret += (c0 != "xtest"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\t(unsigned char)'y' + c;\n"); c0 = (unsigned char) 'y' + c1; ret += (c0 != "ytest"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\t\"test\" + c;\n"); c0 = (const char *) "stuff" + c1; ret += (c0 != "stufftest"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\t(unsigned char *) \"test\" + c;\n"); c0 = (const unsigned char *) "stuff" + c1; ret += (c0 != "stufftest"); ret += '\0' != ((const char *)c0)[c0.length()]; printf ("\ttbstr[\"extra\"] + c;\n"); c0 = t + c1; ret += (c0 != "extratest"); ret += '\0' != ((const char *)c0)[c0.length()]; } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } printf ("\t# failures: %d\n", ret); return ret; }
int test28 (void) { int ret = 0; printf ("TEST: split(), join() mechanisms\n"); try { CBString c0, c1("a b c d e f"); struct CBStringList s; s.split (c1, ' '); c0.writeprotect (); EXCEPTION_EXPECTED (c0.join (s)); } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } try { CBString c0, c1("a b c d e f"); struct CBStringList s; printf ("\t\"%s\".split (' ')\n", (const char *) c1); s.split (c1, ' '); CBString c2(s), c3(s, ','); printf ("\tc.join (<...>)\n"); ret += c2 != "abcdef"; ret += c3 != "a,b,c,d,e,f"; c0.join (s); ret += c0 != "abcdef"; c0.join (s, ','); ret += c0 != "a,b,c,d,e,f"; CBString strPepe = "valor1@valor2@valor3@@@valor6"; for (unsigned char c = (unsigned char) '\0';;c++) { CBStringList sl; CBString x; sl.split (strPepe, c); x.join (sl, c); if (x != strPepe) { printf ("\tfailure[%d] split/join mismatch\n\t\t%s\n\t\t%s\n", __LINE__, (const char *) strPepe, (const char *) x); ret++; break; } if (UCHAR_MAX == c) break; } { CBStringList sl; CBString x; sl.splitstr (strPepe, CBString ("or")); x.join (sl, CBString ("or")); if (x != strPepe) { printf ("\tfailure[%d] splitstr/join mismatch\n\t\t%s\n\t\t%s\n", __LINE__, (const char *) strPepe, (const char *) x); ret++; } } { CBStringList sl; CBString x; sl.splitstr (strPepe, CBString ("6")); x.join (sl, CBString ("6")); if (x != strPepe) { printf ("\tfailure[%d] splitstr/join mismatch\n\t\t%s\n\t\t%s\n", __LINE__, (const char *) strPepe, (const char *) x); ret++; } } { CBStringList sl; CBString x; sl.splitstr (strPepe, CBString ("val")); x.join (sl, CBString ("val")); if (x != strPepe) { printf ("\tfailure[%d] splitstr/join mismatch\n\t\t%s\n\t\t%s\n", __LINE__, (const char *) strPepe, (const char *) x); ret++; } } { CBStringList sl; CBString x; sl.splitstr (strPepe, CBString ("@@")); x.join (sl, CBString ("@@")); if (x != strPepe) { printf ("\tfailure[%d] splitstr/join mismatch\n\t\t%s\n\t\t%s\n", __LINE__, (const char *) strPepe, (const char *) x); ret++; } } } catch (struct CBStringException err) { printf ("Exception thrown [%d]: %s\n", __LINE__, err.what()); ret ++; } printf ("\t# failures: %d\n", ret); return ret; }