Skip to content

Commit b355f63

Browse files
authored
Merge pull request #20315 from wordpress-mobile/andy/fix-stats-ui-test
[Stats] Fixed broken Stats UI tests.
2 parents f6ae416 + 6c461e5 commit b355f63

File tree

4 files changed

+24
-25
lines changed

4 files changed

+24
-25
lines changed

WordPress/src/androidTest/java/org/wordpress/android/e2e/StatsTests.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import dagger.hilt.android.testing.HiltAndroidTest
66
import org.junit.After
77
import org.junit.Assume.assumeTrue
88
import org.junit.Before
9-
import org.junit.Ignore
109
import org.junit.Test
1110
import org.wordpress.android.BuildConfig
1211
import org.wordpress.android.R
@@ -22,9 +21,7 @@ import org.wordpress.android.util.StatsVisitsData
2221
class StatsTests : BaseTest() {
2322
@Before
2423
fun setUp() {
25-
// We're not running Stats tests for JP.
26-
// See https://github.com/wordpress-mobile/WordPress-Android/issues/18065
27-
assumeTrue(!BuildConfig.IS_JETPACK_APP)
24+
assumeTrue(BuildConfig.IS_JETPACK_APP)
2825
ComposeEspressoLink().unregister()
2926
logoutIfNecessary()
3027
wpLogin()
@@ -38,8 +35,7 @@ class StatsTests : BaseTest() {
3835
Espresso.pressBack()
3936
}
4037
}
41-
42-
@Ignore("Will be taken care of in a future PR - scrollToPosts is not working")
38+
4339
@Test
4440
fun e2eAllDayStatsLoad() {
4541
val todayVisits = StatsVisitsData("97", "28", "14", "11")

WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/MySitesPage.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ class MySitesPage {
149149
val statsButton = Espresso.onView(
150150
Matchers.allOf(
151151
ViewMatchers.withText(R.string.stats),
152-
ViewMatchers.withId(R.id.my_site_item_primary_text)
152+
ViewMatchers.withId(R.id.quick_link_item)
153153
)
154154
)
155155
WPSupportUtils.clickOn(statsButton)
@@ -158,7 +158,7 @@ class MySitesPage {
158158
WPSupportUtils.waitForElementToBeDisplayedWithoutFailure(R.id.tabLayout)
159159

160160
// Wait for the stats to load
161-
WPSupportUtils.idleFor(8000)
161+
WPSupportUtils.idleFor(4000)
162162
return StatsPage()
163163
}
164164

WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/StatsPage.kt

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package org.wordpress.android.e2e.pages
22

3+
import androidx.recyclerview.widget.RecyclerView.ViewHolder
34
import androidx.test.espresso.Espresso
45
import androidx.test.espresso.action.ViewActions
56
import androidx.test.espresso.assertion.ViewAssertions
7+
import androidx.test.espresso.contrib.RecyclerViewActions
68
import androidx.test.espresso.matcher.ViewMatchers
79
import org.hamcrest.Matchers
810
import org.wordpress.android.R
911
import org.wordpress.android.support.WPSupportUtils
12+
import org.wordpress.android.ui.stats.refresh.lists.StatsListViewModel
1013
import org.wordpress.android.util.StatsKeyValueData
1114
import org.wordpress.android.util.StatsVisitsData
1215

@@ -31,37 +34,37 @@ class StatsPage {
3134
}
3235

3336
fun scrollToPosts(): StatsPage {
34-
scrollToCard("Posts and Pages")
37+
scrollToCard(1, StatsListViewModel.StatsSection.DAYS)
3538
return this
3639
}
3740

3841
fun scrollToReferrers(): StatsPage {
39-
scrollToCard("Referrers")
42+
scrollToCard(2, StatsListViewModel.StatsSection.DAYS)
4043
return this
4144
}
4245

4346
fun scrollToClicks(): StatsPage {
44-
scrollToCard("Clicks")
47+
scrollToCard(3, StatsListViewModel.StatsSection.DAYS)
4548
return this
4649
}
4750

4851
fun scrollToAuthors(): StatsPage {
49-
scrollToCard("Authors")
52+
scrollToCard(4, StatsListViewModel.StatsSection.DAYS)
5053
return this
5154
}
5255

5356
fun scrollToCountries(): StatsPage {
54-
scrollToCard("Countries")
57+
scrollToCard(5, StatsListViewModel.StatsSection.DAYS)
5558
return this
5659
}
5760

5861
fun scrollToVideos(): StatsPage {
59-
scrollToCard("Videos")
62+
scrollToCard(7, StatsListViewModel.StatsSection.DAYS)
6063
return this
6164
}
6265

6366
fun scrollToFileDownloads(): StatsPage {
64-
scrollToCard("File downloads")
67+
scrollToCard(8, StatsListViewModel.StatsSection.DAYS)
6568
return this
6669
}
6770

@@ -96,7 +99,7 @@ class StatsPage {
9699
)
97100
)
98101
)
99-
cardStructure.check(ViewAssertions.matches(ViewMatchers.isCompletelyDisplayed()))
102+
cardStructure.check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
100103
return this
101104
}
102105

@@ -121,7 +124,7 @@ class StatsPage {
121124
)
122125
)
123126
)
124-
cardStructure.check(ViewAssertions.matches(ViewMatchers.isCompletelyDisplayed()))
127+
cardStructure.check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
125128
}
126129
}
127130

@@ -160,15 +163,14 @@ class StatsPage {
160163
return this
161164
}
162165

163-
private fun scrollToCard(cardHeader: String) {
164-
val card = Espresso.onView(
165-
Matchers.allOf(
166-
ViewMatchers.isDescendantOfA(visibleCoordinatorLayout),
167-
ViewMatchers.withId(R.id.stats_block_list),
168-
ViewMatchers.hasDescendant(ViewMatchers.withText(cardHeader))
169-
)
166+
private fun scrollToCard(viewholderPosition: Int, section: StatsListViewModel.StatsSection) {
167+
WPSupportUtils.idleFor(2000)
168+
Espresso.onView(Matchers.allOf(
169+
ViewMatchers.withTagValue(Matchers.`is`(section.name))
170+
)).perform(
171+
RecyclerViewActions.scrollToPosition<ViewHolder>(viewholderPosition)
170172
)
171-
WPSupportUtils.scrollIntoView(R.id.statsPager, card, 0.5.toFloat())
173+
WPSupportUtils.idleFor(2000)
172174
}
173175

174176
companion object {

WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/StatsListFragment.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ class StatsListFragment : ViewPagerFragment(R.layout.stats_list_fragment) {
128128
}
129129

130130
this@StatsListFragment.layoutManager = layoutManager
131+
this.recyclerView.tag = statsSection.name
131132
recyclerView.layoutManager = this@StatsListFragment.layoutManager
132133
recyclerView.addItemDecoration(
133134
StatsListItemDecoration(

0 commit comments

Comments
 (0)