2 Feature: Updates of linked places
 
   3     Tests that linked places are correctly added and deleted.
 
   5     Scenario: Linking is kept when boundary is updated
 
  11             | osm | class | type | name |
 
  12             | N1  | place | city | foo  |
 
  14             | osm | class    | type           | name | admin | geometry |
 
  15             | R1  | boundary | administrative | foo  | 8     | (10,11,12,13,10) |
 
  18          | object | linked_place_id |
 
  21          | osm | class    | type           | name | name+name:de | admin | geometry |
 
  22          | R1  | boundary | administrative | foo  | Dingens      | 8     | (10,11,12,13,10) |
 
  24          | object | linked_place_id |
 
  28     Scenario: Add linked place when linking relation is renamed
 
  34             | osm | class | type | name |
 
  35             | N1  | place | city | foo  |
 
  37             | osm | class    | type           | name | admin | geometry |
 
  38             | R1  | boundary | administrative | foo  | 8     | (10,11,12,13,10) |
 
  41          | object | linked_place_id |
 
  43         When sending search query "foo"
 
  50          | osm | class    | type           | name   | admin | geometry |
 
  51          | R1  | boundary | administrative | foobar | 8     | (10,11,12,13,10) |
 
  53          | object | linked_place_id |
 
  55         When sending search query "foo"
 
  62     Scenario: Add linked place when linking relation is removed
 
  68             | osm | class | type | name |
 
  69             | N1  | place | city | foo  |
 
  71             | osm | class    | type           | name | admin | geometry |
 
  72             | R1  | boundary | administrative | foo  | 8     | (10,11,12,13,10) |
 
  74         And sending search query "foo"
 
  80         When marking for delete R1
 
  82          | object | linked_place_id |
 
  84         When sending search query "foo"
 
  91     Scenario: Remove linked place when linking relation is added
 
  97             | osm | class | type | name |
 
  98             | N1  | place | city | foo  |
 
 100         And sending search query "foo"
 
 107          | osm | class    | type           | name   | admin | geometry |
 
 108          | R1  | boundary | administrative | foo    | 8     | (10,11,12,13,10) |
 
 110          | object | linked_place_id |
 
 112         When sending search query "foo"
 
 119     Scenario: Remove linked place when linking relation is renamed
 
 125             | osm | class | type | name |
 
 126             | N1  | place | city | foo  |
 
 128          | osm | class    | type           | name   | admin | geometry |
 
 129          | R1  | boundary | administrative | foobar | 8     | (10,11,12,13,10) |
 
 131         And sending search query "foo"
 
 138          | osm | class    | type           | name   | admin | geometry |
 
 139          | R1  | boundary | administrative | foo    | 8     | (10,11,12,13,10) |
 
 141          | object | linked_place_id |
 
 143         When sending search query "foo"
 
 150     Scenario: Update linking relation when linkee name is updated
 
 156          | osm | class    | type           | name | admin | geometry |
 
 157          | R1  | boundary | administrative | rel  | 8     | (10,11,12,13,10) |
 
 159          | osm | class    | type        | name+name:de |
 
 160          | N3  | place    | city        | pnt          |
 
 166          | object | linked_place_id | name+_place_name:de |
 
 169          | object | linked_place_id | name+name:de |
 
 172          | osm | class    | type        | name+name:de |
 
 173          | N3  | place    | city        | newname      |
 
 175          | object | linked_place_id | name+name:de |
 
 176          | N3     | R1              | newname  |
 
 178          | object | linked_place_id | name+_place_name:de |
 
 181     Scenario: Update linking relation when linkee name is deleted
 
 187          | osm | class    | type           | name | admin | geometry |
 
 188          | R1  | boundary | administrative | rel  | 8     | (10,11,12,13,10) |
 
 190          | osm | class    | type           | name |
 
 191          | N3  | place    | city           | pnt  |
 
 197          | object | linked_place_id | name+_place_name | name+name |
 
 198          | R1     | -               | pnt              | rel       |
 
 200          | object | linked_place_id | name+name |
 
 202         When sending search query "pnt"
 
 207          | osm | class    | type        | name+name:de |
 
 208          | N3  | place    | city        | depnt        |
 
 210          | object | linked_place_id | name+name:de |
 
 213          | object | linked_place_id | name+_place_name:de | name+name |
 
 214          | R1     | -               | depnt               | rel       |
 
 215         When sending search query "pnt"
 
 216         Then exactly 0 results are returned
 
 218     Scenario: Updating linkee extratags keeps linker's extratags
 
 223         Given the named places
 
 224          | osm | class    | type           | extra+wikidata | admin | geometry |
 
 225          | R1  | boundary | administrative | 34             | 8     | (10,11,12,13,10) |
 
 227          | osm | class    | type           |
 
 228          | N3  | place    | city           |
 
 234          | object | extratags |
 
 235          | R1     | 'wikidata' : '34', 'linked_place' : 'city' |
 
 237          | osm | class    | type        | name    | extra+oneway |
 
 238          | N3  | place    | city        | newname | yes          |
 
 240          | object | extratags |
 
 241          | R1     | 'wikidata' : '34', 'oneway' : 'yes', 'linked_place' : 'city' |
 
 243     Scenario: Remove linked_place info when linkee is removed
 
 249             | osm | class | type | name |
 
 250             | N1  | place | city | foo  |
 
 252             | osm | class    | type           | name | admin | geometry |
 
 253             | R1  | boundary | administrative | foo  | 8     | (10,11,12,13,10) |
 
 256             | object | extratags |
 
 257             | R1     | 'linked_place' : 'city' |
 
 258         When marking for delete N1
 
 260             | object | extratags |
 
 263     Scenario: Update linked_place info when linkee type changes
 
 269             | osm | class | type | name |
 
 270             | N1  | place | city | foo  |
 
 272             | osm | class    | type           | name | admin | geometry |
 
 273             | R1  | boundary | administrative | foo  | 8     | (10,11,12,13,10) |
 
 276             | object | extratags |
 
 277             | R1     | 'linked_place' : 'city' |
 
 279             | osm | class | type | name |
 
 280             | N1  | place | town | foo  |
 
 282             | object | extratags |
 
 283             | R1     | 'linked_place' : 'town' |
 
 286     Scenario: Keep linking and ranks when place type changes
 
 292             | osm | class    | type           | name | admin | geometry    |
 
 293             | R1  | boundary | administrative | foo  | 8     | (1,2,3,4,1) |
 
 295             | osm | class | type | name | geometry |
 
 296             | N1  | place | city | foo  | 9        |
 
 299             | object | linked_place_id | rank_address |
 
 304             | osm | class | type | name | geometry |
 
 305             | N1  | place | town | foo  | 9        |
 
 307             | object | linked_place_id | rank_address |
 
 312     Scenario: Invalidate surrounding place nodes when place type changes
 
 318             | osm | class    | type           | name | admin | geometry    |
 
 319             | R1  | boundary | administrative | foo  | 8     | (1,2,3,4,1) |
 
 321             | osm | class | type | name | geometry |
 
 322             | N1  | place | town | foo  | 9        |
 
 323             | N2  | place | city | bar  | 8        |
 
 329             | object | linked_place_id | rank_address |
 
 335             | osm | class | type   | name | geometry |
 
 336             | N1  | place | suburb | foo  | 9        |
 
 338             | object | linked_place_id | rank_address |