From 9e83edcac564eec7db0c7ad17e29d4733480d30a Mon Sep 17 00:00:00 2001 From: mihai-adrian Date: Wed, 4 Sep 2019 16:54:14 +0300 Subject: [PATCH] For #4877: Restored logic for closing tabs when not on browserFragment Added base test for CreateCollectionFragment that we can build upon later --- app/build.gradle | 2 + .../CreateCollectionFragmentTest.kt | 51 +++++++++++++++++++ buildSrc/src/main/java/Dependencies.kt | 2 + 3 files changed, 55 insertions(+) create mode 100644 app/src/test/java/org/mozilla/fenix/collections/CreateCollectionFragmentTest.kt diff --git a/app/build.gradle b/app/build.gradle index f98c5ecf3..9e5b278a0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -450,6 +450,8 @@ dependencies { androidTestImplementation Deps.androidx_test_core androidTestImplementation Deps.espresso_idling_resources + debugImplementation Deps.androidx_fragment_testing + androidTestImplementation Deps.tools_test_runner androidTestImplementation Deps.tools_test_rules diff --git a/app/src/test/java/org/mozilla/fenix/collections/CreateCollectionFragmentTest.kt b/app/src/test/java/org/mozilla/fenix/collections/CreateCollectionFragmentTest.kt new file mode 100644 index 000000000..0e6be8d9b --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/collections/CreateCollectionFragmentTest.kt @@ -0,0 +1,51 @@ +package org.mozilla.fenix.collections + +import androidx.fragment.app.testing.FragmentScenario +import androidx.fragment.app.testing.launchFragment +import androidx.test.ext.junit.runners.AndroidJUnit4 +import assertk.assertThat +import assertk.assertions.isNotNull +import assertk.assertions.isNull +import assertk.assertions.isTrue +import kotlinx.coroutines.ObsoleteCoroutinesApi +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mozilla.fenix.TestApplication + +import org.robolectric.annotation.Config + +@ObsoleteCoroutinesApi +@RunWith(AndroidJUnit4::class) +@Config(application = TestApplication::class) +class CreateCollectionFragmentTest { + + private lateinit var scenario: FragmentScenario + + @Before + fun setUp() { + scenario = launchFragment() + } + @Test + fun `fragment is loading`() { + assertThat(scenario).isNotNull() + } + + @Test + fun `fragment is recreating`() { + scenario.recreate() + assertThat(scenario).isNotNull() + } + + @Test + fun `creation dialog shows and can be dismissed`() { + with(scenario) { + onFragment { fragment -> + assertThat(fragment.dialog).isNotNull() + assertThat(fragment.requireDialog().isShowing).isTrue() + fragment.dismiss() + assertThat(fragment.dialog).isNull() + } + } + } +} diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index a04830429..cf35d6d07 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -64,6 +64,7 @@ object Versions { const val robolectric = "4.2" const val google_ads_id_version = "16.0.0" + const val androidx_fragment_testing_version = "1.2.0-alpha02" } @Suppress("unused") @@ -215,4 +216,5 @@ object Deps { const val fenix_megazord_forUnitTests = "org.mozilla.appservices:fenix-megazord-forUnitTests:${Versions.mozilla_appservices}" const val google_ads_id = "com.google.android.gms:play-services-ads-identifier:${Versions.google_ads_id_version}" + const val androidx_fragment_testing = "androidx.fragment:fragment-testing:${Versions.androidx_fragment_testing_version}" }