diff --git a/app/src/androidTest/java/com/mogo/functions/test/ReminderTest.kt b/app/src/androidTest/java/com/mogo/functions/test/ReminderTest.kt index 725ffc4de2..5cc40a03cc 100644 --- a/app/src/androidTest/java/com/mogo/functions/test/ReminderTest.kt +++ b/app/src/androidTest/java/com/mogo/functions/test/ReminderTest.kt @@ -206,48 +206,48 @@ class ReminderTest { @Test fun testWarningFloatForProject() = runBlocking { - launch.onActivity { - it.lifecycleScope.launchWhenResumed { - for (i in 1..10) { - val notificationView = V2XNotificationView(it) - notificationView.setWarningIcon(EventTypeEnum.getWarningIcon("10003")) - notificationView.setWarningContent("XXXXXX${i}") - WarningFloat.with(it) - .setTag("tag") - .setLayout(notificationView) - .setSidePattern(SidePattern.RESULT_TOP) - .setCountDownTime(5000) - .setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110) - .setImmersionStatusBar(true) - .addWarningStatusListener(object : IMoGoWarningStatusListener { - override fun onShow() { - } - }) - .setAnimator(object : DefaultAnimator() { - override fun enterAnim( - view: View, - params: WindowManager.LayoutParams, - windowManager: WindowManager, - sidePattern: SidePattern - ): Animator? = - super.enterAnim(view, params, windowManager, sidePattern)?.apply { - interpolator = OvershootInterpolator() - } - - override fun exitAnim( - view: View, - params: WindowManager.LayoutParams, - windowManager: WindowManager, - sidePattern: SidePattern - ): Animator? = - super.exitAnim(view, params, windowManager, sidePattern)?.setDuration(200) - }) - .show() - delay(2000) - } - } - } - delay(TimeUnit.SECONDS.toMillis(100)) +// launch.onActivity { +// it.lifecycleScope.launchWhenResumed { +// for (i in 1..10) { +// val notificationView = V2XNotificationView(it) +// notificationView.setWarningIcon(EventTypeEnum.getWarningIcon("10003")) +// notificationView.setWarningContent("XXXXXX${i}") +// WarningFloat.with(it) +// .setTag("tag") +// .setLayout(notificationView) +// .setSidePattern(SidePattern.RESULT_TOP) +// .setCountDownTime(5000) +// .setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110) +// .setImmersionStatusBar(true) +// .addWarningStatusListener(object : IMoGoWarningStatusListener { +// override fun onShow() { +// } +// }) +// .setAnimator(object : DefaultAnimator() { +// override fun enterAnim( +// view: View, +// params: WindowManager.LayoutParams, +// windowManager: WindowManager, +// sidePattern: SidePattern +// ): Animator? = +// super.enterAnim(view, params, windowManager, sidePattern)?.apply { +// interpolator = OvershootInterpolator() +// } +// +// override fun exitAnim( +// view: View, +// params: WindowManager.LayoutParams, +// windowManager: WindowManager, +// sidePattern: SidePattern +// ): Animator? = +// super.exitAnim(view, params, windowManager, sidePattern)?.setDuration(200) +// }) +// .show() +// delay(2000) +// } +// } +// } +// delay(TimeUnit.SECONDS.toMillis(100)) } diff --git a/app/src/androidTest/java/com/mogo/functions/test/RxJavaBackPressureTest.kt b/app/src/androidTest/java/com/mogo/functions/test/RxJavaBackPressureTest.kt new file mode 100644 index 0000000000..679ebda8ab --- /dev/null +++ b/app/src/androidTest/java/com/mogo/functions/test/RxJavaBackPressureTest.kt @@ -0,0 +1,57 @@ +package com.mogo.functions.test + +import android.os.Debug +import android.util.Log +import androidx.test.core.app.ActivityScenario +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.LargeTest +import com.mogo.eagle.core.function.main.MainLauncherActivity +import io.reactivex.Flowable +import io.reactivex.plugins.RxJavaPlugins +import io.reactivex.schedulers.Schedulers +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.delay +import kotlinx.coroutines.runBlocking +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import java.text.SimpleDateFormat +import java.util.* +import java.util.concurrent.TimeUnit +import java.util.concurrent.TimeUnit.MILLISECONDS + +@RunWith(AndroidJUnit4::class) +@LargeTest +class RxJavaBackPressureTest { + + lateinit var launch: ActivityScenario + + @Before + fun before() { + launch = ActivityScenario.launch(MainLauncherActivity::class.java) + RxJavaPlugins.setErrorHandler { + Log.e("RxJava2", it.message, it) + } + } + + @Test + fun testIntervalBackPressure() = runBlocking(Dispatchers.Default) { + val subscription = Flowable.interval(50, MILLISECONDS).doOnNext { + Log.d("RxJava2", "-- do action --") + }.subscribeOn(Schedulers.computation()).observeOn(Schedulers.io()).subscribe { + Thread.sleep(2000) + } + repeat(10) { + delay(TimeUnit.SECONDS.toMillis(5)) + try { + Debug.dumpHprofData(Date().toFileName()) + } catch (t: Throwable) { + t.printStackTrace() + } + } + delay(TimeUnit.HOURS.toMillis(1)) + subscription.dispose() + } + + private fun Date.toFileName(): String = SimpleDateFormat("yyyyMMdd_HH_mm_ss", Locale.getDefault()).format(this) + ".hprof" +} \ No newline at end of file