Ticket #17995: 17995.4.patch
File 17995.4.patch, 3.2 KB (added by , 5 years ago) |
---|
-
src/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.java
494 494 } 495 495 496 496 /** 497 * Sort an array of strings 498 * @param sortables The array to sort 499 * @return The sorted list 500 * @since xxx 501 */ 502 public static List<String> sort(String... sortables) { 503 Arrays.parallelSort(sortables); 504 return Arrays.asList(sortables); 505 } 506 507 /** 508 * Sort a list of strings 509 * @param sortables The list to sort 510 * @return The sorted list 511 * @since xxx 512 */ 513 public static List<String> sort_list(List<String> sortables) { 514 Collections.sort(sortables); 515 return sortables; 516 } 517 518 /** 497 519 * Returns the role of current object in parent relation, or role of child if current object is a relation. 498 520 * @param env the environment 499 521 * @return role of current object in parent relation, or role of child if current object is a relation -
test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.java
9 9 10 10 import java.awt.Color; 11 11 import java.io.StringReader; 12 import java.util.Arrays; 12 13 import java.util.List; 13 14 14 15 import org.junit.Rule; … … 407 408 } 408 409 409 410 @Test 411 public void testSort() throws Exception { 412 assertEquals(Arrays.asList(new String[] {"alpha", "beta"}), Functions.sort("beta", "alpha")); 413 Way way1 = TestUtils.newWay("highway=residential name=Alpha alt_name=Beta ref=\"A9;A8\"", new Node(new LatLon(0.001, 0.001)), 414 new Node(new LatLon(0.002, 0.002))); 415 416 MapCSSStyleSource source = new MapCSSStyleSource("way[highway] {sorted: join_list(\",\", sort(tag(\"alt_name\"), tag(\"name\")));}"); 417 source.loadStyleSource(); 418 assertEquals(1, source.rules.size()); 419 Environment e = new Environment(way1, new MultiCascade(), Environment.DEFAULT_LAYER, null); 420 assertTrue(source.rules.get(0).selector.matches(e)); 421 source.rules.get(0).declaration.execute(e); 422 assertEquals(Functions.join(",", "Alpha", "Beta"), e.getCascade(Environment.DEFAULT_LAYER).get("sorted", null, String.class)); 423 424 source = new MapCSSStyleSource("way[ref] {sorted: join_list(\",\", sort_list(split(\";\", tag(\"ref\"))));}"); 425 source.loadStyleSource(); 426 e = new Environment(way1, new MultiCascade(), Environment.DEFAULT_LAYER, null); 427 assertTrue(source.rules.get(0).selector.matches(e)); 428 source.rules.get(0).declaration.execute(e); 429 assertEquals(Functions.join(",", "A8", "A9"), e.getCascade(Environment.DEFAULT_LAYER).get("sorted", null, String.class)); 430 431 } 432 433 @Test 410 434 public void testCountRoles() throws Exception { 411 435 DataSet ds = new DataSet(); 412 436 Way way1 = TestUtils.newWay("highway=residential name=1",