// NeL - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #ifndef UT_MISC_SSTRING #define UT_MISC_SSTRING #include struct CUTMiscSString : public Test::Suite { CUTMiscSString() { TEST_ADD(CUTMiscSString::testStrtok); // Add a line here when adding a new test METHOD } void testStrtok() { NLMISC::CSString testLine(" a=b c (a=e b=c) \t\t c(a=e b=c) toto(bimbo(foo(bar(a=b))))"); NLMISC::CSString part; part = testLine.strtok(" \t", true, false); TEST_ASSERT(part == "a=b"); part = testLine.strtok(" \t", true, false); TEST_ASSERT(part == "c"); part = testLine.strtok(" \t", true, false); TEST_ASSERT(part == "(a=e b=c)"); part = testLine.strtok(" \t", true, false); TEST_ASSERT(part == "c"); part = testLine.strtok(" \t=", true, false); TEST_ASSERT(part == "(a=e b=c)"); part = testLine.strtok(" \t=", true, false); TEST_ASSERT(part == "toto"); part = testLine.strtok(" \t=", true, false); TEST_ASSERT(part == "(bimbo(foo(bar(a=b))))"); part = part.stripBlockDelimiters(); NLMISC::CSString part2 = part.strtok(" \t=", true, false); TEST_ASSERT(part2 == "bimbo"); part2 = part.strtok(" \t=", true, false); TEST_ASSERT(part2 == "(foo(bar(a=b)))"); } }; #endif