more tests (need more meat in there)
git-svn-id: http://skia.googlecode.com/svn/trunk@97 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/StringTest.cpp b/tests/StringTest.cpp
new file mode 100644
index 0000000..344c752
--- /dev/null
+++ b/tests/StringTest.cpp
@@ -0,0 +1,54 @@
+#include "Test.h"
+#include "SkString.h"
+
+static void TestString(skiatest::Reporter* reporter) {
+ SkString a;
+ SkString b((size_t)0);
+ SkString c("");
+ SkString d(NULL, 0);
+
+ REPORTER_ASSERT(reporter, a.isEmpty());
+ REPORTER_ASSERT(reporter, a == b && a == c && a == d);
+
+ a.set("hello");
+ b.set("hellox", 5);
+ c.set(a);
+ d.resize(5);
+ memcpy(d.writable_str(), "helloz", 5);
+
+ REPORTER_ASSERT(reporter, !a.isEmpty());
+ REPORTER_ASSERT(reporter, a.size() == 5);
+ REPORTER_ASSERT(reporter, a == b && a == c && a == d);
+ REPORTER_ASSERT(reporter, a.equals("hello", 5));
+ REPORTER_ASSERT(reporter, a.equals("hello"));
+ REPORTER_ASSERT(reporter, !a.equals("help"));
+
+ SkString e(a);
+ SkString f("hello");
+ SkString g("helloz", 5);
+
+ REPORTER_ASSERT(reporter, a == e && a == f && a == g);
+
+ b.set("world");
+ c = b;
+ REPORTER_ASSERT(reporter, a != b && a != c && b == c);
+
+ a.append(" world");
+ e.append("worldz", 5);
+ e.insert(5, " ");
+ f.set("world");
+ f.prepend("hello ");
+ REPORTER_ASSERT(reporter, a.equals("hello world") && a == e && a == f);
+
+ a.reset();
+ b.resize(0);
+ REPORTER_ASSERT(reporter, a.isEmpty() && b.isEmpty() && a == b);
+
+ a.set("a");
+ a.set("ab");
+ a.set("abc");
+ a.set("abcd");
+}
+
+#include "TestClassDef.h"
+DEFINE_TESTCLASS("String", StringTestClass, TestString)