tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit f9a3a71076fe19c848b8a519c6dec8239d5d6ec8
parent 90871b0071ba0beb8acf9cacf5260b50b7834536
Author: mcarare <48995920+mcarare@users.noreply.github.com>
Date:   Thu,  8 Jan 2026 10:39:38 +0000

Bug 2008014- Update ThumbnailStorageTest to use StandardTestDispatcher and runTest. r=android-reviewers,giorga

Differential Revision: https://phabricator.services.mozilla.com/D277862

Diffstat:
Mmobile/android/android-components/components/browser/thumbnails/src/test/java/mozilla/components/browser/thumbnails/storage/ThumbnailStorageTest.kt | 48+++++++++++++++++++++++++++---------------------
1 file changed, 27 insertions(+), 21 deletions(-)

diff --git a/mobile/android/android-components/components/browser/thumbnails/src/test/java/mozilla/components/browser/thumbnails/storage/ThumbnailStorageTest.kt b/mobile/android/android-components/components/browser/thumbnails/src/test/java/mozilla/components/browser/thumbnails/storage/ThumbnailStorageTest.kt @@ -7,19 +7,17 @@ package mozilla.components.browser.thumbnails.storage import android.graphics.Bitmap import androidx.test.ext.junit.runners.AndroidJUnit4 import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.runTest import mozilla.components.concept.base.images.ImageLoadRequest import mozilla.components.concept.base.images.ImageSaveRequest -import mozilla.components.support.test.ext.joinBlocking import mozilla.components.support.test.mock import mozilla.components.support.test.robolectric.testContext -import mozilla.components.support.test.rule.MainCoroutineRule -import mozilla.components.support.test.rule.runTestOnMain import org.junit.After import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull import org.junit.Assert.assertNull import org.junit.Before -import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito.spy @@ -28,9 +26,7 @@ import org.mockito.Mockito.`when` @RunWith(AndroidJUnit4::class) class ThumbnailStorageTest { - @get:Rule - val coroutinesTestRule = MainCoroutineRule() - private val testDispatcher = coroutinesTestRule.testDispatcher + private val testDispatcher = StandardTestDispatcher() @Before @After @@ -40,18 +36,23 @@ class ThumbnailStorageTest { } @Test - fun `clearThumbnails`() = runTestOnMain { + fun clearThumbnails() = runTest(testDispatcher) { val bitmap: Bitmap = mock() val thumbnailStorage = spy(ThumbnailStorage(testContext, testDispatcher)) - thumbnailStorage.saveThumbnail(ImageSaveRequest("test-tab1", false), bitmap).joinBlocking() - thumbnailStorage.saveThumbnail(ImageSaveRequest("test-tab2", false), bitmap).joinBlocking() + thumbnailStorage.saveThumbnail(ImageSaveRequest("test-tab1", false), bitmap) + testDispatcher.scheduler.advanceUntilIdle() + + thumbnailStorage.saveThumbnail(ImageSaveRequest("test-tab2", false), bitmap) + testDispatcher.scheduler.advanceUntilIdle() + var thumbnail1 = thumbnailStorage.loadThumbnail(ImageLoadRequest("test-tab1", 100, false)).await() var thumbnail2 = thumbnailStorage.loadThumbnail(ImageLoadRequest("test-tab2", 100, false)).await() assertNotNull(thumbnail1) assertNotNull(thumbnail2) thumbnailStorage.clearThumbnails() + testDispatcher.scheduler.advanceUntilIdle() thumbnail1 = thumbnailStorage.loadThumbnail(ImageLoadRequest("test-tab1", 100, false)).await() thumbnail2 = thumbnailStorage.loadThumbnail(ImageLoadRequest("test-tab2", 100, false)).await() assertNull(thumbnail1) @@ -59,50 +60,55 @@ class ThumbnailStorageTest { } @Test - fun `deleteThumbnail`() = runTestOnMain { + fun deleteThumbnail() = runTest(testDispatcher) { val request = ImageSaveRequest("test-tab1", false) val bitmap: Bitmap = mock() val thumbnailStorage = spy(ThumbnailStorage(testContext, testDispatcher)) - thumbnailStorage.saveThumbnail(request, bitmap).joinBlocking() + thumbnailStorage.saveThumbnail(request, bitmap) var thumbnail = thumbnailStorage.loadThumbnail(ImageLoadRequest(request.id, 100, request.isPrivate)).await() assertNotNull(thumbnail) - thumbnailStorage.deleteThumbnail(request.id, request.isPrivate).joinBlocking() + thumbnailStorage.deleteThumbnail(request.id, request.isPrivate) thumbnail = thumbnailStorage.loadThumbnail(ImageLoadRequest(request.id, 100, request.isPrivate)).await() assertNull(thumbnail) } @Test - fun `saveThumbnail`() = runTestOnMain { + fun saveThumbnail() = runTest(testDispatcher) { val request = ImageLoadRequest("test-tab1", 100, false) val bitmap: Bitmap = mock() - val thumbnailStorage = spy(ThumbnailStorage(testContext)) + val thumbnailStorage = spy(ThumbnailStorage(testContext, testDispatcher)) var thumbnail = thumbnailStorage.loadThumbnail(request).await() assertNull(thumbnail) - thumbnailStorage.saveThumbnail(ImageSaveRequest(request.id, request.isPrivate), bitmap).joinBlocking() + thumbnailStorage.saveThumbnail(ImageSaveRequest(request.id, request.isPrivate), bitmap) + testDispatcher.scheduler.advanceUntilIdle() + thumbnail = thumbnailStorage.loadThumbnail(request).await() assertNotNull(thumbnail) } @Test - fun `WHEN private save request THEN placed in private cache`() = runTestOnMain { + fun `WHEN private save request THEN placed in private cache`() = runTest(testDispatcher) { val request = ImageLoadRequest("test-tab1", 100, true) val bitmap: Bitmap = mock() - val thumbnailStorage = spy(ThumbnailStorage(testContext)) + val thumbnailStorage = spy(ThumbnailStorage(testContext, testDispatcher)) var thumbnail = thumbnailStorage.loadThumbnail(request).await() assertNull(thumbnail) - thumbnailStorage.saveThumbnail(ImageSaveRequest(request.id, request.isPrivate), bitmap).joinBlocking() + thumbnailStorage.saveThumbnail(ImageSaveRequest(request.id, request.isPrivate), bitmap) + testDispatcher.scheduler.advanceUntilIdle() + thumbnail = thumbnailStorage.loadThumbnail(request).await() + assertNotNull(thumbnail) } @Test - fun `loadThumbnail`() = runTestOnMain { + fun loadThumbnail() = runTest(testDispatcher) { val request = ImageLoadRequest("test-tab1", 100, false) val bitmap: Bitmap = mock() val thumbnailStorage = spy(ThumbnailStorage(testContext, testDispatcher)) @@ -115,7 +121,7 @@ class ThumbnailStorageTest { } @Test - fun `WHEN private load request THEN loaded from private cache`() = runTestOnMain { + fun `WHEN private load request THEN loaded from private cache`() = runTest(testDispatcher) { val request = ImageLoadRequest("test-tab1", 100, true) val bitmap: Bitmap = mock() val thumbnailStorage = spy(ThumbnailStorage(testContext, testDispatcher))