diff --git a/src/tests/kits/support/bstring/StringCaseTest.cpp b/src/tests/kits/support/bstring/StringCaseTest.cpp index b358f4cd32..cb6d0bb527 100644 --- a/src/tests/kits/support/bstring/StringCaseTest.cpp +++ b/src/tests/kits/support/bstring/StringCaseTest.cpp @@ -31,6 +31,12 @@ StringCaseTest::PerformTest(void) string->Capitalize(); CPPUNIT_ASSERT(strcmp(string->String(), "134this is a sentence") == 0); delete string; + + NextSubTest(); + string = new BString; + string->Capitalize(); + CPPUNIT_ASSERT(strcmp(string->String(), "") == 0); + delete string; //ToLower NextSubTest(); @@ -39,6 +45,12 @@ StringCaseTest::PerformTest(void) CPPUNIT_ASSERT(strcmp(string->String(), "1a2b3c4d5e6f7g") == 0); delete string; + NextSubTest(); + string = new BString; + string->ToLower(); + CPPUNIT_ASSERT(strcmp(string->String(), "") == 0); + delete string; + //ToUpper NextSubTest(); string = new BString("1a2b3c4d5E6f7g"); @@ -46,12 +58,24 @@ StringCaseTest::PerformTest(void) CPPUNIT_ASSERT(strcmp(string->String(), "1A2B3C4D5E6F7G") == 0); delete string; + NextSubTest(); + string = new BString; + string->ToUpper(); + CPPUNIT_ASSERT(strcmp(string->String(), "") == 0); + delete string; + //CapitalizeEachWord NextSubTest(); string = new BString("each wOrd 3will_be >capiTalized"); string->CapitalizeEachWord(); CPPUNIT_ASSERT(strcmp(string->String(), "Each Word 3Will_Be >Capitalized") == 0); - delete string; + delete string; + + NextSubTest(); + string = new BString; + string->CapitalizeEachWord(); + CPPUNIT_ASSERT(strcmp(string->String(), "") == 0); + delete string; } diff --git a/src/tests/kits/support/bstring/StringEscapeTest.cpp b/src/tests/kits/support/bstring/StringEscapeTest.cpp new file mode 100644 index 0000000000..3210f35d83 --- /dev/null +++ b/src/tests/kits/support/bstring/StringEscapeTest.cpp @@ -0,0 +1,36 @@ +#include "StringEscapeTest.h" +#include "cppunit/TestCaller.h" +#include + +StringEscapeTest::StringEscapeTest(std::string name) : + BTestCase(name) +{ +} + + + +StringEscapeTest::~StringEscapeTest() +{ +} + + +void +StringEscapeTest::PerformTest(void) +{ + BString *string1, *string2; + + NextSubTest(); + string1 = new BString("abcdefghi"); + string1->CharacterEscape("acf", '/'); + CPPUNIT_ASSERT(strcmp(string1->String(), "/ab/cde/fghi") == 0); + delete string1; +} + + +CppUnit::Test *StringEscapeTest::suite(void) +{ + typedef CppUnit::TestCaller + StringEscapeTestCaller; + + return(new StringEscapeTestCaller("BString::Escape Test", &StringEscapeTest::PerformTest)); +} diff --git a/src/tests/kits/support/bstring/StringEscapeTest.h b/src/tests/kits/support/bstring/StringEscapeTest.h new file mode 100644 index 0000000000..080ba4f5fe --- /dev/null +++ b/src/tests/kits/support/bstring/StringEscapeTest.h @@ -0,0 +1,22 @@ +#ifndef StringEscapeTest_H +#define StringEscapeTest_H + +#include "TestCase.h" +#include + + +class StringEscapeTest : public BTestCase +{ + +private: + +protected: + +public: + static Test *suite(void); + void PerformTest(void); + StringEscapeTest(std::string name = ""); + virtual ~StringEscapeTest(); + }; + +#endif diff --git a/src/tests/kits/support/bstring/StringInsertTest.cpp b/src/tests/kits/support/bstring/StringInsertTest.cpp new file mode 100644 index 0000000000..4c90e87cc7 --- /dev/null +++ b/src/tests/kits/support/bstring/StringInsertTest.cpp @@ -0,0 +1,85 @@ +#include "StringInsertTest.h" +#include "cppunit/TestCaller.h" +#include +#include + +StringInsertTest::StringInsertTest(std::string name) : + BTestCase(name) +{ +} + + + +StringInsertTest::~StringInsertTest() +{ +} + + +void +StringInsertTest::PerformTest(void) +{ + BString *str1, *str2; + + //&Insert(const char *, int32 pos); + NextSubTest(); + str1 = new BString("String"); + str1->Insert("INSERTED", 3); + CPPUNIT_ASSERT(strcmp(str1->String(), "StrINSERTEDing") == 0); + delete str1; + + //This test crashes both implementations + //NextSubTest(); + //str1 = new BString("String"); + //str1->Insert("INSERTED", 10); + //CPPUNIT_ASSERT(strcmp(str1->String(), "string") == 0); + //delete str1; + + NextSubTest(); + str1 = new BString; + str1->Insert("INSERTED", -1); + CPPUNIT_ASSERT(strcmp(str1->String(), "NSERTED") == 0); + delete str1; + + //&Insert(const char *, int32 length, int32 pos); + NextSubTest(); + str1 = new BString("string"); + str1->Insert("INSERTED", 2, 2); + CPPUNIT_ASSERT(strcmp(str1->String(), "stINring") == 0); + delete str1; + + //This test crashes both implementations + //NextSubTest(); + //str1 = new BString("string"); + //str1->Insert("INSERTED", 2, 30); + //CPPUNIT_ASSERT(strcmp(str1->String(), "stINring") == 0); + //delete str1; + + NextSubTest(); + str1 = new BString("string"); + str1->Insert("INSERTED", 10, 2); + CPPUNIT_ASSERT(strcmp(str1->String(), "stINSERTEDring") == 0); + delete str1; + + //&Insert(const char *, int32 fromOffset, int32 length, int32 pos); + NextSubTest(); + str1 = new BString("string"); + str1->Insert("INSERTED", 4, 30, 2); + CPPUNIT_ASSERT(strcmp(str1->String(), "stRTEDring") == 0); + delete str1; + + NextSubTest(); + str1 = new BString("string"); + str1->Insert('P', 5, 3); + cerr << str1->String() << endl; + CPPUNIT_ASSERT(strcmp(str1->String(), "strPPPPPing") == 0); + delete str1; +} + + +CppUnit::Test *StringInsertTest::suite(void) +{ + typedef CppUnit::TestCaller + StringInsertTestCaller; + + return(new StringInsertTestCaller("BString::Insert Test", &StringInsertTest::PerformTest)); +} diff --git a/src/tests/kits/support/bstring/StringInsertTest.h b/src/tests/kits/support/bstring/StringInsertTest.h new file mode 100644 index 0000000000..4662700b9b --- /dev/null +++ b/src/tests/kits/support/bstring/StringInsertTest.h @@ -0,0 +1,22 @@ +#ifndef StringInsertTest_H +#define StringInsertTest_H + +#include "TestCase.h" +#include + + +class StringInsertTest : public BTestCase +{ + +private: + +protected: + +public: + static Test *suite(void); + void PerformTest(void); + StringInsertTest(std::string name = ""); + virtual ~StringInsertTest(); + }; + +#endif diff --git a/src/tests/kits/support/bstring/StringPrependTest.cpp b/src/tests/kits/support/bstring/StringPrependTest.cpp index 0f66414c32..defb4abff2 100644 --- a/src/tests/kits/support/bstring/StringPrependTest.cpp +++ b/src/tests/kits/support/bstring/StringPrependTest.cpp @@ -59,6 +59,13 @@ StringPrependTest::PerformTest(void) str1->Prepend('c', 4); CPPUNIT_ASSERT(strcmp(str1->String(), "ccccaString") == 0); delete str1; + + NextSubTest(); + str1 = new BString; + str1->Prepend("PREPENDED"); + CPPUNIT_ASSERT(strcmp(str1->String(), "PREPENDED") == 0); + delete str1; + } diff --git a/src/tests/kits/support/bstring/StringTest.cpp b/src/tests/kits/support/bstring/StringTest.cpp index 9a48a70861..53b3a6a23c 100644 --- a/src/tests/kits/support/bstring/StringTest.cpp +++ b/src/tests/kits/support/bstring/StringTest.cpp @@ -8,6 +8,8 @@ #include "StringSubCopyTest.h" #include "StringPrependTest.h" #include "StringCaseTest.h" +#include "StringInsertTest.h" +#include "StringEscapeTest.h" CppUnit::Test *StringTestSuite() { @@ -20,6 +22,8 @@ CppUnit::Test *StringTestSuite() testSuite->addTest(StringSubCopyTest::suite()); testSuite->addTest(StringPrependTest::suite()); testSuite->addTest(StringCaseTest::suite()); + testSuite->addTest(StringInsertTest::suite()); + testSuite->addTest(StringEscapeTest::suite()); return(testSuite); }