Skip to content

Commit 2d29fbe

Browse files
Fix Failing Tests in DescriptionEditActivityUnitTest (commons-app#5685)
* initial commit * Fix No Precise Message After Clicking Review Buttons * Fix For ThanksClient * Fix For Depictions * Fix For Categories * Fix For Description & Coordinates * Fix For Description & Coordinates * Fix For Description & Coordinates * Fix For Mark as Read notifications * resolve conflicts * fix merge conflicts * fix tests * fix tests * fix tests * fix tests
1 parent a595500 commit 2d29fbe

File tree

3 files changed

+62
-30
lines changed

3 files changed

+62
-30
lines changed

app/src/main/java/fr/free/nrw/commons/description/DescriptionEditActivity.kt

Lines changed: 60 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package fr.free.nrw.commons.description
22

3+
34
import android.app.ProgressDialog
45
import android.content.Intent
56
import android.os.Bundle
@@ -8,8 +9,11 @@ import android.speech.RecognizerIntent
89
import android.view.View
910
import androidx.recyclerview.widget.LinearLayoutManager
1011
import androidx.recyclerview.widget.RecyclerView
12+
import fr.free.nrw.commons.CommonsApplication
1113
import fr.free.nrw.commons.Media
1214
import fr.free.nrw.commons.R
15+
import fr.free.nrw.commons.auth.SessionManager
16+
import fr.free.nrw.commons.auth.csrf.InvalidLoginTokenException
1317
import fr.free.nrw.commons.databinding.ActivityDescriptionEditBinding
1418
import fr.free.nrw.commons.description.EditDescriptionConstants.LIST_OF_DESCRIPTION_AND_CAPTION
1519
import fr.free.nrw.commons.description.EditDescriptionConstants.WIKITEXT
@@ -25,6 +29,7 @@ import io.reactivex.schedulers.Schedulers
2529
import timber.log.Timber
2630
import javax.inject.Inject
2731

32+
2833
/**
2934
* Activity for populating and editing existing description and caption
3035
*/
@@ -71,6 +76,9 @@ class DescriptionEditActivity : BaseActivity(), UploadMediaDetailAdapter.EventLi
7176

7277
@Inject lateinit var descriptionEditHelper: DescriptionEditHelper
7378

79+
@Inject lateinit var sessionManager: SessionManager
80+
81+
7482
override fun onCreate(savedInstanceState: Bundle?) {
7583
super.onCreate(savedInstanceState)
7684

@@ -196,32 +204,64 @@ class DescriptionEditActivity : BaseActivity(), UploadMediaDetailAdapter.EventLi
196204
* @param uploadMediaDetails descriptions and captions
197205
*/
198206
private fun editDescription(media : Media, updatedWikiText : String, uploadMediaDetails : ArrayList<UploadMediaDetail>){
199-
descriptionEditHelper?.addDescription(
200-
applicationContext, media,
201-
updatedWikiText
202-
)
203-
?.subscribeOn(Schedulers.io())
204-
?.observeOn(AndroidSchedulers.mainThread())
205-
?.subscribe(Consumer<Boolean> { s: Boolean? -> Timber.d("Descriptions are added.") })?.let {
206-
compositeDisposable.add(
207-
it
207+
208+
try {
209+
descriptionEditHelper?.addDescription(
210+
applicationContext, media,
211+
updatedWikiText
212+
)
213+
?.subscribeOn(Schedulers.io())
214+
?.observeOn(AndroidSchedulers.mainThread())
215+
?.subscribe(Consumer<Boolean> { s: Boolean? -> Timber.d("Descriptions are added.") })?.let {
216+
compositeDisposable.add(
217+
it
218+
)
219+
}
220+
} catch (e : InvalidLoginTokenException) {
221+
val username: String? = sessionManager?.userName
222+
val logoutListener = CommonsApplication.BaseLogoutListener(
223+
this,
224+
getString(R.string.invalid_login_message),
225+
username
208226
)
227+
228+
val commonsApplication = CommonsApplication.getInstance()
229+
if (commonsApplication != null ){
230+
commonsApplication.clearApplicationData(this,logoutListener)
209231
}
232+
}
233+
210234

211235
val updatedCaptions = LinkedHashMap<String, String>()
212236
for (mediaDetail in uploadMediaDetails) {
213-
compositeDisposable.add(
214-
descriptionEditHelper!!.addCaption(
215-
applicationContext, media,
216-
mediaDetail.languageCode, mediaDetail.captionText
237+
try {
238+
compositeDisposable.add(
239+
descriptionEditHelper!!.addCaption(
240+
applicationContext, media,
241+
mediaDetail.languageCode, mediaDetail.captionText
242+
)
243+
.subscribeOn(Schedulers.io())
244+
.observeOn(AndroidSchedulers.mainThread())
245+
.subscribe { s: Boolean? ->
246+
updatedCaptions[mediaDetail.languageCode!!] = mediaDetail.captionText
247+
media.captions = updatedCaptions
248+
Timber.d("Caption is added.")
249+
})
250+
}
251+
catch (e : InvalidLoginTokenException) {
252+
val username = sessionManager.userName
253+
val logoutListener = CommonsApplication.BaseLogoutListener(
254+
this,
255+
getString(R.string.invalid_login_message),
256+
username
217257
)
218-
.subscribeOn(Schedulers.io())
219-
.observeOn(AndroidSchedulers.mainThread())
220-
.subscribe { s: Boolean? ->
221-
updatedCaptions[mediaDetail.languageCode!!] = mediaDetail.captionText
222-
media.captions = updatedCaptions
223-
Timber.d("Caption is added.")
224-
})
258+
259+
val commonsApplication = CommonsApplication.getInstance()
260+
if (commonsApplication != null ){
261+
commonsApplication.clearApplicationData(this,logoutListener)
262+
}
263+
}
264+
225265
}
226266
}
227267

app/src/main/res/values-yue-hant/error.xml

Lines changed: 0 additions & 9 deletions
This file was deleted.

app/src/test/kotlin/fr/free/nrw/commons/description/DescriptionEditActivityUnitTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import org.mockito.MockitoAnnotations
3232
import org.powermock.reflect.Whitebox
3333
import org.robolectric.Robolectric
3434
import org.robolectric.RobolectricTestRunner
35+
import org.robolectric.RuntimeEnvironment
3536
import org.robolectric.Shadows
3637
import org.robolectric.annotation.Config
3738
import org.robolectric.annotation.LooperMode
@@ -62,7 +63,7 @@ class DescriptionEditActivityUnitTest {
6263
@Throws(Exception::class)
6364
fun setUp() {
6465
MockitoAnnotations.initMocks(this)
65-
context = ApplicationProvider.getApplicationContext()
66+
context = RuntimeEnvironment.getApplication().applicationContext
6667
uploadMediaDetails = mutableListOf(UploadMediaDetail("en", "desc"))
6768
as ArrayList<UploadMediaDetail>
6869
media = Media("filename", "creator", "url", "thumburl",

0 commit comments

Comments
 (0)