/* * Copyright (c) 2008, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions.
*/
/* @test * @bug 4313887 6866397 8073445 8290047 * @summary Unit test for java.nio.file.PathMatcher
*/
// match zero or more characters
assertMatch("foo.html", "f*");
assertMatch("foo.html", "*.html");
assertMatch("foo.html", "foo.html*");
assertMatch("foo.html", "*foo.html");
assertMatch("foo.html", "*foo.html*");
assertNotMatch("foo.html", "*.htm");
assertNotMatch("foo.html", "f.*");
// match one character
assertMatch("foo.html", "?oo.html");
assertMatch("foo.html", "??o.html");
assertMatch("foo.html", "???.html");
assertMatch("foo.html", "???.htm?");
assertNotMatch("foo.html", "foo.???");
// group of subpatterns
assertMatch("foo.html", "foo{.html,.class}");
assertMatch("foo.html", "foo.{class,html}");
assertNotMatch("foo.html", "foo{.htm,.class}");
// groups of subpattern with bracket expressions
assertMatch("foo.html", "[f]oo.{[h]tml,class}");
assertMatch("foo.html", "foo.{[a-z]tml,class}");
assertMatch("foo.html", "foo.{[!a-e]tml,.class}");
// assume special characters are allowed in file names
assertMatch("{foo}.html", "\\{foo*");
assertMatch("{foo}.html", "*\\}.html");
assertMatch("[foo].html", "\\[foo*");
assertMatch("[foo].html", "*\\].html");
// errors
assertBadPattern("foo.html", "*[a--z]"); // bad range
assertBadPattern("foo.html", "*[a--]"); // bad range
assertBadPattern("foo.html", "*[a-z"); // missing ]
assertBadPattern("foo.html", "*{class,java"); // missing }
assertBadPattern("foo.html", "*.{class,{.java}}"); // nested group
assertBadPattern("foo.html", "*.html\\"); // nothing to escape try {
FileSystems.getDefault().getPathMatcher(":glob");
System.err.println("No IllegalArgumentException for \":glob\"");
failures++;
} catch (IllegalArgumentException iae) {
System.out.println("IllegalArgumentException for \":glob\" OKAY");
}
// some special characters not allowed on Windows
assertMatch("myfile?", "myfile\\?");
assertMatch("one\\two", "one\\\\two");
assertMatch("one*two", "one\\*two");
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.