Beispiel #1
0
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;
}
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}
Beispiel #4
0
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;
}
Beispiel #5
0
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;
}
Beispiel #6
0
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;
}
Beispiel #7
0
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;
}
Beispiel #8
0
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;
}
Beispiel #9
0
gcString::gcString(const char *strdata){data = CBString(strdata);}
Beispiel #10
0
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;
}
Beispiel #11
0
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;
}
Beispiel #12
0
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;
}