diff --git a/test/bdd/db/import/naming.feature b/test/bdd/db/import/naming.feature new file mode 100644 index 00000000..d2339376 --- /dev/null +++ b/test/bdd/db/import/naming.feature @@ -0,0 +1,39 @@ +@DB +Feature: Import and search of names + Tests all naming related import issues + + Scenario: No copying name tag if only one name + Given the places + | osm | class | type | name | geometry | + | N1 | place | locality | german | country:de | + When importing + Then placex contains + | object | calculated_country_code | name+name | + | N1 | de | german | + + Scenario: Copying name tag to default language if it does not exist + Given the places + | osm | class | type | name | name+name:fi | geometry | + | N1 | place | locality | german | finnish | country:de | + When importing + Then placex contains + | object | calculated_country_code | name | name+name:fi | name+name:de | + | N1 | de | german | finnish | german | + + Scenario: Copying default language name tag to name if it does not exist + Given the places + | osm | class | type | name+name:de | name+name:fi | geometry | + | N1 | place | locality | german | finnish | country:de | + When importing + Then placex contains + | object | calculated_country_code | name | name+name:fi | name+name:de | + | N1 | de | german | finnish | german | + + Scenario: Do not overwrite default language with name tag + Given the places + | osm | class | type | name | name+name:fi | name+name:de | geometry | + | N1 | place | locality | german | finnish | local | country:de | + When importing + Then placex contains + | object | calculated_country_code | name | name+name:fi | name+name:de | + | N1 | de | german | finnish | local | diff --git a/test/bdd/db/query/normalization.feature b/test/bdd/db/query/normalization.feature new file mode 100644 index 00000000..71c69dec --- /dev/null +++ b/test/bdd/db/query/normalization.feature @@ -0,0 +1,139 @@ +@DB +Feature: Import and search of names + Tests all naming related issues: normalisation, + abbreviations, internationalisation, etc. + + Scenario: Case-insensitivity of search + Given the places + | osm | class | type | name | + | N1 | place | locality | FooBar | + When importing + Then placex contains + | object | class | type | name+name | + | N1 | place | locality | FooBar | + When searching for "FooBar" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for "foobar" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for "fOObar" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for "FOOBAR" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + + Scenario: Multiple spaces in name + Given the places + | osm | class | type | name | + | N1 | place | locality | one two three | + When importing + When searching for "one two three" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for "one two three" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for "one two three" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for " one two three" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + + Scenario: Special characters in name + Given the places + | osm | class | type | name | + | N1 | place | locality | Jim-Knopf-Str | + | N2 | place | locality | Smith/Weston | + | N3 | place | locality | space mountain | + | N4 | place | locality | space | + | N5 | place | locality | mountain | + When importing + When searching for "Jim-Knopf-Str" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for "Jim Knopf-Str" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for "Jim Knopf Str" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for "Jim/Knopf-Str" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for "Jim-Knopfstr" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 1 | + When searching for "Smith/Weston" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 2 | + When searching for "Smith Weston" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 2 | + When searching for "Smith-Weston" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 2 | + When searching for "space mountain" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 3 | + When searching for "space-mountain" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 3 | + When searching for "space/mountain" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 3 | + When searching for "space\mountain" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 3 | + When searching for "space(mountain)" + Then results contain + | ID | osm_type | osm_id | + | 0 | N | 3 | + + Scenario: Landuse with name are found + Given the places + | osm | class | type | name | geometry | + | R1 | natural | meadow | landuse1 | (0 0, 1 0, 1 1, 0 1, 0 0) | + | R2 | landuse | industrial | landuse2 | (0 0, -1 0, -1 -1, 0 -1, 0 0) | + When importing + When searching for "landuse1" + Then results contain + | ID | osm_type | osm_id | + | 0 | R | 1 | + When searching for "landuse2" + Then results contain + | ID | osm_type | osm_id | + | 0 | R | 2 | + + @wip + Scenario: Postcode boundaries without ref + Given the places + | osm | class | type | postcode | geometry | + | R1 | boundary | postal_code | 12345 | (0 0, 1 0, 1 1, 0 1, 0 0) | + When importing + When searching for "12345" + Then results contain + | ID | osm_type | osm_id | + | 0 | R | 1 |