More tests (Escaping, Inserting)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1406 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2002-10-06 13:45:40 +00:00
parent a971d340bb
commit dd2406eb30
7 changed files with 201 additions and 1 deletions
@@ -31,6 +31,12 @@ StringCaseTest::PerformTest(void)
string->Capitalize(); string->Capitalize();
CPPUNIT_ASSERT(strcmp(string->String(), "134this is a sentence") == 0); CPPUNIT_ASSERT(strcmp(string->String(), "134this is a sentence") == 0);
delete string; delete string;
NextSubTest();
string = new BString;
string->Capitalize();
CPPUNIT_ASSERT(strcmp(string->String(), "") == 0);
delete string;
//ToLower //ToLower
NextSubTest(); NextSubTest();
@@ -39,6 +45,12 @@ StringCaseTest::PerformTest(void)
CPPUNIT_ASSERT(strcmp(string->String(), "1a2b3c4d5e6f7g") == 0); CPPUNIT_ASSERT(strcmp(string->String(), "1a2b3c4d5e6f7g") == 0);
delete string; delete string;
NextSubTest();
string = new BString;
string->ToLower();
CPPUNIT_ASSERT(strcmp(string->String(), "") == 0);
delete string;
//ToUpper //ToUpper
NextSubTest(); NextSubTest();
string = new BString("1a2b3c4d5E6f7g"); string = new BString("1a2b3c4d5E6f7g");
@@ -46,12 +58,24 @@ StringCaseTest::PerformTest(void)
CPPUNIT_ASSERT(strcmp(string->String(), "1A2B3C4D5E6F7G") == 0); CPPUNIT_ASSERT(strcmp(string->String(), "1A2B3C4D5E6F7G") == 0);
delete string; delete string;
NextSubTest();
string = new BString;
string->ToUpper();
CPPUNIT_ASSERT(strcmp(string->String(), "") == 0);
delete string;
//CapitalizeEachWord //CapitalizeEachWord
NextSubTest(); NextSubTest();
string = new BString("each wOrd 3will_be >capiTalized"); string = new BString("each wOrd 3will_be >capiTalized");
string->CapitalizeEachWord(); string->CapitalizeEachWord();
CPPUNIT_ASSERT(strcmp(string->String(), "Each Word 3Will_Be >Capitalized") == 0); 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;
} }
@@ -0,0 +1,36 @@
#include "StringEscapeTest.h"
#include "cppunit/TestCaller.h"
#include <String.h>
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<StringEscapeTest>
StringEscapeTestCaller;
return(new StringEscapeTestCaller("BString::Escape Test", &StringEscapeTest::PerformTest));
}
@@ -0,0 +1,22 @@
#ifndef StringEscapeTest_H
#define StringEscapeTest_H
#include "TestCase.h"
#include <String.h>
class StringEscapeTest : public BTestCase
{
private:
protected:
public:
static Test *suite(void);
void PerformTest(void);
StringEscapeTest(std::string name = "");
virtual ~StringEscapeTest();
};
#endif
@@ -0,0 +1,85 @@
#include "StringInsertTest.h"
#include "cppunit/TestCaller.h"
#include <String.h>
#include <iostream>
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<StringInsertTest>
StringInsertTestCaller;
return(new StringInsertTestCaller("BString::Insert Test", &StringInsertTest::PerformTest));
}
@@ -0,0 +1,22 @@
#ifndef StringInsertTest_H
#define StringInsertTest_H
#include "TestCase.h"
#include <String.h>
class StringInsertTest : public BTestCase
{
private:
protected:
public:
static Test *suite(void);
void PerformTest(void);
StringInsertTest(std::string name = "");
virtual ~StringInsertTest();
};
#endif
@@ -59,6 +59,13 @@ StringPrependTest::PerformTest(void)
str1->Prepend('c', 4); str1->Prepend('c', 4);
CPPUNIT_ASSERT(strcmp(str1->String(), "ccccaString") == 0); CPPUNIT_ASSERT(strcmp(str1->String(), "ccccaString") == 0);
delete str1; delete str1;
NextSubTest();
str1 = new BString;
str1->Prepend("PREPENDED");
CPPUNIT_ASSERT(strcmp(str1->String(), "PREPENDED") == 0);
delete str1;
} }
@@ -8,6 +8,8 @@
#include "StringSubCopyTest.h" #include "StringSubCopyTest.h"
#include "StringPrependTest.h" #include "StringPrependTest.h"
#include "StringCaseTest.h" #include "StringCaseTest.h"
#include "StringInsertTest.h"
#include "StringEscapeTest.h"
CppUnit::Test *StringTestSuite() CppUnit::Test *StringTestSuite()
{ {
@@ -20,6 +22,8 @@ CppUnit::Test *StringTestSuite()
testSuite->addTest(StringSubCopyTest::suite()); testSuite->addTest(StringSubCopyTest::suite());
testSuite->addTest(StringPrependTest::suite()); testSuite->addTest(StringPrependTest::suite());
testSuite->addTest(StringCaseTest::suite()); testSuite->addTest(StringCaseTest::suite());
testSuite->addTest(StringInsertTest::suite());
testSuite->addTest(StringEscapeTest::suite());
return(testSuite); return(testSuite);
} }