Closes #12565: Clean up use of Context within ReviewPromptController. (#18537)

upstream-sync
Mihai Adrian Carare 3 years ago committed by GitHub
parent f9a52af98d
commit 79794962d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -8,6 +8,7 @@ import android.app.Application
import android.content.Context
import android.content.Intent
import androidx.core.net.toUri
import com.google.android.play.core.review.ReviewManagerFactory
import mozilla.components.feature.addons.AddonManager
import mozilla.components.feature.addons.amo.AddonCollectionProvider
import mozilla.components.feature.addons.migration.DefaultSupportedAddonsChecker
@ -154,8 +155,8 @@ class Components(private val context: Context) {
val reviewPromptController by lazyMonitored {
ReviewPromptController(
context,
FenixReviewSettings(settings)
manager = ReviewManagerFactory.create(context),
reviewSettings = FenixReviewSettings(settings)
)
}

@ -5,9 +5,8 @@
package org.mozilla.fenix.components
import android.app.Activity
import android.content.Context
import androidx.annotation.VisibleForTesting
import com.google.android.play.core.review.ReviewManagerFactory
import com.google.android.play.core.review.ReviewManager
import kotlinx.coroutines.Dispatchers.Main
import kotlinx.coroutines.withContext
import org.mozilla.fenix.utils.Settings
@ -41,11 +40,10 @@ class FenixReviewSettings(
* Controls the Review Prompt behavior.
*/
class ReviewPromptController(
private val context: Context,
private val manager: ReviewManager,
private val reviewSettings: ReviewSettings,
private val timeNowInMillis: () -> Long = { System.currentTimeMillis() },
private val tryPromptReview: suspend (Activity) -> Unit = { activity ->
val manager = ReviewManagerFactory.create(context)
val flow = manager.requestReviewFlow()
withContext(Main) {

@ -4,6 +4,8 @@
package org.mozilla.fenix.components
import com.google.android.play.core.review.ReviewManager
import com.google.android.play.core.review.ReviewManagerFactory
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.runBlockingTest
import mozilla.components.support.test.robolectric.testContext
@ -11,6 +13,7 @@ import org.junit.Test
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Assert.assertFalse
import org.junit.Before
import org.junit.runner.RunWith
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
@ -27,6 +30,14 @@ class TestReviewSettings(
@ExperimentalCoroutinesApi
@RunWith(FenixRobolectricTestRunner::class)
class ReviewPromptControllerTest {
private lateinit var reviewManager: ReviewManager
@Before
fun setUp() {
reviewManager = ReviewManagerFactory.create(testContext)
}
@Test
fun promptReviewDoesNotSetMillis() = runBlockingTest {
var promptWasCalled = false
@ -37,7 +48,7 @@ class ReviewPromptControllerTest {
)
val controller = ReviewPromptController(
testContext,
reviewManager,
settings,
{ 100L },
{ promptWasCalled = true }
@ -60,7 +71,7 @@ class ReviewPromptControllerTest {
)
val controller = ReviewPromptController(
testContext,
reviewManager,
settings,
{ 100L },
{ promptWasCalled = true }
@ -82,7 +93,7 @@ class ReviewPromptControllerTest {
)
val controller = ReviewPromptController(
testContext,
reviewManager,
settings,
{ 100L },
{ promptWasCalled = true }
@ -102,7 +113,7 @@ class ReviewPromptControllerTest {
)
val controller = ReviewPromptController(
testContext,
reviewManager,
settings,
{ 100L },
{ promptWasCalled = true }
@ -126,7 +137,7 @@ class ReviewPromptControllerTest {
)
val controller = ReviewPromptController(
testContext,
reviewManager,
settings,
{ 0L }
)
@ -149,7 +160,7 @@ class ReviewPromptControllerTest {
)
val controller = ReviewPromptController(
testContext,
reviewManager,
settings,
{ TEST_TIME_NOW }
)

Loading…
Cancel
Save