@@ -332,6 +332,11 @@ class TestRunnerServiceImplTest {
332332 " $resultRelativePath /redfin-30-en-portrait/artifacts/sdcard/Android/data/test/cache/androidx_screenshots/class1_name1_emulator_goldResult.textproto" ,
333333 " class1 name1 emulator textproto" .toByteArray(Charsets .UTF_8 )
334334 )
335+ // No test is associated with this artifact. findArtifacts should not throw errors, even when unexpected files are encountered
336+ fakeBackend.fakeGoogleCloudApi.upload(
337+ " $resultRelativePath /redfin-30-en-portrait/artifacts/sdcard/Android/data/test/cache/androidx_screenshots/class5_name5_emulator_goldResult.textproto" ,
338+ " class5 name5 emulator textproto" .toByteArray(Charsets .UTF_8 )
339+ )
335340
336341 fakeToolsResultApi.addStep(
337342 projectId = fakeBackend.firebaseProjectId,
@@ -380,14 +385,14 @@ class TestRunnerServiceImplTest {
380385
381386 assertThat(result.testRuns).hasSize(1 )
382387 result.testRuns.first().let { testRun ->
383- val testIdentifier = TestRunnerService .TestIdentifier (
388+ val testIdentifier1 = TestRunnerService .TestIdentifier (
384389 className = " class1" ,
385390 name = " name1" ,
386391 runNumber = testRun.deviceRun.runNumber
387392 )
388- val screenshots = subject.getTestMatrixResultsScreenshots (
393+ val screenshots1 = subject.getTestMatrixArtifacts (
389394 testMatrixId,
390- listOf (testIdentifier )
395+ listOf (testIdentifier1 )
391396 )
392397 assertThat(
393398 testRun.deviceRun.deviceId
@@ -415,15 +420,15 @@ class TestRunnerServiceImplTest {
415420 )
416421 assertThat(
417422 testRun.testCaseArtifacts[
418- testIdentifier
423+ testIdentifier1
419424 ]?.size
420425 ).isEqualTo(
421426 1
422427 )
423428 // step and logcat both have valid values for test1
424429 assertThat(
425430 testRun.testCaseArtifacts[
426- testIdentifier
431+ testIdentifier1
427432 ]?.first {
428433 it.resourceType == TestRunnerService .TestCaseArtifact .ResourceType .LOGCAT
429434 }?.resultFileResource?.gcsPath.toString()
@@ -432,29 +437,29 @@ class TestRunnerServiceImplTest {
432437 )
433438 assertThat(
434439 testRun.testCaseArtifacts[
435- testIdentifier
440+ testIdentifier1
436441 ]?.first {
437442 it.resourceType == TestRunnerService .TestCaseArtifact .ResourceType .LOGCAT
438443 }?.resultFileResource?.readFully()?.toString(Charsets .UTF_8 )
439444 ).isEqualTo(
440445 " test1 logcat"
441446 )
442447 assertThat(
443- screenshots ?.get(testIdentifier )?.count {
448+ screenshots1 ?.get(testIdentifier1 )?.count {
444449 it.resourceType == TestRunnerService .TestCaseArtifact .ResourceType .PNG
445450 }
446451 ).isEqualTo(
447452 3
448453 )
449454 assertThat(
450- screenshots ?.get(testIdentifier )?.count {
455+ screenshots1 ?.get(testIdentifier1 )?.count {
451456 it.resourceType == TestRunnerService .TestCaseArtifact .ResourceType .TEXTPROTO
452457 }
453458 ).isEqualTo(
454459 1
455460 )
456461 assertThat(
457- screenshots ?.get(testIdentifier )?.first {
462+ screenshots1 ?.get(testIdentifier1 )?.first {
458463 it.resourceType == TestRunnerService .TestCaseArtifact .ResourceType .TEXTPROTO
459464 }?.resultFileResource?.gcsPath.toString()
460465 ).isEqualTo(
@@ -471,6 +476,19 @@ class TestRunnerServiceImplTest {
471476 )
472477 ]
473478 ).isNull()
479+ // No screenshots for test2
480+ val testIdentifier2 = TestRunnerService .TestIdentifier (
481+ className = " class2" ,
482+ name = " name2" ,
483+ runNumber = testRun.deviceRun.runNumber
484+ )
485+ val screenshots2 = subject.getTestMatrixArtifacts(
486+ testMatrixId,
487+ listOf (testIdentifier2)
488+ )
489+ assertThat(
490+ screenshots2
491+ ).isEmpty()
474492 // logcat for test3 is missing from gcloud folder
475493 assertThat(
476494 testRun.testCaseArtifacts[
@@ -481,7 +499,28 @@ class TestRunnerServiceImplTest {
481499 )
482500 ]
483501 ).isNull()
502+ // No screenshots for test3 either
503+ val testIdentifier3 = TestRunnerService .TestIdentifier (
504+ className = " class2" ,
505+ name = " name2" ,
506+ runNumber = testRun.deviceRun.runNumber
507+ )
508+ val screenshots3 = subject.getTestMatrixArtifacts(
509+ testMatrixId,
510+ listOf (testIdentifier3)
511+ )
512+ assertThat(
513+ screenshots3
514+ ).isEmpty()
484515 }
516+ // check screenshots is null when list of testIdentifiers is empty
517+ val screenshots = subject.getTestMatrixArtifacts(
518+ testMatrixId,
519+ emptyList()
520+ )
521+ assertThat(
522+ screenshots
523+ ).isNull()
485524 }
486525
487526 @Test
@@ -773,7 +812,7 @@ class TestRunnerServiceImplTest {
773812 " name1" ,
774813 0
775814 )
776- val screenshots = subject.getTestMatrixResultsScreenshots (
815+ val screenshots = subject.getTestMatrixArtifacts (
777816 testMatrixId,
778817 listOf (testIdentifier)
779818 )
0 commit comments