@@ -45,17 +45,21 @@ import java.io.File
45
45
import java.io.FileInputStream
46
46
import java.util.Base64
47
47
import java.util.UUID
48
+ import java.util.zip.ZipFile
48
49
import kotlin.io.path.relativeTo
49
50
import kotlin.test.assertNotNull
50
51
51
52
class CodeWhispererCodeFileScanTest : CodeWhispererCodeScanTestBase (PythonCodeInsightTestFixtureRule ()) {
52
53
private lateinit var psifile: PsiFile
53
54
private lateinit var psifile2: PsiFile
54
55
private lateinit var psifile3: PsiFile
56
+ private lateinit var psifile4: PsiFile
55
57
private lateinit var file: File
56
58
private lateinit var file2: File
57
59
private lateinit var file3: File
60
+ private lateinit var file4: File
58
61
private lateinit var virtualFile3: VirtualFile
62
+ private lateinit var virtualFile4: VirtualFile
59
63
private lateinit var sessionConfigSpy: CodeScanSessionConfig
60
64
private lateinit var sessionConfigSpy2: CodeScanSessionConfig
61
65
private val payloadContext = PayloadContext (CodewhispererLanguage .Python , 1 , 1 , 10 , listOf (), 600 , 200 )
@@ -111,6 +115,22 @@ class CodeWhispererCodeFileScanTest : CodeWhispererCodeScanTestBase(PythonCodeIn
111
115
virtualFile3 = psifile3.virtualFile
112
116
file3 = virtualFile3.toNioPath().toFile()
113
117
118
+ psifile4 = projectRule.fixture.addFileToProject(
119
+ " ../test.java" ,
120
+ """
121
+ public class Addition {
122
+ public static void main(String[] args) {
123
+ int a = 1;
124
+ int b = 2;
125
+ int c = a + b;
126
+ System.out.println(c);
127
+ }
128
+ }
129
+ """
130
+ )
131
+ virtualFile4 = psifile4.virtualFile
132
+ file4 = virtualFile4.toNioPath().toFile()
133
+
114
134
sessionConfigSpy = spy(
115
135
CodeScanSessionConfig .create(
116
136
psifile.virtualFile,
@@ -121,7 +141,7 @@ class CodeWhispererCodeFileScanTest : CodeWhispererCodeScanTestBase(PythonCodeIn
121
141
122
142
sessionConfigSpy2 = spy(
123
143
CodeScanSessionConfig .create(
124
- virtualFile3 ,
144
+ virtualFile4 ,
125
145
project,
126
146
CodeWhispererConstants .CodeAnalysisScope .FILE
127
147
)
@@ -209,6 +229,16 @@ class CodeWhispererCodeFileScanTest : CodeWhispererCodeScanTestBase(PythonCodeIn
209
229
inOrder.verify(codeScanSessionSpy, Times (1 )).listCodeScanFindings(eq(" jobId" ), eq(null ))
210
230
}
211
231
232
+ @Test
233
+ fun `test createPayload for files outside Project Root` () {
234
+ val payload = sessionConfigSpy2.createPayload()
235
+ assertNotNull(payload)
236
+ val payloadZipFile = ZipFile (payload.srcZip)
237
+ for (entry in payloadZipFile.entries()) {
238
+ assertThat(! entry.name.startsWith(" .." ))
239
+ }
240
+ }
241
+
212
242
@Test
213
243
fun `unsupported languages file scan fail` () {
214
244
scanManagerSpy = Mockito .spy(CodeWhispererCodeScanManager .getInstance(projectRule.project))
0 commit comments