From bfa38b51663d59cfaec7aa469565c09a4ec05275 Mon Sep 17 00:00:00 2001 From: Vinzenz Feenstra Date: Wed, 26 Feb 2014 15:47:22 +0100 Subject: [PATCH 1/2] Fix string version of begins_with Signed-off-by: Vinzenz Feenstra --- core/ustring.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/ustring.cpp b/core/ustring.cpp index b0f06c6ab67..2384ce5bd67 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -2491,19 +2491,21 @@ bool String::begins_with(const String& p_string) const { const CharType *src=&p_string[0]; const CharType *str=&operator[](0); - for (int i=0;i Date: Wed, 26 Feb 2014 16:18:05 +0100 Subject: [PATCH 2/2] Adding unit tests for begins_with Signed-off-by: Vinzenz Feenstra --- bin/tests/test_string.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/bin/tests/test_string.cpp b/bin/tests/test_string.cpp index 78fb9a9ddbb..66238b066de 100644 --- a/bin/tests/test_string.cpp +++ b/bin/tests/test_string.cpp @@ -479,6 +479,36 @@ bool test_26() { return captures.size(); }; +struct test_27_data { + char const * data; + char const * begin; + bool expected; +}; + +bool test_27() { + + OS::get_singleton()->print("\n\nTest 26: begins_with\n"); + test_27_data tc[] = { + {"res://foobar", "res://", true}, + {"res", "res://", false}, + {"abc", "abc", true} + }; + size_t count = sizeof(tc) / sizeof(tc[0]); + bool state = true; + for (size_t i = 0;state && i < count; ++i) { + String s = tc[i].data; + state = s.begins_with(tc[i].begin) == tc[i].expected; + if (state) { + String sb = tc[i].begin; + state = s.begins_with(sb) == tc[i].expected; + } + if (!state) { + OS::get_singleton()->print("\n\t Failure on:\n\t\tstring: ", tc[i].data, "\n\t\tbegin: ", tc[i].begin, "\n\t\texpected: ", tc[i].expected ? "true" : "false", "\n"); + } + }; + return state; +}; + typedef bool (*TestFunc)(void); TestFunc test_funcs[] = { @@ -509,6 +539,7 @@ TestFunc test_funcs[] = { test_24, test_25, test_26, + test_27, 0 };