Skip to content

Commit 4c49439

Browse files
authored
Adding test case to check no relative path for file scans. (#4508)
1 parent 6554b9e commit 4c49439

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

plugins/toolkit/jetbrains-core/tst/software/aws/toolkits/jetbrains/services/codewhisperer/codescan/CodeWhispererCodeFileScanTest.kt

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,21 @@ import java.io.File
4545
import java.io.FileInputStream
4646
import java.util.Base64
4747
import java.util.UUID
48+
import java.util.zip.ZipFile
4849
import kotlin.io.path.relativeTo
4950
import kotlin.test.assertNotNull
5051

5152
class CodeWhispererCodeFileScanTest : CodeWhispererCodeScanTestBase(PythonCodeInsightTestFixtureRule()) {
5253
private lateinit var psifile: PsiFile
5354
private lateinit var psifile2: PsiFile
5455
private lateinit var psifile3: PsiFile
56+
private lateinit var psifile4: PsiFile
5557
private lateinit var file: File
5658
private lateinit var file2: File
5759
private lateinit var file3: File
60+
private lateinit var file4: File
5861
private lateinit var virtualFile3: VirtualFile
62+
private lateinit var virtualFile4: VirtualFile
5963
private lateinit var sessionConfigSpy: CodeScanSessionConfig
6064
private lateinit var sessionConfigSpy2: CodeScanSessionConfig
6165
private val payloadContext = PayloadContext(CodewhispererLanguage.Python, 1, 1, 10, listOf(), 600, 200)
@@ -111,6 +115,22 @@ class CodeWhispererCodeFileScanTest : CodeWhispererCodeScanTestBase(PythonCodeIn
111115
virtualFile3 = psifile3.virtualFile
112116
file3 = virtualFile3.toNioPath().toFile()
113117

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+
114134
sessionConfigSpy = spy(
115135
CodeScanSessionConfig.create(
116136
psifile.virtualFile,
@@ -121,7 +141,7 @@ class CodeWhispererCodeFileScanTest : CodeWhispererCodeScanTestBase(PythonCodeIn
121141

122142
sessionConfigSpy2 = spy(
123143
CodeScanSessionConfig.create(
124-
virtualFile3,
144+
virtualFile4,
125145
project,
126146
CodeWhispererConstants.CodeAnalysisScope.FILE
127147
)
@@ -209,6 +229,16 @@ class CodeWhispererCodeFileScanTest : CodeWhispererCodeScanTestBase(PythonCodeIn
209229
inOrder.verify(codeScanSessionSpy, Times(1)).listCodeScanFindings(eq("jobId"), eq(null))
210230
}
211231

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+
212242
@Test
213243
fun `unsupported languages file scan fail`() {
214244
scanManagerSpy = Mockito.spy(CodeWhispererCodeScanManager.getInstance(projectRule.project))

0 commit comments

Comments
 (0)