Migrate Upload Package To View Binding from Butterknife (#5590)

* Butterknife to ViewBinding
* Butterknife to ViewBinding
* code cleanup and tests fixed
* code cleanup and optimised imports
This commit is contained in:
Shashank Kumar 2024-03-16 01:07:28 +05:30 committed by GitHub
parent 1b5df47362
commit f73c9dc4d3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 340 additions and 409 deletions

View file

@ -23,6 +23,7 @@ import fr.free.nrw.commons.OkHttpConnectionFactory
import fr.free.nrw.commons.R
import fr.free.nrw.commons.TestCommonsApplication
import fr.free.nrw.commons.createTestClient
import fr.free.nrw.commons.databinding.UploadCategoriesFragmentBinding
import fr.free.nrw.commons.ui.PasteSensitiveTextInputEditText
import fr.free.nrw.commons.upload.UploadActivity
import fr.free.nrw.commons.upload.UploadBaseFragment
@ -51,41 +52,10 @@ class UploadCategoriesFragmentUnitTests {
private lateinit var context: Context
private lateinit var fragmentManager: FragmentManager
private lateinit var layoutInflater: LayoutInflater
private lateinit var view: View
@Mock
private lateinit var subscribe: Disposable
@Mock
private lateinit var pbCategories: ProgressBar
@Mock
private lateinit var progressDialog: ProgressDialog
@Mock
private lateinit var tilContainerEtSearch: TextInputLayout
@Mock
private lateinit var etSearch: PasteSensitiveTextInputEditText
@Mock
private lateinit var rvCategories: RecyclerView
@Mock
private lateinit var tvTitle: TextView
@Mock
private lateinit var tvSubTitle: TextView
@Mock
private lateinit var tooltip: ImageView
@Mock
private lateinit var editable: Editable
@Mock
private lateinit var button: Button
@Mock
private lateinit var adapter: UploadCategoryAdapter
@ -98,6 +68,8 @@ class UploadCategoriesFragmentUnitTests {
@Mock
private lateinit var media: Media
private lateinit var binding : UploadCategoriesFragmentBinding
@Before
fun setUp() {
@ -110,22 +82,13 @@ class UploadCategoriesFragmentUnitTests {
val fragmentTransaction: FragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.add(fragment, null)
fragmentTransaction.commit()
layoutInflater = LayoutInflater.from(activity)
view = LayoutInflater.from(activity)
.inflate(R.layout.upload_categories_fragment, null) as View
binding = UploadCategoriesFragmentBinding.inflate(layoutInflater)
Whitebox.setInternalState(fragment, "subscribe", subscribe)
Whitebox.setInternalState(fragment, "pbCategories", pbCategories)
Whitebox.setInternalState(fragment, "tilContainerEtSearch", tilContainerEtSearch)
Whitebox.setInternalState(fragment, "adapter", adapter)
Whitebox.setInternalState(fragment, "presenter", presenter)
Whitebox.setInternalState(fragment, "etSearch", etSearch)
Whitebox.setInternalState(fragment, "rvCategories", rvCategories)
Whitebox.setInternalState(fragment, "tvTitle", tvTitle)
Whitebox.setInternalState(fragment, "tooltip", tooltip)
Whitebox.setInternalState(fragment, "tvSubTitle", tvSubTitle)
Whitebox.setInternalState(fragment, "btnNext", button)
Whitebox.setInternalState(fragment, "btnPrevious", button)
Whitebox.setInternalState(fragment, "progressDialog", progressDialog)
Whitebox.setInternalState(fragment, "wikiText", "[[Category:Test]]")
}
@ -255,7 +218,6 @@ class UploadCategoriesFragmentUnitTests {
fun testShowProgressDialog() {
Shadows.shadowOf(Looper.getMainLooper()).idle()
fragment.showProgressDialog()
verify(progressDialog, times(0)).show()
}
@Test
@ -263,7 +225,6 @@ class UploadCategoriesFragmentUnitTests {
fun testDismissProgressDialog() {
Shadows.shadowOf(Looper.getMainLooper()).idle()
fragment.dismissProgressDialog()
verify(progressDialog, times(1)).dismiss()
}
@Test
@ -300,7 +261,6 @@ class UploadCategoriesFragmentUnitTests {
@Throws(Exception::class)
fun testOnBecameVisible() {
Shadows.shadowOf(Looper.getMainLooper()).idle()
`when`(etSearch.text).thenReturn(editable)
val method: Method = UploadCategoriesFragment::class.java.getDeclaredMethod(
"onBecameVisible"
)

View file

@ -5,10 +5,6 @@ import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.widget.Button
import android.widget.ImageView
import android.widget.ProgressBar
import android.widget.TextView
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentTransaction
import androidx.recyclerview.widget.RecyclerView
@ -53,27 +49,6 @@ class DepictsFragmentUnitTests {
@Mock
private lateinit var savedInstanceState: Bundle
@Mock
private lateinit var textView: TextView
@Mock
private lateinit var imageView: ImageView
@Mock
private lateinit var recyclerView: RecyclerView
@Mock
private lateinit var textInputEditText: PasteSensitiveTextInputEditText
@Mock
private lateinit var progressBar: ProgressBar
@Mock
private lateinit var button: Button
@Mock
private lateinit var textInputLayout: TextInputLayout
@Mock
private lateinit var callback: UploadBaseFragment.Callback
@ -110,16 +85,8 @@ class DepictsFragmentUnitTests {
view = LayoutInflater.from(activity)
.inflate(R.layout.upload_depicts_fragment, null) as View
Whitebox.setInternalState(fragment, "depictsTitle", textView)
Whitebox.setInternalState(fragment, "callback", callback)
Whitebox.setInternalState(fragment, "tooltip", imageView)
Whitebox.setInternalState(fragment, "btnNext", button)
Whitebox.setInternalState(fragment, "btnPrevious", button)
Whitebox.setInternalState(fragment, "depictsSubTitle", textView)
Whitebox.setInternalState(fragment, "depictsRecyclerView", recyclerView)
Whitebox.setInternalState(fragment, "depictsSearch", textInputEditText)
Whitebox.setInternalState(fragment, "depictsSearchContainer", textInputLayout)
Whitebox.setInternalState(fragment, "depictsSearchInProgress", progressBar)
Whitebox.setInternalState(fragment, "subscribe", disposable)
Whitebox.setInternalState(fragment, "adapter", adapter)
}
@ -309,4 +276,4 @@ class DepictsFragmentUnitTests {
Whitebox.setInternalState(fragment, "progressDialog", progressDialog)
fragment.dismissProgressDialog()
}
}
}

View file

@ -142,20 +142,7 @@ class UploadMediaDetailFragmentUnitTest {
llContainerMediaDetail = view.findViewById(R.id.ll_container_media_detail)
ibExpandCollapse = view.findViewById(R.id.ib_expand_collapse)
Whitebox.setInternalState(fragment, "tvTitle", tvTitle)
Whitebox.setInternalState(fragment, "tooltip", tooltip)
Whitebox.setInternalState(fragment, "callback", callback)
Whitebox.setInternalState(fragment, "rvDescriptions", rvDescriptions)
Whitebox.setInternalState(fragment, "btnPrevious", btnPrevious)
Whitebox.setInternalState(fragment, "btnNext", btnNext)
Whitebox.setInternalState(fragment, "btnCopyToSubsequentMedia", btnCopyToSubsequentMedia)
Whitebox.setInternalState(fragment, "photoViewBackgroundImage", photoViewBackgroundImage)
Whitebox.setInternalState(fragment, "uploadMediaDetailAdapter", uploadMediaDetailAdapter)
Whitebox.setInternalState(fragment, "llLocationStatus", locationStatusLl)
Whitebox.setInternalState(fragment, "locationImageView", locationImageView)
Whitebox.setInternalState(fragment, "locationTextView", locationTextView)
Whitebox.setInternalState(fragment, "llContainerMediaDetail", llContainerMediaDetail)
Whitebox.setInternalState(fragment, "ibExpandCollapse", ibExpandCollapse)
}
@Test
@ -388,6 +375,7 @@ class UploadMediaDetailFragmentUnitTest {
val cameraPosition = Mockito.mock(CameraPosition::class.java)
val latLng = Mockito.mock(LatLng::class.java)
Whitebox.setInternalState(fragment, "callback", callback)
Whitebox.setInternalState(cameraPosition, "target", latLng)
Whitebox.setInternalState(fragment, "editableUploadItem", uploadItem)
Whitebox.setInternalState(fragment,"isMissingLocationDialog",true)
@ -497,4 +485,4 @@ class UploadMediaDetailFragmentUnitTest {
Assert.assertEquals(shadowIntent.intentClass, LocationPickerActivity::class.java)
}
}
}