Add SkString.contains()
Review URL: https://codereview.appspot.com/6130046

git-svn-id: http://skia.googlecode.com/svn/trunk@3781 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/core/SkString.h b/include/core/SkString.h
index 3fa367b..3dd89a5 100644
--- a/include/core/SkString.h
+++ b/include/core/SkString.h
@@ -15,9 +15,18 @@
 /*  Some helper functions for C strings
 */
 
-bool SkStrStartsWith(const char string[], const char prefix[]);
+static bool SkStrStartsWith(const char string[], const char prefix[]) {
+    SkASSERT(string);
+    SkASSERT(prefix);
+    return !strncmp(string, prefix, strlen(prefix));
+}
 bool SkStrEndsWith(const char string[], const char suffix[]);
 int SkStrStartsWithOneOf(const char string[], const char prefixes[]);
+static bool SkStrContains(const char string[], const char substring[]) {
+    SkASSERT(string);
+    SkASSERT(substring);
+    return (NULL != strstr(string, substring));
+}
 
 #define SkStrAppendS32_MaxSize  11
 char*   SkStrAppendS32(char buffer[], int32_t);
@@ -81,6 +90,9 @@
     bool endsWith(const char suffix[]) const {
         return SkStrEndsWith(fRec->data(), suffix);
     }
+    bool contains(const char substring[]) const {
+        return SkStrContains(fRec->data(), substring);
+    }
 
     friend bool operator==(const SkString& a, const SkString& b) {
         return a.equals(b);
diff --git a/src/core/SkString.cpp b/src/core/SkString.cpp
index 4658ff8..0e0318b 100644
--- a/src/core/SkString.cpp
+++ b/src/core/SkString.cpp
@@ -36,12 +36,6 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-bool SkStrStartsWith(const char string[], const char prefix[]) {
-    SkASSERT(string);
-    SkASSERT(prefix);
-    return !strncmp(string, prefix, strlen(prefix));
-}
-
 bool SkStrEndsWith(const char string[], const char suffix[]) {
     SkASSERT(string);
     SkASSERT(suffix);
diff --git a/tests/StringTest.cpp b/tests/StringTest.cpp
index 52a038d..ebf7006 100644
--- a/tests/StringTest.cpp
+++ b/tests/StringTest.cpp
@@ -56,6 +56,19 @@
     REPORTER_ASSERT(reporter, a.equals("hello"));
     REPORTER_ASSERT(reporter, !a.equals("help"));
 
+    REPORTER_ASSERT(reporter,  a.startsWith("hell"));
+    REPORTER_ASSERT(reporter, !a.startsWith( "ell"));
+    REPORTER_ASSERT(reporter,  a.startsWith(""));
+    REPORTER_ASSERT(reporter,  a.endsWith("llo"));
+    REPORTER_ASSERT(reporter, !a.endsWith("ll" ));
+    REPORTER_ASSERT(reporter,  a.endsWith(""));
+    REPORTER_ASSERT(reporter,  a.contains("he"));
+    REPORTER_ASSERT(reporter,  a.contains("ll"));
+    REPORTER_ASSERT(reporter,  a.contains("lo"));
+    REPORTER_ASSERT(reporter,  a.contains("hello"));
+    REPORTER_ASSERT(reporter, !a.contains("hellohello"));
+    REPORTER_ASSERT(reporter,  a.contains(""));
+    
     SkString    e(a);
     SkString    f("hello");
     SkString    g("helloz", 5);