@@ -11,8 +11,14 @@ import org.junit.Test
1111
1212class FileUriUtilTest : BasePlatformTestCase () {
1313
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+ }
1622
1723 @Test
1824 fun `test basic unix path` () {
@@ -23,7 +29,7 @@ class FileUriUtilTest : BasePlatformTestCase() {
2329
2430 @Test
2531 fun `test unix directory path` () {
26- val virtualFile = createMockVirtualFile(" /path/to/directory/" )
32+ val virtualFile = createMockVirtualFile(" /path/to/directory/" , isDirectory = true )
2733 val uri = FileUriUtil .toUriString(virtualFile)
2834 assertEquals(" file:///path/to/directory" , uri)
2935 }
@@ -35,20 +41,6 @@ class FileUriUtilTest : BasePlatformTestCase() {
3541 assertEquals(" file:///path/with%20spaces/file.txt" , uri)
3642 }
3743
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-
5244 @Test
5345 fun `test root path` () {
5446 val virtualFile = createMockVirtualFile(" /" )
@@ -86,84 +78,53 @@ class FileUriUtilTest : BasePlatformTestCase() {
8678
8779 @Test
8880 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+ )
9785 val result = FileUriUtil .toUriString(virtualFile)
9886 assertEquals(" jar:file:///path/to/archive.jar!/com/example/Test.class" , result)
9987 }
10088
10189 @Test
10290 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+ )
11195 val result = FileUriUtil .toUriString(virtualFile)
11296 assertEquals(" jrt://java.base/java/lang/String.class" , result)
11397 }
11498
11599 @Test
116100 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+ )
125105 val result = FileUriUtil .toUriString(virtualFile)
126106 assertNull(result)
127107 }
128108
129109 @Test
130110 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+ )
139116 val result = FileUriUtil .toUriString(virtualFile)
140117 assertEquals(" jar:file:///path/to/archive.jar!/com/example" , result)
141118 }
142119
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- }
156120
157121 @Test
158122 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+ )
167128 val result = FileUriUtil .toUriString(virtualFile)
168129 assertNull(result)
169130 }
0 commit comments