@Test
  public void testIgnoredPatterns() {
    IgnoredNames instance = new IgnoredNames();

    List<String> names = instance.getItems();
    assertNotNull(names);

    /* self-test */
    for (String name : names) {
      assertTrue(instance.ignore(name));
    }

    /* Make sure common paths are not ignored by default. */
    assertFalse(instance.ignore("usr/src/foo/bin"));
    assertFalse(instance.ignore("usr/src/foo/bin/bar.ksh"));
    assertFalse(instance.ignore("usr/src/bar/obj"));
    assertFalse(instance.ignore("usr/src/bar/obj/foo.ksh"));
    assertFalse(instance.ignore("usr/src/foo/bar/usr.lib/main.c"));
    assertFalse(instance.ignore("usr/src/foo/bar/usr.lib"));

    /* cumulative test */
    names = new ArrayList<String>();
    names.add("*.o");

    instance.setItems(names);
    names = instance.getItems();
    assertEquals(1, names.size());

    assertTrue(instance.ignore("foo.o"));
    assertFalse(instance.ignore("foo"));
    assertTrue(instance.ignore(".o"));
    assertFalse(instance.ignore("foo.oo"));

    instance.add("Makefile");
    names = instance.getItems();
    assertEquals(2, names.size());
    assertTrue(instance.ignore(new File("Makefile")));
    assertFalse(instance.ignore("main.c"));

    instance.add("o*o?.a?c*");
    assertTrue(instance.ignore("opengrok.abc"));
    assertTrue(instance.ignore("opengrok.abcd"));
    assertFalse(instance.ignore("opengrok.ac"));
    assertFalse(instance.ignore("grok.abcd"));

    instance.clear();
    names = instance.getItems();
    assertEquals(0, names.size());
  }