feat(creator): 라이브 정렬 팝업을 연결한다
This commit is contained in:
@@ -53,10 +53,36 @@ class CreatorChannelLiveFragmentLayoutTest {
|
||||
|
||||
assertNotNull(sortBar.findViewById<TextView>(R.id.tv_creator_channel_live_total_label))
|
||||
assertNotNull(sortBar.findViewById<TextView>(R.id.tv_creator_channel_live_total_count))
|
||||
assertNotNull(sortBar.findViewById<View>(R.id.layout_creator_channel_live_sort_button))
|
||||
assertNotNull(sortBar.findViewById<TextView>(R.id.tv_creator_channel_live_sort_label))
|
||||
assertNotNull(sortBar.findViewById<ImageView>(R.id.iv_creator_channel_live_sort))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `라이브 sort popup layout은 Figma 기준 option row와 선택 배경을 제공한다`() {
|
||||
val popup = inflateView(R.layout.view_creator_channel_live_sort_menu)
|
||||
val popupLayout = projectFile(
|
||||
"app/src/main/res/layout/view_creator_channel_live_sort_menu.xml"
|
||||
).readText()
|
||||
val popupBackground = projectFile(
|
||||
"app/src/main/res/drawable/bg_creator_channel_live_sort_popup.xml"
|
||||
).readText()
|
||||
val selectedBackground = projectFile(
|
||||
"app/src/main/res/drawable/bg_creator_channel_live_sort_selected.xml"
|
||||
).readText()
|
||||
|
||||
assertNotNull(popup.findViewById<View>(R.id.layout_creator_channel_live_sort_options))
|
||||
assertTrue(popupLayout.contains("@drawable/bg_creator_channel_live_sort_popup"))
|
||||
assertTrue(popupLayout.contains("@+id/layout_creator_channel_live_sort_options"))
|
||||
assertTrue(popupLayout.contains("android:paddingHorizontal=\"@dimen/spacing_12\""))
|
||||
assertTrue(popupLayout.contains("android:paddingVertical=\"@dimen/spacing_8\""))
|
||||
assertTrue(popupLayout.contains("android:fontFamily=\"@font/medium\""))
|
||||
assertTrue(popupBackground.contains("android:radius=\"@dimen/radius_14\""))
|
||||
assertTrue(popupBackground.contains("android:color=\"@color/gray_900\""))
|
||||
assertTrue(popupBackground.contains("android:color=\"@color/gray_700\""))
|
||||
assertTrue(selectedBackground.contains("android:color=\"@color/gray_800\""))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `라이브 다시듣기 item layout은 썸네일 tag title duration action 영역을 제공한다`() {
|
||||
val item = inflateView(R.layout.item_creator_channel_live_replay)
|
||||
@@ -139,6 +165,11 @@ class CreatorChannelLiveFragmentLayoutTest {
|
||||
|
||||
assertTrue(layout.contains("android:layout_height=\"match_parent\""))
|
||||
assertTrue(fragment.contains("R.drawable.ic_new_sort"))
|
||||
assertTrue(fragment.contains("CreatorChannelLiveSortPopup"))
|
||||
assertTrue(fragment.contains("layoutCreatorChannelLiveSortButton.setOnClickListener"))
|
||||
assertTrue(fragment.contains("showSortPopup"))
|
||||
assertTrue(fragment.contains("viewModel.changeSort(sort)"))
|
||||
assertTrue(fragment.contains("sortPopup?.dismiss()"))
|
||||
assertTrue(fragment.contains("super.onViewCreated(view, savedInstanceState)\n bindLoading()"))
|
||||
assertTrue(fragment.contains("retryLive()"))
|
||||
assertTrue(fragment.contains("fun onCreatorChannelLiveTabSelected()"))
|
||||
@@ -165,6 +196,24 @@ class CreatorChannelLiveFragmentLayoutTest {
|
||||
assertTrue(adapter.contains("layoutCreatorChannelLiveReplayActionText.isVisible = true"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `라이브 sort popup source는 outside dismiss와 화면 밖 보정 및 같은 정렬 dismiss를 포함한다`() {
|
||||
val popup = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/live/ui/CreatorChannelLiveSortPopup.kt"
|
||||
).readText()
|
||||
|
||||
assertTrue(popup.contains("PopupWindow"))
|
||||
assertTrue(popup.contains("isOutsideTouchable = true"))
|
||||
assertTrue(popup.contains("isFocusable = true"))
|
||||
assertTrue(popup.contains("toSortOptionUiModel"))
|
||||
assertTrue(popup.contains("if (option.sort != selectedSort)"))
|
||||
assertTrue(popup.contains("onSortSelected(option.sort)"))
|
||||
assertTrue(popup.contains("dismiss()"))
|
||||
assertTrue(popup.contains("calculateHorizontalOffset"))
|
||||
assertTrue(popup.contains("visibleDisplayFrame"))
|
||||
assertTrue(popup.contains("showAsDropDown"))
|
||||
}
|
||||
|
||||
private fun inflateView(layoutResId: Int): View {
|
||||
val context = ApplicationProvider.getApplicationContext<Context>()
|
||||
return LayoutInflater.from(context).inflate(layoutResId, null, false)
|
||||
|
||||
Reference in New Issue
Block a user