diff --git a/src/unittest/test_utilities.cpp b/src/unittest/test_utilities.cpp
index 07108706..6a731c66 100644
--- a/src/unittest/test_utilities.cpp
+++ b/src/unittest/test_utilities.cpp
@@ -37,11 +37,13 @@ public:
 	void testUrlEncode();
 	void testUrlDecode();
 	void testPadString();
+	void testStartsWith();
 	void testStrEqual();
 	void testStringTrim();
 	void testStrToIntConversion();
 	void testStringReplace();
 	void testStringAllowed();
+	void testUTF8();
 	void testWrapRows();
 	void testIsNumber();
 	void testIsPowerOfTwo();
@@ -60,11 +62,13 @@ void TestUtilities::runTests(IGameDef *gamedef)
 	TEST(testUrlEncode);
 	TEST(testUrlDecode);
 	TEST(testPadString);
+	TEST(testStartsWith);
 	TEST(testStrEqual);
 	TEST(testStringTrim);
 	TEST(testStrToIntConversion);
 	TEST(testStringReplace);
 	TEST(testStringAllowed);
+	TEST(testUTF8);
 	TEST(testWrapRows);
 	TEST(testIsNumber);
 	TEST(testIsPowerOfTwo);
@@ -123,6 +127,8 @@ void TestUtilities::testLowercase()
 
 void TestUtilities::testTrim()
 {
+	UASSERT(trim("") == "");
+	UASSERT(trim("dirt_with_grass") == "dirt_with_grass");
 	UASSERT(trim("\n \t\r  Foo bAR  \r\n\t\t  ") == "Foo bAR");
 	UASSERT(trim("\n \t\r    \r\n\t\t  ") == "");
 }
@@ -169,6 +175,19 @@ void TestUtilities::testPadString()
 	UASSERT(padStringRight("hello", 8) == "hello   ");
 }
 
+void TestUtilities::testStartsWith()
+{
+	UASSERT(str_starts_with(std::string(), std::string()) == true);
+	UASSERT(str_starts_with(std::string("the sharp pickaxe"),
+		std::string()) == true);
+	UASSERT(str_starts_with(std::string("the sharp pickaxe"),
+		std::string("the")) == true);
+	UASSERT(str_starts_with(std::string("the sharp pickaxe"),
+		std::string("The")) == false);
+	UASSERT(str_starts_with(std::string("the sharp pickaxe"),
+		std::string("The"), true) == true);
+	UASSERT(str_starts_with(std::string("T"), std::string("The")) == false);
+}
 
 void TestUtilities::testStrEqual()
 {
@@ -213,6 +232,12 @@ void TestUtilities::testStringAllowed()
 	UASSERT(string_allowed_blacklist("hello123", "123") == false);
 }
 
+void TestUtilities::testUTF8()
+{
+	UASSERT(wide_to_utf8(utf8_to_wide("")) == "");
+	UASSERT(wide_to_utf8(utf8_to_wide("the shovel dug a crumbly node!"))
+		== "the shovel dug a crumbly node!");
+}
 
 void TestUtilities::testWrapRows()
 {