@@ -11,8 +11,14 @@ import org.junit.Test
11
11
12
12
class FileUriUtilTest : BasePlatformTestCase () {
13
13
14
- private fun createMockVirtualFile (path : String ): VirtualFile =
15
- LightVirtualFile (path)
14
+ private fun createMockVirtualFile (path : String , protocol : String = "file", isDirectory : Boolean = false): VirtualFile =
15
+ mockk<VirtualFile > {
16
+ every { fileSystem } returns mockk {
17
+ every { this @mockk.protocol } returns protocol
18
+ }
19
+ every { url } returns path
20
+ every { this @mockk.isDirectory } returns isDirectory
21
+ }
16
22
17
23
@Test
18
24
fun `test basic unix path` () {
@@ -23,7 +29,7 @@ class FileUriUtilTest : BasePlatformTestCase() {
23
29
24
30
@Test
25
31
fun `test unix directory path` () {
26
- val virtualFile = createMockVirtualFile(" /path/to/directory/" )
32
+ val virtualFile = createMockVirtualFile(" /path/to/directory/" , isDirectory = true )
27
33
val uri = FileUriUtil .toUriString(virtualFile)
28
34
assertEquals(" file:///path/to/directory" , uri)
29
35
}
@@ -35,20 +41,6 @@ class FileUriUtilTest : BasePlatformTestCase() {
35
41
assertEquals(" file:///path/with%20spaces/file.txt" , uri)
36
42
}
37
43
38
- @Test
39
- fun `test windows style path` () {
40
- val virtualFile = createMockVirtualFile(" C:\\ path\\ to\\ file.txt" )
41
- val uri = FileUriUtil .toUriString(virtualFile)
42
- assertEquals(" file:///C:/path/to/file.txt" , uri)
43
- }
44
-
45
- @Test
46
- fun `test windows directory path` () {
47
- val virtualFile = createMockVirtualFile(" C:\\ path\\ to\\ directory\\ " )
48
- val uri = FileUriUtil .toUriString(virtualFile)
49
- assertEquals(" file:///C:/path/to/directory" , uri)
50
- }
51
-
52
44
@Test
53
45
fun `test root path` () {
54
46
val virtualFile = createMockVirtualFile(" /" )
@@ -86,84 +78,53 @@ class FileUriUtilTest : BasePlatformTestCase() {
86
78
87
79
@Test
88
80
fun `test jar protocol conversion` () {
89
- val virtualFile = mockk<VirtualFile > {
90
- every { fileSystem } returns mockk {
91
- every { protocol } returns " jar"
92
- }
93
- every { url } returns " jar:file:///path/to/archive.jar!/com/example/Test.class"
94
- every { isDirectory } returns false
95
- }
96
-
81
+ val virtualFile = createMockVirtualFile(
82
+ " jar:file:///path/to/archive.jar!/com/example/Test.class" ,
83
+ " jar"
84
+ )
97
85
val result = FileUriUtil .toUriString(virtualFile)
98
86
assertEquals(" jar:file:///path/to/archive.jar!/com/example/Test.class" , result)
99
87
}
100
88
101
89
@Test
102
90
fun `test jrt protocol conversion` () {
103
- val virtualFile = mockk<VirtualFile > {
104
- every { fileSystem } returns mockk {
105
- every { protocol } returns " jrt"
106
- }
107
- every { url } returns " jrt://java.base/java/lang/String.class"
108
- every { isDirectory } returns false
109
- }
110
-
91
+ val virtualFile = createMockVirtualFile(
92
+ " jrt://java.base/java/lang/String.class" ,
93
+ " jrt"
94
+ )
111
95
val result = FileUriUtil .toUriString(virtualFile)
112
96
assertEquals(" jrt://java.base/java/lang/String.class" , result)
113
97
}
114
98
115
99
@Test
116
100
fun `test invalid jar url returns null` () {
117
- val virtualFile = mockk<VirtualFile > {
118
- every { fileSystem } returns mockk {
119
- every { protocol } returns " jar"
120
- }
121
- every { url } returns " invalid:url:format"
122
- every { isDirectory } returns false
123
- }
124
-
101
+ val virtualFile = createMockVirtualFile(
102
+ " invalid:url:format" ,
103
+ " jar"
104
+ )
125
105
val result = FileUriUtil .toUriString(virtualFile)
126
106
assertNull(result)
127
107
}
128
108
129
109
@Test
130
110
fun `test jar protocol with directory` () {
131
- val virtualFile = mockk<VirtualFile > {
132
- every { fileSystem } returns mockk {
133
- every { protocol } returns " jar"
134
- }
135
- every { url } returns " jar:file:///path/to/archive.jar!/com/example/"
136
- every { isDirectory } returns true
137
- }
138
-
111
+ val virtualFile = createMockVirtualFile(
112
+ " jar:file:///path/to/archive.jar!/com/example/" ,
113
+ " jar" ,
114
+ true
115
+ )
139
116
val result = FileUriUtil .toUriString(virtualFile)
140
117
assertEquals(" jar:file:///path/to/archive.jar!/com/example" , result)
141
118
}
142
119
143
- @Test
144
- fun `test null url in jar protocol` () {
145
- val virtualFile = mockk<VirtualFile > {
146
- every { fileSystem } returns mockk {
147
- every { protocol } returns " jar"
148
- }
149
- every { url } returns " "
150
- every { isDirectory } returns false
151
- }
152
-
153
- val result = FileUriUtil .toUriString(virtualFile)
154
- assertNull(result)
155
- }
156
120
157
121
@Test
158
122
fun `test empty url in jar protocol` () {
159
- val virtualFile = mockk<VirtualFile > {
160
- every { fileSystem } returns mockk {
161
- every { protocol } returns " jar"
162
- }
163
- every { url } returns " "
164
- every { isDirectory } returns false
165
- }
166
-
123
+ val virtualFile = createMockVirtualFile(
124
+ " " ,
125
+ " jar" ,
126
+ true
127
+ )
167
128
val result = FileUriUtil .toUriString(virtualFile)
168
129
assertNull(result)
169
130
}
0 commit comments