/* * Copyright (C) 2012 eXo Platform SAS. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.exoplatform.services.jcr.impl.quota; import junit.framework.TestCase; /** * @author <a href="abazko@exoplatform.com">Anatoliy Bazko</a> * @version $Id: TestNodePathPattern.java 34360 2009-07-22 23:58:59Z tolusha $ */ public class TestPathPatternUtils extends TestCase { /** * Pattern testing. */ public void testPattern() throws Exception { assertTrue(PathPatternUtils.acceptDescendant("/", "/")); assertTrue(PathPatternUtils.acceptDescendant("/", "/a")); assertTrue(PathPatternUtils.acceptDescendant("/", "/a/c")); assertTrue(PathPatternUtils.acceptName("/", "/")); assertFalse(PathPatternUtils.acceptName("/", "/a")); assertFalse(PathPatternUtils.acceptName("/", "/a/c")); assertTrue(PathPatternUtils.acceptDescendant("/a", "/a")); assertTrue(PathPatternUtils.acceptDescendant("/a", "/a/c")); assertTrue(PathPatternUtils.acceptDescendant("/a", "/a/c/")); assertFalse(PathPatternUtils.acceptDescendant("/a", "/b")); assertFalse(PathPatternUtils.acceptDescendant("/a", "/b/c")); assertFalse(PathPatternUtils.acceptDescendant("/a", "/")); assertTrue(PathPatternUtils.acceptName("/a", "/a")); assertTrue(PathPatternUtils.acceptName("/a", "/a/")); assertFalse(PathPatternUtils.acceptName("/a", "/a/c/")); assertTrue(PathPatternUtils.acceptDescendant("/a/b", "/a/b")); assertTrue(PathPatternUtils.acceptDescendant("/a/b", "/a/b/c")); assertTrue(PathPatternUtils.acceptDescendant("/a/b", "/a/b/c/")); assertFalse(PathPatternUtils.acceptDescendant("/a/b", "/a/c")); assertFalse(PathPatternUtils.acceptDescendant("/a/b", "/a")); assertFalse(PathPatternUtils.acceptDescendant("/a/b", "/")); assertTrue(PathPatternUtils.acceptName("/a/b", "/a/b")); assertFalse(PathPatternUtils.acceptName("/a/b", "/a/b/c")); assertFalse(PathPatternUtils.acceptName("/a/b", "/a/b/c/")); assertTrue(PathPatternUtils.acceptDescendant("/*", "/aaa")); assertTrue(PathPatternUtils.acceptDescendant("/*", "/aaa/bbb")); assertFalse(PathPatternUtils.acceptDescendant("/*", "/")); assertTrue(PathPatternUtils.acceptName("/*", "/aaa")); assertFalse(PathPatternUtils.acceptName("/*", "/aaa/bbb")); assertTrue(PathPatternUtils.acceptDescendant("/a/*", "/a/bbb")); assertTrue(PathPatternUtils.acceptDescendant("/a/*", "/a/bbb/c")); assertFalse(PathPatternUtils.acceptDescendant("/a/*", "/c")); assertFalse(PathPatternUtils.acceptDescendant("/a/*", "/")); assertTrue(PathPatternUtils.acceptName("/a/*", "/a/bbb")); assertFalse(PathPatternUtils.acceptName("/a/*", "/a/bbb/c")); assertTrue(PathPatternUtils.acceptDescendant("/a/*/b/*", "/a/ccc/b/ddd")); assertTrue(PathPatternUtils.acceptDescendant("/a/*/b/*", "/a/ccc/b/ddd/ggg")); assertFalse(PathPatternUtils.acceptDescendant("/a/*/b/*", "/d/ccc/b/ddd")); assertFalse(PathPatternUtils.acceptDescendant("/a/*/b/*", "/a/ccc/e/ddd")); assertFalse(PathPatternUtils.acceptDescendant("/a/*/b/*", "/a/ccc/b")); assertFalse(PathPatternUtils.acceptDescendant("/a/*/b/*", "/a/ccc")); assertFalse(PathPatternUtils.acceptDescendant("/a/*/b/*", "/a")); assertFalse(PathPatternUtils.acceptDescendant("/a/*/b/*", "/")); assertTrue(PathPatternUtils.acceptName("/a/*/b/*", "/a/ccc/b/ddd")); assertFalse(PathPatternUtils.acceptName("/a/*/b/*", "/a/ccc/b/ddd/ggg")); assertTrue(PathPatternUtils.acceptDescendant("/%", "/a/c")); assertTrue(PathPatternUtils.acceptDescendant("/%", "/a")); assertFalse(PathPatternUtils.acceptDescendant("/%", "/aa")); assertFalse(PathPatternUtils.acceptDescendant("/%", "/aa/c")); assertFalse(PathPatternUtils.acceptDescendant("/%", "/")); assertTrue(PathPatternUtils.acceptName("/%", "/a")); assertFalse(PathPatternUtils.acceptName("/%", "/a/c")); assertTrue(PathPatternUtils.acceptDescendant("/%%%", "/aaa")); assertTrue(PathPatternUtils.acceptDescendant("/%%%", "/aaa/bbb")); assertFalse(PathPatternUtils.acceptDescendant("/%%%", "/aaaa")); assertFalse(PathPatternUtils.acceptDescendant("/%%%", "/a")); assertFalse(PathPatternUtils.acceptDescendant("/%%%", "/a/b/c")); assertFalse(PathPatternUtils.acceptDescendant("/%%%", "/")); assertTrue(PathPatternUtils.acceptName("/%%%", "/aaa")); assertFalse(PathPatternUtils.acceptName("/%%%", "/aaa/b")); assertTrue(PathPatternUtils.acceptDescendant("/a/%%", "/a/bb")); assertTrue(PathPatternUtils.acceptDescendant("/a/%%", "/a/bb/c")); assertFalse(PathPatternUtils.acceptDescendant("/a/%%", "/a/bbb")); assertFalse(PathPatternUtils.acceptDescendant("/a/%%", "/a")); assertFalse(PathPatternUtils.acceptDescendant("/a/%%", "/")); assertTrue(PathPatternUtils.acceptName("/a/%%", "/a/bb")); assertFalse(PathPatternUtils.acceptName("/a/%%", "/a/bb/c")); assertTrue(PathPatternUtils.acceptDescendant("/a/%%/b/*", "/a/cb/b/eee")); assertTrue(PathPatternUtils.acceptDescendant("/a/%%/b/*", "/a/dc/b/eee/ggg")); assertFalse(PathPatternUtils.acceptDescendant("/a/%%/b/*", "/a/cc/d/eee/ggg")); assertTrue(PathPatternUtils.acceptName("/a/%%/b/*", "/a/cc/b/eee")); assertFalse(PathPatternUtils.acceptName("/a/%%/b/*", "/a/cc/b/eee/ggg")); } /** * Pattern testing. */ public void testExtractCommonAncestor() throws Exception { assertEquals("/a/b", PathPatternUtils.extractCommonAncestor("/a/*", "/a/b/c")); assertEquals("/a/b", PathPatternUtils.extractCommonAncestor("/a/*", "/a/b")); assertEquals("/a/b", PathPatternUtils.extractCommonAncestor("/a/b/*", "/a/b")); assertEquals("/b", PathPatternUtils.extractCommonAncestor("/*", "/b/c/d")); assertEquals("/", PathPatternUtils.extractCommonAncestor("/a/*", "/b/c/d")); assertEquals("/", PathPatternUtils.extractCommonAncestor("/a", "/b")); } }