Migrated Media Package to View Binding (#5601)

* Migrated Media Detail Fragment to View Binding
* Migrated ZoomableActivity and PagerFragment
* Improved Java doc
* Improved Java doc
This commit is contained in:
Shashank Kumar 2024-03-21 06:59:07 +05:30 committed by GitHub
parent 8df0055a5a
commit 7e9aa5b72a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 178 additions and 284 deletions

View file

@ -28,6 +28,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.FragmentMediaDetailBinding
import fr.free.nrw.commons.delete.DeleteHelper
import fr.free.nrw.commons.delete.ReasonBuilder
import fr.free.nrw.commons.explore.SearchActivity
@ -65,7 +66,6 @@ class MediaDetailFragmentUnitTests {
private lateinit var fragment: MediaDetailFragment
private lateinit var fragmentManager: FragmentManager
private lateinit var layoutInflater: LayoutInflater
private lateinit var view: View
private lateinit var context: Context
@Mock
@ -148,6 +148,8 @@ class MediaDetailFragmentUnitTests {
@Mock
private lateinit var mockSharedPreferencesEditor: SharedPreferences.Editor
private lateinit var binding: FragmentMediaDetailBinding
@Before
fun setUp() {
@ -170,14 +172,12 @@ class MediaDetailFragmentUnitTests {
layoutInflater = LayoutInflater.from(activity)
view = LayoutInflater.from(activity)
.inflate(R.layout.fragment_media_detail, null) as View
binding = FragmentMediaDetailBinding.inflate(layoutInflater)
scrollView = view.findViewById(R.id.mediaDetailScrollView)
Whitebox.setInternalState(fragment, "scrollView", scrollView)
scrollView = binding.mediaDetailScrollView
progressBarDeletion = view.findViewById(R.id.progressBarDeletion)
delete = view.findViewById(R.id.nominateDeletion)
progressBarDeletion = binding.progressBarDeletion
delete = binding.nominateDeletion
Whitebox.setInternalState(fragment, "media", media)
Whitebox.setInternalState(fragment, "isDeleted", isDeleted)
@ -185,34 +185,13 @@ class MediaDetailFragmentUnitTests {
Whitebox.setInternalState(fragment, "reasonListEnglishMappings", reasonListEnglishMappings)
Whitebox.setInternalState(fragment, "reasonBuilder", reasonBuilder)
Whitebox.setInternalState(fragment, "deleteHelper", deleteHelper)
Whitebox.setInternalState(fragment, "progressBar", progressBar)
Whitebox.setInternalState(fragment, "progressBarEditDescription", progressBar)
Whitebox.setInternalState(fragment, "captionsListView", listView)
Whitebox.setInternalState(fragment, "descriptionWebView", webView)
Whitebox.setInternalState(fragment, "binding", binding)
Whitebox.setInternalState(fragment, "detailProvider", detailProvider)
Whitebox.setInternalState(fragment, "image", simpleDraweeView)
Whitebox.setInternalState(fragment, "title", textView)
Whitebox.setInternalState(fragment, "toDoReason", textView)
Whitebox.setInternalState(fragment, "desc", htmlTextView)
Whitebox.setInternalState(fragment, "license", textView)
Whitebox.setInternalState(fragment, "coordinates", textView)
Whitebox.setInternalState(fragment, "seeMore", textView)
Whitebox.setInternalState(fragment, "uploadedDate", textView)
Whitebox.setInternalState(fragment, "mediaCaption", textView)
Whitebox.setInternalState(fragment, "captionLayout", linearLayout)
Whitebox.setInternalState(fragment, "depictsLayout", linearLayout)
Whitebox.setInternalState(fragment, "delete", delete)
Whitebox.setInternalState(fragment, "depictionContainer", linearLayout)
Whitebox.setInternalState(fragment, "toDoLayout", linearLayout)
Whitebox.setInternalState(fragment, "authorLayout", linearLayout)
Whitebox.setInternalState(fragment, "showCaptionAndDescriptionContainer", linearLayout)
Whitebox.setInternalState(fragment, "editDescription", button)
Whitebox.setInternalState(fragment, "depictEditButton", button)
Whitebox.setInternalState(fragment, "categoryEditButton", button)
Whitebox.setInternalState(fragment, "categoryContainer", linearLayout)
Whitebox.setInternalState(fragment, "progressBarDeletion", progressBarDeletion)
Whitebox.setInternalState(fragment, "progressBarEditCategory", progressBarDeletion)
Whitebox.setInternalState(fragment, "mediaDiscussion", textView)
Whitebox.setInternalState(binding, "mediaDetailImageView", simpleDraweeView)
Whitebox.setInternalState(binding, "mediaDetailTitle", textView)
Whitebox.setInternalState(binding, "mediaDetailDepictionContainer", linearLayout)
Whitebox.setInternalState(binding, "dummyCaptionDescriptionContainer", linearLayout)
Whitebox.setInternalState(binding, "depictionsEditButton", button)
Whitebox.setInternalState(fragment, "locationManager", locationManager)
`when`(simpleDraweeView.hierarchy).thenReturn(genericDraweeHierarchy)
@ -267,7 +246,7 @@ class MediaDetailFragmentUnitTests {
@Throws(Exception::class)
fun testLaunchZoomActivity() {
`when`(media.imageUrl).thenReturn("")
fragment.launchZoomActivity(view)
fragment.launchZoomActivity(binding.root)
}
@Test

View file

@ -21,6 +21,7 @@ import fr.free.nrw.commons.OkHttpConnectionFactory
import fr.free.nrw.commons.TestCommonsApplication
import fr.free.nrw.commons.createTestClient
import fr.free.nrw.commons.auth.SessionManager
import fr.free.nrw.commons.databinding.FragmentMediaDetailPagerBinding
import fr.free.nrw.commons.explore.SearchActivity
import io.reactivex.android.plugins.RxAndroidPlugins
import io.reactivex.plugins.RxJavaPlugins
@ -33,6 +34,7 @@ import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
import org.powermock.reflect.Whitebox
import org.robolectric.Robolectric
import org.robolectric.RobolectricTestRunner
import org.robolectric.Shadows
@ -50,6 +52,8 @@ class MediaDetailPagerFragmentUnitTests {
private lateinit var context: Context
private lateinit var fragmentManager: FragmentManager
private lateinit var binding: FragmentMediaDetailPagerBinding
@Mock
private lateinit var outState: Bundle
@ -84,8 +88,8 @@ class MediaDetailPagerFragmentUnitTests {
Fresco.initialize(context)
val activity = Robolectric.buildActivity(SearchActivity::class.java).create().get()
binding = FragmentMediaDetailPagerBinding.inflate(activity.layoutInflater)
fragment = MediaDetailPagerFragment.newInstance(false, true)
fragment = MediaDetailPagerFragment.newInstance(false, false)
fragmentManager = activity.supportFragmentManager
val fragmentTransaction: FragmentTransaction = fragmentManager.beginTransaction()
@ -97,6 +101,8 @@ class MediaDetailPagerFragmentUnitTests {
fieldContext.isAccessible = true
fieldContext.set(sessionManager, context)
Whitebox.setInternalState(fragment, "binding", binding)
doReturn(menuItem).`when`(menu).findItem(any())
doReturn(menuItem).`when`(menuItem).isEnabled = any()
doReturn(menuItem).`when`(menuItem).isVisible = any()
@ -263,4 +269,4 @@ class MediaDetailPagerFragmentUnitTests {
verify(menuItem, never()).isEnabled = true
verify(menuItem, never()).isVisible = true
}
}
}