@@ -12,35 +12,45 @@ class PathExtensionsTest extends Specification {
12
12
@Shared
13
13
private Path tmpdir = Path . of(System . getProperty(" java.io.tmpdir" ))
14
14
@Shared
15
- private Path unwritable = tmpdir. resolve(" coder-gateway-test/path-extensions/unwritable" )
15
+ private Path unwritableFile = tmpdir. resolve(" coder-gateway-test/path-extensions/unwritable/file" )
16
+ @Shared
17
+ private Path writableFile = tmpdir. resolve(" coder-gateway-test/path-extensions/writable-file" )
16
18
17
19
void setupSpec () {
18
- if (unwritable . parent. toFile(). exists()) {
19
- unwritable . parent. toFile(). setWritable(true )
20
- unwritable . parent. toFile(). deleteDir()
20
+ if (unwritableFile . parent. toFile(). exists()) {
21
+ unwritableFile . parent. toFile(). setWritable(true )
22
+ unwritableFile . parent. toFile(). deleteDir()
21
23
}
22
- Files . createDirectories(unwritable. parent)
23
- unwritable. toFile(). write(" text" )
24
- unwritable. toFile(). setWritable(false )
25
- unwritable. parent. toFile(). setWritable(false )
24
+ Files . createDirectories(unwritableFile. parent)
25
+ unwritableFile. toFile(). write(" text" )
26
+ writableFile. toFile(). write(" text" )
27
+ unwritableFile. toFile(). setWritable(false )
28
+ unwritableFile. parent. toFile(). setWritable(false )
26
29
}
27
30
28
- def " canWrite " () {
31
+ def " canCreateDirectory " () {
29
32
expect :
30
33
use(PathExtensionsKt ) {
31
- path. canWrite () == expected
34
+ path. canCreateDirectory () == expected
32
35
}
33
36
34
37
where :
35
- path | expected
36
- unwritable | false
37
- unwritable. resolve(" probably/nonexistent" ) | false
38
- Path . of(" relative to project" ) | true
39
- tmpdir. resolve(" ./foo/bar/../.." ) | true
40
- tmpdir | true
41
- tmpdir. resolve(" some/nested/non-existent/path" ) | true
42
- tmpdir. resolve(" with space" ) | true
43
- CoderCLIManager . getConfigDir() | true
44
- CoderCLIManager . getDataDir() | true
38
+ path | expected
39
+ unwritableFile | false
40
+ unwritableFile. resolve(" probably/nonexistent" ) | false
41
+ // Unfortunately on Windows directories Java will always tell you the
42
+ // directory is writable even if it is not.
43
+ unwritableFile. parent. resolve(" probably/nonexistent" ) | System . getProperty(" os.name" ). toLowerCase(). contains(" windows" )
44
+ writableFile | false
45
+ writableFile. parent | true
46
+ writableFile. resolve(" nested/under/file" ) | false
47
+ writableFile. parent. resolve(" nested/under/dir" ) | true
48
+ Path . of(" relative to project" ) | true
49
+ tmpdir. resolve(" ./foo/bar/../../coder-gateway-test/path-extensions" ) | true
50
+ tmpdir | true
51
+ tmpdir. resolve(" some/nested/non-existent/path" ) | true
52
+ tmpdir. resolve(" with space" ) | true
53
+ CoderCLIManager . getConfigDir() | true
54
+ CoderCLIManager . getDataDir() | true
45
55
}
46
56
}
0 commit comments