X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.core%2Fext%2Ftest%2Forg%2Fargeo%2Fjcr%2Ffs%2FJcrFileSystemTest.java;fp=org.argeo.core%2Fext%2Ftest%2Forg%2Fargeo%2Fjcr%2Ffs%2FJcrFileSystemTest.java;h=0000000000000000000000000000000000000000;hb=623a0db2d0f161c101b9e41abcaccc04d478d32a;hp=2d03b8f2c22c338f65dd0386ae71ee2c9fca5eb8;hpb=46cc2039ac20703c484aa994b830a2da113f2c97;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.core/ext/test/org/argeo/jcr/fs/JcrFileSystemTest.java b/org.argeo.core/ext/test/org/argeo/jcr/fs/JcrFileSystemTest.java deleted file mode 100644 index 2d03b8f2c..000000000 --- a/org.argeo.core/ext/test/org/argeo/jcr/fs/JcrFileSystemTest.java +++ /dev/null @@ -1,191 +0,0 @@ -package org.argeo.jcr.fs; - -import java.io.InputStream; -import java.io.OutputStream; -import java.net.URI; -import java.nio.file.DirectoryStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.attribute.BasicFileAttributes; -import java.nio.file.attribute.FileTime; -import java.nio.file.spi.FileSystemProvider; -import java.util.Arrays; -import java.util.Map; - -import javax.jcr.Property; -import javax.jcr.RepositoryException; -import javax.jcr.Session; -import javax.jcr.nodetype.NodeType; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.jackrabbit.core.RepositoryImpl; -import org.argeo.jackrabbit.fs.JackrabbitMemoryFsProvider; - -import junit.framework.TestCase; - -public class JcrFileSystemTest extends TestCase { - private final static Log log = LogFactory.getLog(JcrFileSystemTest.class); - - public void testMounts() throws Exception { - JackrabbitMemoryFsProvider fsProvider = new JackrabbitMemoryFsProvider() { - - @Override - protected void postRepositoryCreation(RepositoryImpl repositoryImpl) throws RepositoryException { - // create workspace - Session session = login(); - session.getWorkspace().createWorkspace("test"); - } - - }; - - Path rootPath = fsProvider.getPath(new URI("jcr+memory:/")); - log.debug("Got root " + rootPath); - Path testDir = rootPath.resolve("testDir"); - Files.createDirectory(testDir); - - Path testMount = fsProvider.getPath(new URI("jcr+memory:/test")); - log.debug("Test path"); - assertEquals(rootPath, testMount.getParent()); - assertEquals(testMount.getFileName(), rootPath.relativize(testMount)); - - Path testPath = testMount.resolve("test.txt"); - log.debug("Create file " + testPath); - Files.createFile(testPath); - BasicFileAttributes bfa = Files.readAttributes(testPath, BasicFileAttributes.class); - FileTime ft = bfa.creationTime(); - assertNotNull(ft); - assertTrue(bfa.isRegularFile()); - log.debug("Created " + testPath + " (" + ft + ")"); - Files.delete(testPath); - log.debug("Deleted " + testPath); - - // Browse directories from root - DirectoryStream files = Files.newDirectoryStream(rootPath); - int directoryCount = 0; - for (Path file : files) { - if (Files.isDirectory(file)) { - directoryCount++; - } - } - assertEquals(2, directoryCount); - - // Browse directories from mount - Path mountSubDir = testMount.resolve("mountSubDir"); - Files.createDirectory(mountSubDir); - Path otherSubDir = testMount.resolve("otherSubDir"); - Files.createDirectory(otherSubDir); - testPath = testMount.resolve("test.txt"); - Files.createFile(testPath); - files = Files.newDirectoryStream(testMount); - int fileCount = 0; - for (Path file : files) { - fileCount++; - } - assertEquals(3, fileCount); - - } - - public void testSimple() throws Exception { - FileSystemProvider fsProvider = new JackrabbitMemoryFsProvider(); - - // Simple file - Path rootPath = fsProvider.getPath(new URI("jcr+memory:/")); - log.debug("Got root " + rootPath); - Path testPath = fsProvider.getPath(new URI("jcr+memory:/test.txt")); - log.debug("Test path"); - assertEquals("test.txt", testPath.getFileName().toString()); - assertEquals(rootPath, testPath.getParent()); - assertEquals(testPath.getFileName(), rootPath.relativize(testPath)); - // relativize self should be empty path - Path selfRelative = testPath.relativize(testPath); - assertEquals("", selfRelative.toString()); - - log.debug("Create file " + testPath); - Files.createFile(testPath); - BasicFileAttributes bfa = Files.readAttributes(testPath, BasicFileAttributes.class); - FileTime ft = bfa.creationTime(); - assertNotNull(ft); - assertTrue(bfa.isRegularFile()); - log.debug("Created " + testPath + " (" + ft + ")"); - Files.delete(testPath); - log.debug("Deleted " + testPath); - String txt = "TEST\nTEST2\n"; - byte[] arr = txt.getBytes(); - Files.write(testPath, arr); - log.debug("Wrote " + testPath); - byte[] read = Files.readAllBytes(testPath); - assertTrue(Arrays.equals(arr, read)); - assertEquals(txt, new String(read)); - log.debug("Read " + testPath); - Path testDir = rootPath.resolve("testDir"); - log.debug("Resolved " + testDir); - // Copy - Files.createDirectory(testDir); - log.debug("Created directory " + testDir); - Path subsubdir = Files.createDirectories(testDir.resolve("subdir/subsubdir")); - log.debug("Created sub directories " + subsubdir); - Path copiedFile = testDir.resolve("copiedFile.txt"); - log.debug("Resolved " + copiedFile); - Path relativeCopiedFile = testDir.relativize(copiedFile); - assertEquals(copiedFile.getFileName().toString(), relativeCopiedFile.toString()); - log.debug("Relative copied file " + relativeCopiedFile); - try (OutputStream out = Files.newOutputStream(copiedFile); InputStream in = Files.newInputStream(testPath)) { - IOUtils.copy(in, out); - } - log.debug("Copied " + testPath + " to " + copiedFile); - Files.delete(testPath); - log.debug("Deleted " + testPath); - byte[] copiedRead = Files.readAllBytes(copiedFile); - assertTrue(Arrays.equals(copiedRead, read)); - log.debug("Read " + copiedFile); - // Browse directories - DirectoryStream files = Files.newDirectoryStream(testDir); - int fileCount = 0; - Path listedFile = null; - for (Path file : files) { - fileCount++; - if (!Files.isDirectory(file)) - listedFile = file; - } - assertEquals(2, fileCount); - assertEquals(copiedFile, listedFile); - assertEquals(copiedFile.toString(), listedFile.toString()); - log.debug("Listed " + testDir); - // Generic attributes - Map attrs = Files.readAttributes(copiedFile, "*"); - assertEquals(3, attrs.size()); - log.debug("Read attributes of " + copiedFile + ": " + attrs.keySet()); - // Direct node access - NodeFileAttributes nfa = Files.readAttributes(copiedFile, NodeFileAttributes.class); - nfa.getNode().addMixin(NodeType.MIX_LANGUAGE); - nfa.getNode().getSession().save(); - log.debug("Add mix:language"); - Files.setAttribute(copiedFile, Property.JCR_LANGUAGE, "fr"); - log.debug("Set language"); - attrs = Files.readAttributes(copiedFile, "*"); - assertEquals(4, attrs.size()); - log.debug("Read attributes of " + copiedFile + ": " + attrs.keySet()); - } - - public void testIllegalCharacters() throws Exception { - FileSystemProvider fsProvider = new JackrabbitMemoryFsProvider(); - String fileName = "tüßçt[1].txt"; - String pathStr = "/testDir/" + fileName; - Path testDir = fsProvider.getPath(new URI("jcr+memory:/testDir")); - Files.createDirectory(testDir); - Path testPath = testDir.resolve(fileName); - assertEquals(pathStr, testPath.toString()); - Files.createFile(testPath); - DirectoryStream files = Files.newDirectoryStream(testDir); - Path listedPath = files.iterator().next(); - assertEquals(pathStr, listedPath.toString()); - - String dirName = "*[~WeirdDir~]*"; - Path subDir = testDir.resolve(dirName); - Files.createDirectory(subDir); - subDir = testDir.resolve(dirName); - assertEquals(dirName, subDir.getFileName().toString()); - } -}