Changeset 6560 in josm for trunk/test/unit/org
- Timestamp:
- 2013-12-29T12:03:21+01:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.groovy
r6554 r6560 8 8 import org.openstreetmap.josm.data.osm.Way 9 9 import org.openstreetmap.josm.gui.mappaint.Environment 10 import org.openstreetmap.josm.gui.mappaint.MultiCascade 10 11 import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.MapCSSParser 11 12 … … 22 23 } 23 24 25 protected static MapCSSParser getParser(String stringToParse) { 26 return new MapCSSParser(new StringReader(stringToParse)); 27 } 28 24 29 @Before 25 30 public void setUp() throws Exception { … … 28 33 29 34 @Test 35 public void testKothicStylesheets() throws Exception { 36 new MapCSSParser(new URL("http://kothic.googlecode.com/hg/src/styles/default.mapcss").openStream(), "UTF-8") 37 new MapCSSParser(new URL("http://kothic.googlecode.com/hg/src/styles/mapink.mapcss").openStream(), "UTF-8") 38 } 39 40 @Test 41 public void testDeclarations() { 42 getParser("{ opacity: 0.5; color: rgb(1.0, 0.0, 0.0); }").declaration() 43 getParser("{ set tag=value; }").declaration() //set a tag 44 getParser("{ set tag; }").declaration() // set a tag to 'yes' 45 getParser("{ opacity: eval(\"tag('population')/100000\"); }").declaration() 46 getParser("{ set width_in_metres=eval(\"tag('lanes')*3\"); }").declaration() 47 } 48 49 @Test 50 public void testClassCondition() throws Exception { 51 def conditions = ((Selector.GeneralSelector) getParser("way[name=X].highway:closed").selector()).conds 52 assert conditions.get(0) instanceof Condition.KeyValueCondition 53 assert conditions.get(0).applies(getEnvironment("name", "X")) 54 assert conditions.get(1) instanceof Condition.ClassCondition 55 assert conditions.get(2) instanceof Condition.PseudoClassCondition 56 } 57 58 @Test 59 public void testClassMatching() throws Exception { 60 def css = new MapCSSStyleSource("") 61 getParser("" + 62 "way[highway=footway] { set path; color: #FF6644; width: 2; }\n" + 63 "way[highway=path] { set path; color: brown; width: 2; }\n" + 64 "way[\"set\"=escape] { }\n" + 65 "way.path { text:auto; text-color: green; text-position: line; text-offset: 5; }\n" + 66 "way!.path { color: orange; }\n" 67 ).sheet(css) 68 assert css.getErrors().isEmpty() 69 def mc1 = new MultiCascade() 70 css.apply(mc1, getPrimitive("highway", "path"), 1, null, false); 71 assert "green".equals(mc1.getCascade("default").get("text-color", null, String.class)) 72 assert "brown".equals(mc1.getCascade("default").get("color", null, String.class)) 73 def mc2 = new MultiCascade() 74 css.apply(mc2, getPrimitive("highway", "residential"), 1, null, false); 75 assert "orange".equals(mc2.getCascade("default").get("color", null, String.class)) 76 assert mc2.getCascade("default").get("text-color", null, String.class) == null 77 } 78 79 @Test 30 80 public void testEqualCondition() throws Exception { 31 def condition = (Condition.KeyValueCondition) new MapCSSParser(new StringReader("[surface=paved]")).condition(Condition.Context.PRIMITIVE)81 def condition = (Condition.KeyValueCondition) getParser("[surface=paved]").condition(Condition.Context.PRIMITIVE) 32 82 assert condition instanceof Condition.KeyValueCondition 33 83 assert Condition.Op.EQ.equals(condition.op) … … 40 90 @Test 41 91 public void testNotEqualCondition() throws Exception { 42 def condition = (Condition.KeyValueCondition) new MapCSSParser(new StringReader("[surface!=paved]")).condition(Condition.Context.PRIMITIVE)92 def condition = (Condition.KeyValueCondition) getParser("[surface!=paved]").condition(Condition.Context.PRIMITIVE) 43 93 assert Condition.Op.NEQ.equals(condition.op) 44 94 assert !condition.applies(getEnvironment("surface", "paved")) … … 48 98 @Test 49 99 public void testRegexCondition() throws Exception { 50 def condition = (Condition.KeyValueCondition) new MapCSSParser(new StringReader("[surface=~/paved|unpaved/]")).condition(Condition.Context.PRIMITIVE)100 def condition = (Condition.KeyValueCondition) getParser("[surface=~/paved|unpaved/]").condition(Condition.Context.PRIMITIVE) 51 101 assert Condition.Op.REGEX.equals(condition.op) 52 102 assert condition.applies(getEnvironment("surface", "unpaved")) … … 56 106 @Test 57 107 public void testNegatedRegexCondition() throws Exception { 58 def condition = (Condition.KeyValueCondition) new MapCSSParser(new StringReader("[surface!~/paved|unpaved/]")).condition(Condition.Context.PRIMITIVE)108 def condition = (Condition.KeyValueCondition) getParser("[surface!~/paved|unpaved/]").condition(Condition.Context.PRIMITIVE) 59 109 assert Condition.Op.NREGEX.equals(condition.op) 60 110 assert !condition.applies(getEnvironment("surface", "unpaved")) … … 64 114 @Test 65 115 public void testStandardKeyCondition() throws Exception { 66 def c1 = (Condition.KeyCondition) new MapCSSParser(new StringReader("[ highway ]")).condition(Condition.Context.PRIMITIVE)116 def c1 = (Condition.KeyCondition) getParser("[ highway ]").condition(Condition.Context.PRIMITIVE) 67 117 assert c1.matchType == null 68 118 assert c1.applies(getEnvironment("highway", "unclassified")) 69 119 assert !c1.applies(getEnvironment("railway", "rail")) 70 def c2 = (Condition.KeyCondition) new MapCSSParser(new StringReader("[\"/slash/\"]")).condition(Condition.Context.PRIMITIVE)120 def c2 = (Condition.KeyCondition) getParser("[\"/slash/\"]").condition(Condition.Context.PRIMITIVE) 71 121 assert c2.matchType == null 72 122 assert c2.applies(getEnvironment("/slash/", "yes")) … … 76 126 @Test 77 127 public void testYesNoKeyCondition() throws Exception { 78 def c1 = (Condition.KeyCondition) new MapCSSParser(new StringReader("[oneway?]")).condition(Condition.Context.PRIMITIVE)79 def c2 = (Condition.KeyCondition) new MapCSSParser(new StringReader("[oneway?!]")).condition(Condition.Context.PRIMITIVE)80 def c3 = (Condition.KeyCondition) new MapCSSParser(new StringReader("[!oneway?]")).condition(Condition.Context.PRIMITIVE)81 def c4 = (Condition.KeyCondition) new MapCSSParser(new StringReader("[!oneway?!]")).condition(Condition.Context.PRIMITIVE)128 def c1 = (Condition.KeyCondition) getParser("[oneway?]").condition(Condition.Context.PRIMITIVE) 129 def c2 = (Condition.KeyCondition) getParser("[oneway?!]").condition(Condition.Context.PRIMITIVE) 130 def c3 = (Condition.KeyCondition) getParser("[!oneway?]").condition(Condition.Context.PRIMITIVE) 131 def c4 = (Condition.KeyCondition) getParser("[!oneway?!]").condition(Condition.Context.PRIMITIVE) 82 132 def yes = getEnvironment("oneway", "yes") 83 133 def no = getEnvironment("oneway", "no") … … 99 149 @Test 100 150 public void testRegexKeyCondition() throws Exception { 101 def c1 = (Condition.KeyCondition) new MapCSSParser(new StringReader("[/.*:(backward|forward)\$/]")).condition(Condition.Context.PRIMITIVE)151 def c1 = (Condition.KeyCondition) getParser("[/.*:(backward|forward)\$/]").condition(Condition.Context.PRIMITIVE) 102 152 assert Condition.KeyMatchType.REGEX.equals(c1.matchType) 103 153 assert !c1.applies(getEnvironment("lanes", "3")) … … 109 159 @Test 110 160 public void testKeyKeyCondition() throws Exception { 111 def c1 = (Condition.KeyValueCondition) new MapCSSParser(new StringReader("[foo = *bar]")).condition(Condition.Context.PRIMITIVE)161 def c1 = (Condition.KeyValueCondition) getParser("[foo = *bar]").condition(Condition.Context.PRIMITIVE) 112 162 def w1 = new Way() 113 163 w1.put("foo", "123") … … 116 166 w1.put("bar", "123") 117 167 assert c1.applies(new Environment().withPrimitive(w1)) 118 def c2 = (Condition.KeyValueCondition) new MapCSSParser(new StringReader("[foo =~ */bar/]")).condition(Condition.Context.PRIMITIVE)168 def c2 = (Condition.KeyValueCondition) getParser("[foo =~ */bar/]").condition(Condition.Context.PRIMITIVE) 119 169 def w2 = new Way(w1) 120 170 w2.put("bar", "[0-9]{3}")
Note:
See TracChangeset
for help on using the changeset viewer.