Merge pull request #552 from ennorehling/issue-551-description

issue #551 and some other tests
This commit is contained in:
Enno Rehling 2016-09-02 15:43:08 +01:00 committed by GitHub
commit b5298f60bf
5 changed files with 72 additions and 14 deletions

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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)

View File

@ -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;
}