diff --git a/scripts/tests/e2/movement.lua b/scripts/tests/e2/movement.lua index 706ed9ad2..390af2c48 100644 --- a/scripts/tests/e2/movement.lua +++ b/scripts/tests/e2/movement.lua @@ -4,6 +4,7 @@ module("tests.e2.movement", package.seeall, lunit.testcase) function setup() eressea.free_game() + eressea.settings.set("rules.food.flags", "4") eressea.settings.set("nmr.timeout", "0") eressea.settings.set("NewbieImmunity", "0") end @@ -29,7 +30,9 @@ end process_orders() --- write_reports() + if r2~=u1.region then + write_reports() + end assert_equal(r2, u1.region) -- should pass, but fails!!! end diff --git a/src/kernel/build.test.c b/src/kernel/build.test.c index b59a09d73..65e651010 100644 --- a/src/kernel/build.test.c +++ b/src/kernel/build.test.c @@ -382,6 +382,18 @@ static void test_build_destroy_road_limit(CuTest *tc) test_cleanup(); } +static void test_build_destroy_cmd(CuTest *tc) { + unit *u; + faction *f; + + test_setup(); + u = test_create_unit(f = test_create_faction(0), test_create_region(0, 0, 0)); + u->thisorder = create_order(K_DESTROY, f->locale, NULL); + CuAssertIntEquals(tc, 138, destroy_cmd(u, u->thisorder)); + CuAssertPtrNotNull(tc, test_find_messagetype(f->msgs, "error138")); + test_cleanup(); +} + CuSuite *get_build_suite(void) { CuSuite *suite = CuSuiteNew(); @@ -396,6 +408,7 @@ CuSuite *get_build_suite(void) SUITE_ADD_TEST(suite, test_build_building_success); SUITE_ADD_TEST(suite, test_build_building_with_golem); SUITE_ADD_TEST(suite, test_build_building_no_materials); + SUITE_ADD_TEST(suite, test_build_destroy_cmd); SUITE_ADD_TEST(suite, test_build_destroy_road); SUITE_ADD_TEST(suite, test_build_destroy_road_limit); SUITE_ADD_TEST(suite, test_build_destroy_road_guard); diff --git a/src/kernel/unit.test.c b/src/kernel/unit.test.c index dc0484bf7..1af197e15 100644 --- a/src/kernel/unit.test.c +++ b/src/kernel/unit.test.c @@ -387,10 +387,25 @@ static void test_limited_skills(CuTest *tc) { test_cleanup(); } +static void test_unit_description(CuTest *tc) { + race *rc; + unit *u; + test_setup(); + rc = test_create_race("hodor"); + u = test_create_unit(test_create_faction(rc), test_create_region(0,0,0)); + CuAssertPtrEquals(tc, 0, u->display); + CuAssertStrEquals(tc, 0, u_description(u, u->faction->locale)); + u->display = _strdup("Hodor"); + CuAssertStrEquals(tc, "Hodor", u_description(u, NULL)); + CuAssertStrEquals(tc, "Hodor", u_description(u, u->faction->locale)); + test_cleanup(); +} + CuSuite *get_unit_suite(void) { CuSuite *suite = CuSuiteNew(); SUITE_ADD_TEST(suite, test_scale_number); + SUITE_ADD_TEST(suite, test_unit_description); SUITE_ADD_TEST(suite, test_unit_name); SUITE_ADD_TEST(suite, test_unit_name_from_race); SUITE_ADD_TEST(suite, test_update_monster_name); diff --git a/src/names.c b/src/names.c index e972c8d05..ca013649a 100644 --- a/src/names.c +++ b/src/names.c @@ -49,7 +49,7 @@ static const char *describe_race(const race * rc, const struct locale *lang) { char zText[32]; sprintf(zText, "describe_%s", rc->_name); - return LOC(lang, zText); + return locale_getstring(lang, zText); } static void count_particles(const char *monster, int *num_prefix, int *num_name, int *num_postfix) diff --git a/src/util/umlaut.test.c b/src/util/umlaut.test.c index f9f8f5d15..577b7059a 100644 --- a/src/util/umlaut.test.c +++ b/src/util/umlaut.test.c @@ -26,9 +26,44 @@ static void test_transliterate(CuTest * tc) CuAssertStrEquals(tc, "h?", buffer); } +static void test_transliterations(CuTest *tc) { + const char * umlauts = "\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x9f"; /* auml ouml uuml szlig nul */ + void * tokens = 0; + variant id; + int result; + + id.i = 3; + addtoken(&tokens, umlauts, id); + /* transliteration is the real magic */ + result = findtoken(tokens, "AEoeUEss", &id); + CuAssertIntEquals(tc, E_TOK_SUCCESS, result); + CuAssertIntEquals(tc, 3, id.i); + + result = findtoken(tokens, umlauts, &id); + CuAssertIntEquals(tc, E_TOK_SUCCESS, result); + CuAssertIntEquals(tc, 3, id.i); + + freetokens(tokens); +} + +static void test_directions(CuTest * tc) +{ + void * tokens = 0; + variant id; + int result; + + id.i = 2; + addtoken(&tokens, "nw", id); + addtoken(&tokens, "northwest", id); + + result = findtoken(tokens, "northw", &id); + CuAssertIntEquals(tc, E_TOK_SUCCESS, result); + CuAssertIntEquals(tc, 2, id.i); + freetokens(tokens); +} + static void test_umlaut(CuTest * tc) { - const char * umlauts = "\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x9f"; /* auml ouml uuml szlig nul */ void * tokens = 0; variant id; int result; @@ -41,8 +76,7 @@ static void test_umlaut(CuTest * tc) addtoken(&tokens, "herpderp", id); id.i = 2; addtoken(&tokens, "derp", id); - id.i = 3; - addtoken(&tokens, umlauts, id); + addtoken(&tokens, "d", id); /* we can find substrings if they are significant */ result = findtoken(tokens, "herp", &id); @@ -57,15 +91,6 @@ static void test_umlaut(CuTest * tc) CuAssertIntEquals(tc, E_TOK_SUCCESS, findtoken(tokens, "DERP", &id)); CuAssertIntEquals(tc, 2, id.i); - result = findtoken(tokens, umlauts, &id); - CuAssertIntEquals(tc, E_TOK_SUCCESS, result); - CuAssertIntEquals(tc, 3, id.i); - - /* transliteration is the real magic */ - result = findtoken(tokens, "AEoeUEss", &id); - CuAssertIntEquals(tc, E_TOK_SUCCESS, result); - CuAssertIntEquals(tc, 3, id.i); - result = findtoken(tokens, "herp-a-derp", &id); CuAssertIntEquals(tc, E_TOK_NOMATCH, result); @@ -76,6 +101,8 @@ CuSuite *get_umlaut_suite(void) { CuSuite *suite = CuSuiteNew(); SUITE_ADD_TEST(suite, test_umlaut); + SUITE_ADD_TEST(suite, test_directions); SUITE_ADD_TEST(suite, test_transliterate); + SUITE_ADD_TEST(suite, test_transliterations); return suite; }