Skip to content

Commit

Permalink
SONAR-6348 Property sonar.path.temp is ignored by Ruby on Rails appli…
Browse files Browse the repository at this point in the history
…cation
  • Loading branch information
Simon Brandhof committed Apr 3, 2015
1 parent bfb40f4 commit 09c5d20
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 11 deletions.
Expand Up @@ -99,7 +99,8 @@ public File getHomeDir() {


@Override @Override
public File getTempDir() { public File getTempDir() {
return new File(homeDir, "temp"); // Tomcat is started by app process with correct java.io.tmpdir
return FileUtils.getTempDirectory();
} }


public File getDeployDir() { public File getDeployDir() {
Expand Down
Expand Up @@ -38,7 +38,7 @@ public TempFolder provide(ServerFileSystem fs) {
try { try {
FileUtils.forceMkdir(tempDir); FileUtils.forceMkdir(tempDir);
} catch (IOException e) { } catch (IOException e) {
throw new IllegalStateException("Unable to create root temp directory " + tempDir, e); throw new IllegalStateException("Unable to create temp directory " + tempDir, e);
} }
tempFolder = new DefaultTempFolder(tempDir); tempFolder = new DefaultTempFolder(tempDir);
} }
Expand Down
Expand Up @@ -19,6 +19,7 @@
*/ */
package org.sonar.server.platform; package org.sonar.server.platform;


import org.apache.commons.io.FileUtils;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException; import org.junit.rules.ExpectedException;
Expand All @@ -40,16 +41,32 @@ public class TempFolderProviderTest {
@Rule @Rule
public TemporaryFolder temp = new TemporaryFolder(); public TemporaryFolder temp = new TemporaryFolder();


TempFolderProvider sut = new TempFolderProvider();

@Test @Test
public void createTempFolder() throws Exception { public void existing_temp_dir() throws Exception {
ServerFileSystem fs = mock(ServerFileSystem.class); ServerFileSystem fs = mock(ServerFileSystem.class);
File serverTempFolder = temp.newFolder(); File tmpDir = temp.newFolder();
when(fs.getTempDir()).thenReturn(serverTempFolder); when(fs.getTempDir()).thenReturn(tmpDir);
TempFolderProvider tempFolderProvider = new TempFolderProvider();
TempFolder tempUtils = tempFolderProvider.provide(fs); TempFolder folder = sut.provide(fs);
tempUtils.newDir(); assertThat(folder).isNotNull();
tempUtils.newFile(); File newDir = folder.newDir();
assertThat(new File(serverTempFolder, "tmp")).exists(); assertThat(newDir).exists().isDirectory();
assertThat(new File(serverTempFolder, "tmp").list()).hasSize(2); assertThat(newDir.getParentFile().getCanonicalPath()).startsWith(tmpDir.getCanonicalPath());
}

@Test
public void create_temp_dir_if_missing() throws Exception {
ServerFileSystem fs = mock(ServerFileSystem.class);
File tmpDir = temp.newFolder();
when(fs.getTempDir()).thenReturn(tmpDir);
FileUtils.forceDelete(tmpDir);

TempFolder folder = sut.provide(fs);
assertThat(folder).isNotNull();
File newDir = folder.newDir();
assertThat(newDir).exists().isDirectory();
assertThat(newDir.getParentFile().getCanonicalPath()).startsWith(tmpDir.getCanonicalPath());
} }
} }

0 comments on commit 09c5d20

Please sign in to comment.