7
7
package com.datadog.android.sessionreplay.internal.recorder
8
8
9
9
import android.graphics.drawable.Drawable
10
+ import android.os.Build
10
11
import android.view.Display
11
12
import android.view.View
12
13
import android.view.ViewStub
@@ -15,6 +16,7 @@ import androidx.appcompat.widget.ActionBarContextView
15
16
import androidx.appcompat.widget.Toolbar
16
17
import com.datadog.android.sessionreplay.forge.ForgeConfigurator
17
18
import com.datadog.android.sessionreplay.internal.recorder.resources.DefaultImageWireframeHelper
19
+ import com.datadog.tools.unit.annotations.TestTargetApi
18
20
import com.datadog.tools.unit.extensions.ApiLevelExtension
19
21
import fr.xgouchet.elmyr.Forge
20
22
import fr.xgouchet.elmyr.annotation.IntForgery
@@ -28,6 +30,7 @@ import org.junit.jupiter.api.extension.Extensions
28
30
import org.mockito.Mock
29
31
import org.mockito.junit.jupiter.MockitoExtension
30
32
import org.mockito.junit.jupiter.MockitoSettings
33
+ import org.mockito.kotlin.doReturn
31
34
import org.mockito.kotlin.mock
32
35
import org.mockito.kotlin.whenever
33
36
import org.mockito.quality.Strictness
@@ -337,8 +340,9 @@ internal class ViewUtilsInternalTest {
337
340
@IntForgery(min = Display .DEFAULT_DISPLAY + 1 ) fakeDisplayId : Int
338
341
) {
339
342
// Given
340
- whenever(mockView.display).thenReturn(mock())
341
- whenever(mockView.display?.displayId).thenReturn(fakeDisplayId)
343
+ val mockDisplay = mock<Display >()
344
+ whenever(mockView.display) doReturn mockDisplay
345
+ whenever(mockDisplay.displayId) doReturn fakeDisplayId
342
346
343
347
// When
344
348
val isOnSecondaryDisplay = testViewUtilsInternal.isOnSecondaryDisplay(mockView)
@@ -352,8 +356,40 @@ internal class ViewUtilsInternalTest {
352
356
@Mock mockView : View
353
357
) {
354
358
// Given
355
- whenever(mockView.display).thenReturn(mock())
356
- whenever(mockView.display?.displayId).thenReturn(Display .DEFAULT_DISPLAY )
359
+ val mockDisplay = mock<Display >()
360
+ whenever(mockView.display) doReturn mockDisplay
361
+ whenever(mockDisplay.displayId) doReturn Display .DEFAULT_DISPLAY
362
+
363
+ // When
364
+ val isOnSecondaryDisplay = testViewUtilsInternal.isOnSecondaryDisplay(mockView)
365
+
366
+ // Then
367
+ assertThat(isOnSecondaryDisplay).isFalse
368
+ }
369
+
370
+ @Test
371
+ @TestTargetApi(Build .VERSION_CODES .M )
372
+ fun `M return false W isOnSecondaryDisplay { invalid display }` (
373
+ @Mock mockView : View
374
+ ) {
375
+ // Given
376
+ val mockDisplay = mock<Display >()
377
+ whenever(mockView.display) doReturn mockDisplay
378
+ whenever(mockDisplay.displayId) doReturn Display .INVALID_DISPLAY
379
+
380
+ // When
381
+ val isOnSecondaryDisplay = testViewUtilsInternal.isOnSecondaryDisplay(mockView)
382
+
383
+ // Then
384
+ assertThat(isOnSecondaryDisplay).isFalse
385
+ }
386
+
387
+ @Test
388
+ fun `M return false W isOnSecondaryDisplay { no display }` (
389
+ @Mock mockView : View
390
+ ) {
391
+ // Given
392
+ whenever(mockView.display) doReturn null
357
393
358
394
// When
359
395
val isOnSecondaryDisplay = testViewUtilsInternal.isOnSecondaryDisplay(mockView)
0 commit comments