From 229debc2b7713d16869225fa09ddab3f7db1aad9 Mon Sep 17 00:00:00 2001 From: Ross Boucher Date: Mon, 9 Nov 2009 13:11:04 +0100 Subject: [PATCH] Fixes a bug in testHasSuffix, adds test cases for hasSuffix and hasPrefix. --- Foundation/CPString.j | 2 +- Tests/Foundation/CPStringTest.j | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Foundation/CPString.j b/Foundation/CPString.j index 0639bb8b1..7ee5d08b9 100644 --- a/Foundation/CPString.j +++ b/Foundation/CPString.j @@ -510,7 +510,7 @@ var CPStringRegexSpecialCharacters = [ */ - (BOOL)hasSuffix:(CPString)aString { - return aString && aString != "" && lastIndexOf(aString) == (length - aString.length); + return aString && aString != "" && length >= aString.length && lastIndexOf(aString) == (length - aString.length); } /*! diff --git a/Tests/Foundation/CPStringTest.j b/Tests/Foundation/CPStringTest.j index 5470b58e4..cc7455f8f 100644 --- a/Tests/Foundation/CPStringTest.j +++ b/Tests/Foundation/CPStringTest.j @@ -233,4 +233,28 @@ [self assert:testStrings[i][1] equals:[testStrings[i][0] lastPathComponent]]; } +- (void)testHasPrefix +{ + [self assertTrue: ["abc" hasPrefix:"a"]]; + [self assertTrue: ["abc" hasPrefix:"ab"]]; + [self assertTrue: ["abc" hasPrefix:"abc"]]; + [self assertFalse:["abc" hasPrefix:"abcd"]]; + [self assertFalse:["abc" hasPrefix:"dbc"]]; + [self assertFalse:["abc" hasPrefix:"bc"]]; + [self assertFalse:["abc" hasPrefix:"c"]]; + [self assertFalse:["abc" hasPrefix:""]]; +} + +- (void)testHasSuffix +{ + [self assertTrue: ["abc" hasSuffix:"c"]]; + [self assertTrue: ["abc" hasSuffix:"bc"]]; + [self assertTrue: ["abc" hasSuffix:"abc"]]; + [self assertFalse:["abc" hasSuffix:"abcd"]]; + [self assertFalse:["abc" hasSuffix:"ab"]]; + [self assertFalse:["abc" hasSuffix:"b"]]; + [self assertFalse:["abc" hasSuffix:"cat"]]; + [self assertFalse:["abc" hasSuffix:""]]; +} + @end