Index: trunk/test/unit/org/openstreetmap/josm/data/osm/FilterTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/osm/FilterTest.java	(revision 3356)
+++ trunk/test/unit/org/openstreetmap/josm/data/osm/FilterTest.java	(revision 3358)
@@ -18,4 +18,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.search.SearchAction.SearchMode;
 import org.openstreetmap.josm.actions.search.SearchCompiler.ParseError;
 import org.openstreetmap.josm.data.projection.Mercator;
@@ -62,5 +63,5 @@
     @Test
     public void filter_test() throws ParseError, IllegalDataException, FileNotFoundException {
-        for (int i = 1; i<=3; ++i) {
+        for (int i : new int [] {1,2,3, 11,12,13,14}) {
             DataSet ds = OsmReader.parseDataSet(new FileInputStream("data_nodist/filterTests.osm"), NullProgressMonitor.INSTANCE);
 
@@ -89,4 +90,54 @@
                     f2.text = "highway";
                     filters.addAll(Arrays.asList(new Filter[] {f1, f2}));
+                    break;
+                }
+                case 11: {
+                    Filter f1 = new Filter();
+                    f1.text = "highway";
+                    f1.inverted = true;
+                    f1.hiding = true;
+                    filters.add(f1);
+                    break;
+                }
+                case 12: {
+                    Filter f1 = new Filter();
+                    f1.text = "highway";
+                    f1.inverted = true;
+                    f1.hiding = true;
+                    Filter f2 = new Filter();
+                    f2.text = "water";
+                    f2.mode = SearchMode.remove;
+                    filters.addAll(Arrays.asList(new Filter[] {f1, f2}));
+                    break;
+                }
+                case 13: {
+                    Filter f1 = new Filter();
+                    f1.text = "highway";
+                    f1.inverted = true;
+                    f1.hiding = true;
+                    Filter f2 = new Filter();
+                    f2.text = "water";
+                    f2.mode = SearchMode.remove;
+                    Filter f3 = new Filter();
+                    f3.text = "natural";
+                    filters.addAll(Arrays.asList(new Filter[] {f1, f2, f3}));
+                    break;
+                }
+                case 14: {
+                    /* show all highways and all water features, but not lakes
+                     * except those that have a name */
+                    Filter f1 = new Filter();
+                    f1.text = "highway";
+                    f1.inverted = true;
+                    f1.hiding = true;
+                    Filter f2 = new Filter();
+                    f2.text = "water";
+                    f2.mode = SearchMode.remove;
+                    Filter f3 = new Filter();
+                    f3.text = "natural";
+                    Filter f4 = new Filter();
+                    f4.text = "name";
+                    f4.mode = SearchMode.remove;
+                    filters.addAll(Arrays.asList(new Filter[] {f1, f2, f3, f4}));
                     break;
                 }
