diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt index 4d9d535d..68b6470c 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt @@ -1339,7 +1339,7 @@ class ComposeActivity : BaseActivity(), private const val MEDIA_TAKE_PHOTO_RESULT = 2 private const val PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 1 - private const val COMPOSE_OPTIONS_EXTRA = "COMPOSE_OPTIONS" + internal const val COMPOSE_OPTIONS_EXTRA = "COMPOSE_OPTIONS" private const val PHOTO_UPLOAD_URI_KEY = "PHOTO_UPLOAD_URI" // Mastodon only counts URLs as this long in terms of status character limits diff --git a/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt b/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt index 6c3e41b9..4669ca96 100644 --- a/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt +++ b/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt @@ -16,6 +16,7 @@ package com.keylesspalace.tusky +import android.content.Intent import android.text.SpannedString import android.widget.EditText import androidx.test.ext.junit.runners.AndroidJUnit4 @@ -77,6 +78,7 @@ class ComposeActivityTest { ) var instanceResponseCallback: (()->Instance)? = null var nodeinfoResponseCallback: (()->NodeInfo)? = null + var composeOptions: ComposeActivity.ComposeOptions? = null @Before fun setupActivity() { @@ -144,6 +146,9 @@ class ComposeActivityTest { mock(SaveTootHelper::class.java), dbMock ) + activity.intent = Intent(activity, ComposeActivity::class.java).apply { + putExtra(ComposeActivity.COMPOSE_OPTIONS_EXTRA, composeOptions) + } val viewModelFactoryMock = mock(ViewModelFactory::class.java) `when`(viewModelFactoryMock.create(ComposeViewModel::class.java)).thenReturn(viewModel) @@ -170,6 +175,14 @@ class ComposeActivityTest { // We would like to check for dialog but Robolectric doesn't work with AppCompat v7 yet } + @Test + fun whenModifiedInitialState_andCloseButtonPressed_notFinish() { + composeOptions = ComposeActivity.ComposeOptions(modifiedInitialState = true) + setupActivity() + clickUp() + assertFalse(activity.isFinishing) + } + @Test fun whenBackButtonPressedAndEmpty_finish() { clickBack() @@ -184,6 +197,14 @@ class ComposeActivityTest { // We would like to check for dialog but Robolectric doesn't work with AppCompat v7 yet } + @Test + fun whenModifiedInitialState_andBackButtonPressed_notFinish() { + composeOptions = ComposeActivity.ComposeOptions(modifiedInitialState = true) + setupActivity() + clickBack() + assertFalse(activity.isFinishing) + } + @Test fun whenMaximumTootCharsIsNull_defaultLimitIsUsed() { instanceResponseCallback = { getInstanceWithMaximumTootCharacters(null) }