From ef082c668ac9b195599eb4b63cd287aa47cbee49 Mon Sep 17 00:00:00 2001 From: hierynomus Date: Wed, 14 Sep 2011 11:02:35 +0200 Subject: [PATCH] Fixed bug in SFTP FileMode for AIX/Unix directory mask --- .../java/net/schmizz/sshj/sftp/FileMode.java | 2 +- .../net/schmizz/sshj/sftp/FileModeTest.java | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/test/java/net/schmizz/sshj/sftp/FileModeTest.java diff --git a/src/main/java/net/schmizz/sshj/sftp/FileMode.java b/src/main/java/net/schmizz/sshj/sftp/FileMode.java index c456ed01..a5a305c1 100644 --- a/src/main/java/net/schmizz/sshj/sftp/FileMode.java +++ b/src/main/java/net/schmizz/sshj/sftp/FileMode.java @@ -74,7 +74,7 @@ public class FileMode { } public int getTypeMask() { - return mask & 0770000; + return mask & 0170000; } public int getPermissionsMask() { diff --git a/src/test/java/net/schmizz/sshj/sftp/FileModeTest.java b/src/test/java/net/schmizz/sshj/sftp/FileModeTest.java new file mode 100644 index 00000000..8c72cf7f --- /dev/null +++ b/src/test/java/net/schmizz/sshj/sftp/FileModeTest.java @@ -0,0 +1,23 @@ +package net.schmizz.sshj.sftp; + +import org.junit.Test; + +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.assertThat; + +public class FileModeTest { + + @Test + public void shouldDetectDirectoryWithLinuxMask() { + FileMode fileMode = new FileMode(040755); + assertThat(fileMode.toString(), equalTo("[mask=40755]")); + assertThat(fileMode.getType(), equalTo(FileMode.Type.DIRECTORY)); + } + + @Test + public void shouldDetectDirectoryWithAixUnixMask() { + FileMode fileMode = new FileMode(0240755); + assertThat(fileMode.toString(), equalTo("[mask=240755]")); + assertThat(fileMode.getType(), equalTo(FileMode.Type.DIRECTORY)); + } +}