aboutsummaryrefslogtreecommitdiff
path: root/test/common/str.h
diff options
context:
space:
mode:
authorMax Horn2008-07-20 16:42:56 +0000
committerMax Horn2008-07-20 16:42:56 +0000
commitc625a6a647ec176f9b411872a871ea6488e95643 (patch)
tree0e18a711da2194cc16b0f70a3dd700b74f659a87 /test/common/str.h
parent22ab05aa8a8260f6b0863d951025f9c233fd777d (diff)
downloadscummvm-rg350-c625a6a647ec176f9b411872a871ea6488e95643.tar.gz
scummvm-rg350-c625a6a647ec176f9b411872a871ea6488e95643.tar.bz2
scummvm-rg350-c625a6a647ec176f9b411872a871ea6488e95643.zip
Fixed potential issue in Common::String when asserting a substring of a string X back to X (memcpy -> memmove); also added some other sanity checks, and merged some duplicate code into a new method String::initWithCStr
svn-id: r33137
Diffstat (limited to 'test/common/str.h')
-rw-r--r--test/common/str.h53
1 files changed, 25 insertions, 28 deletions
diff --git a/test/common/str.h b/test/common/str.h
index dcba554b5a..76574ea70f 100644
--- a/test/common/str.h
+++ b/test/common/str.h
@@ -5,16 +5,25 @@
class StringTestSuite : public CxxTest::TestSuite
{
public:
- void test_empty_clear( void )
- {
+ void test_constructors(void) {
+ Common::String str("test-string");
+ TS_ASSERT( str == "test-string" );
+ str = Common::String(str.c_str()+5, 3);
+ TS_ASSERT( str == "str" );
+ str = "test-string";
+ TS_ASSERT( str == "test-string" );
+ str = Common::String(str.c_str()+5, str.c_str()+8);
+ TS_ASSERT( str == "str" );
+ }
+
+ void test_empty_clear(void) {
Common::String str("test");
TS_ASSERT( !str.empty() );
str.clear();
TS_ASSERT( str.empty() );
}
- void test_lastChar( void )
- {
+ void test_lastChar(void) {
Common::String str;
TS_ASSERT_EQUALS( str.lastChar(), '\0' );
str = "test";
@@ -23,8 +32,7 @@ class StringTestSuite : public CxxTest::TestSuite
TS_ASSERT_EQUALS( str2.lastChar(), 'r' );
}
- void test_concat1( void )
- {
+ void test_concat1(void) {
Common::String str("foo");
Common::String str2("bar");
str += str2;
@@ -32,22 +40,19 @@ class StringTestSuite : public CxxTest::TestSuite
TS_ASSERT_EQUALS( str2, "bar" );
}
- void test_concat2( void )
- {
+ void test_concat2(void) {
Common::String str("foo");
str += "bar";
TS_ASSERT_EQUALS( str, "foobar" );
}
- void test_concat3( void )
- {
+ void test_concat3(void) {
Common::String str("foo");
str += 'X';
TS_ASSERT_EQUALS( str, "fooX" );
}
- void test_refCount( void )
- {
+ void test_refCount(void) {
Common::String foo1("foo");
Common::String foo2("foo");
Common::String foo3(foo2);
@@ -57,8 +62,7 @@ class StringTestSuite : public CxxTest::TestSuite
TS_ASSERT_EQUALS( foo3, "foo""X" );
}
- void test_refCount2( void )
- {
+ void test_refCount2(void) {
Common::String foo1("fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd");
Common::String foo2("fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd");
Common::String foo3(foo2);
@@ -68,8 +72,7 @@ class StringTestSuite : public CxxTest::TestSuite
TS_ASSERT_EQUALS( foo3, "fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd""X" );
}
- void test_refCount3( void )
- {
+ void test_refCount3(void) {
Common::String foo1("0123456789abcdefghijk");
Common::String foo2("0123456789abcdefghijk");
Common::String foo3(foo2);
@@ -79,8 +82,7 @@ class StringTestSuite : public CxxTest::TestSuite
TS_ASSERT_EQUALS( foo3, "0123456789abcdefghijk""0123456789abcdefghijk" );
}
- void test_refCount4( void )
- {
+ void test_refCount4(void) {
Common::String foo1("fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd");
Common::String foo2("fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd");
Common::String foo3(foo2);
@@ -90,8 +92,7 @@ class StringTestSuite : public CxxTest::TestSuite
TS_ASSERT_EQUALS( foo3, "fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd""fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd" );
}
- void test_hasPrefix( void )
- {
+ void test_hasPrefix(void) {
Common::String str("this/is/a/test, haha");
TS_ASSERT_EQUALS( str.hasPrefix(""), true );
TS_ASSERT_EQUALS( str.hasPrefix("this"), true );
@@ -99,8 +100,7 @@ class StringTestSuite : public CxxTest::TestSuite
TS_ASSERT_EQUALS( str.hasPrefix("foo"), false );
}
- void test_hasSuffix( void )
- {
+ void test_hasSuffix(void) {
Common::String str("this/is/a/test, haha");
TS_ASSERT_EQUALS( str.hasSuffix(""), true );
TS_ASSERT_EQUALS( str.hasSuffix("haha"), true );
@@ -108,8 +108,7 @@ class StringTestSuite : public CxxTest::TestSuite
TS_ASSERT_EQUALS( str.hasSuffix("hahah"), false );
}
- void test_contains( void )
- {
+ void test_contains(void) {
Common::String str("this/is/a/test, haha");
TS_ASSERT_EQUALS( str.contains(""), true );
TS_ASSERT_EQUALS( str.contains("haha"), true );
@@ -117,15 +116,13 @@ class StringTestSuite : public CxxTest::TestSuite
TS_ASSERT_EQUALS( str.contains("test"), true );
}
- void test_toLowercase( void )
- {
+ void test_toLowercase(void) {
Common::String str("Test it, NOW! 42");
str.toLowercase();
TS_ASSERT_EQUALS( str, "test it, now! 42" );
}
- void test_toUppercase( void )
- {
+ void test_toUppercase(void) {
Common::String str("Test it, NOW! 42");
str.toUppercase();
TS_ASSERT_EQUALS( str, "TEST IT, NOW! 42" );