Index: trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ChildOrParentSelectorTest.groovy
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ChildOrParentSelectorTest.groovy	(revision 8770)
+++ trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ChildOrParentSelectorTest.groovy	(revision 8774)
@@ -1,4 +1,6 @@
 // License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.gui.mappaint.mapcss;
+package org.openstreetmap.josm.gui.mappaint.mapcss
+
+import org.openstreetmap.josm.gui.mappaint.MultiCascade;
 
 import static org.junit.Assert.*
@@ -121,5 +123,5 @@
     public void matches_5() {
         def css = """
-           way <[role != "my_role"] relation {}
+           way <[role != "my_role"] relation {text: index();}
         """
         ChildOrParentSelector selector = parse(css)
@@ -139,7 +141,13 @@
         r.addMember(new RelationMember("my_role", w2))
         r.addMember(new RelationMember("another role", w3))
+        r.addMember(new RelationMember("yet another role", w3))
 
-        Environment e = new Environment(r)
+        Environment e = new Environment(r, new MultiCascade(), Environment.DEFAULT_LAYER, null)
         assert selector.matches(e)
+
+        MapCSSStyleSource source = new MapCSSStyleSource(css)
+        source.loadStyleSource()
+        source.rules[0].declaration.execute(e)
+        assert Float.valueOf(3f).equals(e.getCascade(Environment.DEFAULT_LAYER).get("text", null, Float.class))
     }
 
