public DirectoryEntries allEntries() { bombUnless(rootFolder.isDirectory(), rootFolder + " is not a folder"); return new DirectoryReader(jobIdentifier).listEntries(rootFolder, relativePath); }
/** * Recursively builds a tree of the specified rootFolder * TODO: ChrisS : Note that the URL stuff is completely wrong and should NOT be here - that is view, this is model */ public DirectoryEntries listEntries(File rootFolder, String relativePath) { DirectoryEntries entries = new DirectoryEntries(); if (rootFolder == null) { return entries; } File[] files = rootFolder.listFiles(VISIBLE_NON_SERIALIZED_FILES); if (files == null) { return entries; } Arrays.sort(files, new FileComparator()); for (File file : files) { String name = file.getName(); String url = getUrl(relativePath, name); entries.add(file.isDirectory() ? new FolderDirectoryEntry(name, url, listEntries(file, getCurrentPath(relativePath) + name)) : new FileDirectoryEntry(name, url)); } return entries; }
@Test public void shouldNotDieIfGivenBogusPath() throws Exception { DirectoryReader reader = new DirectoryReader(jobIdentifier); List<DirectoryEntry> entries = reader.listEntries(new File("totally bogus path!!!"), ""); assertThat(entries.size(), is(0)); }
@Test public void shouldNotDieIfGivenBogusFile() { DirectoryReader reader = new DirectoryReader(jobIdentifier); List<DirectoryEntry> entries = reader.listEntries(null, ""); assertThat(entries.size(), is(0)); }
@Test public void shouldNotContainSerializedObjectFile() throws Exception { String filename = ".log200806041535.xml.ser"; TestFileUtil.createTestFile(testFolder, filename); DirectoryReader reader = new DirectoryReader(jobIdentifier); List<DirectoryEntry> entries = reader.listEntries(testFolder, folderRoot); assertThat(entries.size(), is(0)); }
@Test public void shouldGetFileList() throws Exception { String filename = "text.html$%"; TestFileUtil.createTestFile(testFolder, filename); DirectoryReader reader = new DirectoryReader(jobIdentifier); List<DirectoryEntry> entries = reader.listEntries(testFolder, folderRoot); assertThat(entries.size(), is(1)); assertThat(entries.get(0).getFileName(), is(filename)); assertThat(entries.get(0).getUrl(), is("/files/pipelineName/LATEST/stageName/LATEST/buildName" + folderRoot + "/" + URLEncoder.encode(filename))); }
@Test public void shouldKeepRootsInUrl() throws Exception { File b = TestFileUtil.createTestFolder(testFolder, "b"); TestFileUtil.createTestFile(b, "c.xml"); List<DirectoryEntry> entries = new DirectoryReader(jobIdentifier).listEntries(b, folderRoot + "/b"); assertThat(entries.size(), is(1)); String expectedUrl = "/files/pipelineName/LATEST/stageName/LATEST/buildName/" + testFolder.getName() + "/b/c.xml"; assertThat(entries.get(0).getUrl(), is(expectedUrl)); }
public DirectoryEntries getArtifactFiles(final DirectoryReader directoryReader) throws IllegalArtifactLocationException { return new DirectoryEntries() {{ if (!job.isCompleted()) { addFolder(CRUISE_OUTPUT_FOLDER).addFile(CONSOLE_LOG_FILE_NAME, artifactsService.findArtifactUrl(jobIdentifier, getConsoleOutputFolderAndFileName())); } addAll(directoryReader.listEntries(artifactsService.findArtifact(jobIdentifier, ""), "")); setIsArtifactsDeleted(stage.isArtifactsDeleted()); }}; }
@Test public void shouldGetListOfFilesAndFolders() throws Exception { TestFileUtil.createTestFile(testFolder, "text.html"); File subFolder = TestFileUtil.createTestFolder(testFolder, "primate"); TestFileUtil.createTestFile(subFolder, "baboon.html"); DirectoryReader reader = new DirectoryReader(jobIdentifier); List<DirectoryEntry> entries = reader.listEntries(testFolder, folderRoot); assertThat(entries.size(), is(2)); FolderDirectoryEntry folder = (FolderDirectoryEntry) entries.get(0); assertThat(folder.getFileName(), is("primate")); assertThat(folder.getUrl(), is("/files/pipelineName/LATEST/stageName/LATEST/buildName" + folderRoot + "/primate")); assertThat(entries.get(1).getFileName(), is("text.html")); assertThat(folder.getSubDirectory().get(0).getFileName(), is("baboon.html")); assertThat(folder.getSubDirectory().get(0).getUrl(), is("/files/pipelineName/LATEST/stageName/LATEST/buildName" + folderRoot + "/primate/baboon.html")); }
@Test public void shouldGetListOfFilesWithDirectoriesFirstAndFilesInAlphabeticOrder() throws Exception { TestFileUtil.createTestFile(testFolder, "build.html"); File subFolder = TestFileUtil.createTestFolder(testFolder, "testoutput"); TestFileUtil.createTestFile(subFolder, "baboon.html"); TestFileUtil.createTestFile(subFolder, "apple.html"); TestFileUtil.createTestFile(subFolder, "pear.html"); DirectoryReader reader = new DirectoryReader(jobIdentifier); List<DirectoryEntry> entries = reader.listEntries(testFolder, folderRoot); assertThat(entries.size(), is(2)); FolderDirectoryEntry folder = (FolderDirectoryEntry) entries.get(0); assertThat(folder.getFileName(), is("testoutput")); assertThat(entries.get(1).getFileName(), is("build.html")); assertThat(folder.getSubDirectory().get(0).getFileName(), is("apple.html")); assertThat(folder.getSubDirectory().get(1).getFileName(), is("baboon.html")); assertThat(folder.getSubDirectory().get(2).getFileName(), is("pear.html")); }
@Test public void shouldGetSubSubFolder() throws Exception { TestFileUtil.createTestFile(TestFileUtil.createTestFolder(TestFileUtil.createTestFolder(testFolder, "primate"), "monkey"), "baboon.html"); DirectoryReader reader = new DirectoryReader(jobIdentifier); List<DirectoryEntry> entries = reader.listEntries(testFolder, folderRoot); FolderDirectoryEntry folder = (FolderDirectoryEntry) entries.get(0); assertThat(folder.getFileName(), is("primate")); FolderDirectoryEntry subFolder = (FolderDirectoryEntry) folder.getSubDirectory().get(0); assertThat(subFolder.getFileName(), is("monkey")); assertThat(subFolder.getSubDirectory().get(0).getFileName(), is("baboon.html")); assertThat(subFolder.getSubDirectory().get(0).getUrl(), is("/files/pipelineName/LATEST/stageName/LATEST/buildName" + folderRoot + "/primate/monkey/baboon.html")); }