From a7765dc1e6172a4b9a296c9788ebfa3be02ee230 Mon Sep 17 00:00:00 2001 From: Andrey Epin Date: Tue, 12 Sep 2023 19:48:47 -0700 Subject: PreviewDataProvider to close content resolver's cursors Fix: 300182416 Test: atest IntentResolverUnitTests:PreviewDataProviderTest Change-Id: If4ee654683ed3e58001c6c07840d86dc2e24a5fc --- .../contentpreview/PreviewDataProviderTest.kt | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'java/tests') diff --git a/java/tests/src/com/android/intentresolver/contentpreview/PreviewDataProviderTest.kt b/java/tests/src/com/android/intentresolver/contentpreview/PreviewDataProviderTest.kt index 6599baa9..4a8c1392 100644 --- a/java/tests/src/com/android/intentresolver/contentpreview/PreviewDataProviderTest.kt +++ b/java/tests/src/com/android/intentresolver/contentpreview/PreviewDataProviderTest.kt @@ -192,8 +192,9 @@ class PreviewDataProviderTest { val uri = Uri.parse("content://org.pkg.app/test.pdf") val targetIntent = Intent(Intent.ACTION_SEND).apply { putExtra(Intent.EXTRA_STREAM, uri) } whenever(contentResolver.getType(uri)).thenReturn("application/pdf") - whenever(contentResolver.query(uri, METADATA_COLUMNS, null, null)) - .thenReturn(MatrixCursor(columns).apply { addRow(values) }) + val cursor = MatrixCursor(columns).apply { addRow(values) } + whenever(contentResolver.query(uri, METADATA_COLUMNS, null, null)).thenReturn(cursor) + val testSubject = PreviewDataProvider(testScope, targetIntent, contentResolver, mimeTypeClassifier) @@ -202,6 +203,23 @@ class PreviewDataProviderTest { assertThat(testSubject.firstFileInfo?.uri).isEqualTo(uri) assertThat(testSubject.firstFileInfo?.previewUri).isNotNull() verify(contentResolver, times(1)).getType(any()) + assertThat(cursor.isClosed).isTrue() + } + + @Test + fun test_emptyQueryResult_cursorGetsClosed() { + val uri = Uri.parse("content://org.pkg.app/test.pdf") + val targetIntent = Intent(Intent.ACTION_SEND).apply { putExtra(Intent.EXTRA_STREAM, uri) } + whenever(contentResolver.getType(uri)).thenReturn("application/pdf") + val cursor = MatrixCursor(emptyArray()) + whenever(contentResolver.query(uri, METADATA_COLUMNS, null, null)).thenReturn(cursor) + + val testSubject = + PreviewDataProvider(testScope, targetIntent, contentResolver, mimeTypeClassifier) + + assertThat(testSubject.previewType).isEqualTo(ContentPreviewType.CONTENT_PREVIEW_FILE) + verify(contentResolver, times(1)).query(uri, METADATA_COLUMNS, null, null) + assertThat(cursor.isClosed).isTrue() } @Test -- cgit v1.2.3-59-g8ed1b