Skip to content

Commit 0aa0837

Browse files
committed
move change record actions to recycler
1 parent 437cfe1 commit 0aa0837

File tree

41 files changed

+1597
-1288
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1597
-1288
lines changed

app/src/androidTest/java/com/example/util/simpletimetracker/RecordActionsAdjustTest.kt

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.example.util.simpletimetracker
22

3+
import android.view.View
34
import androidx.test.espresso.Espresso.onView
45
import androidx.test.espresso.ViewInteraction
56
import androidx.test.espresso.action.ViewActions.click
@@ -22,10 +23,11 @@ import com.example.util.simpletimetracker.utils.clickOnView
2223
import com.example.util.simpletimetracker.utils.clickOnViewWithText
2324
import com.example.util.simpletimetracker.utils.getMillis
2425
import com.example.util.simpletimetracker.utils.longClickOnView
25-
import com.example.util.simpletimetracker.utils.nestedScrollTo
26+
import com.example.util.simpletimetracker.utils.scrollRecyclerToView
2627
import dagger.hilt.android.testing.HiltAndroidTest
2728
import kotlinx.coroutines.runBlocking
2829
import org.hamcrest.CoreMatchers.allOf
30+
import org.hamcrest.Matcher
2931
import org.junit.Test
3032
import org.junit.runner.RunWith
3133
import java.util.Calendar
@@ -90,7 +92,7 @@ class RecordActionsAdjustTest : BaseUiTest() {
9092
adjust(isStart = false, buttonText = "+30")
9193
adjust(isStart = false, buttonText = "+30")
9294
clickOnViewWithText(coreR.string.change_record_actions_hint)
93-
onView(withText(coreR.string.change_record_adjust)).perform(nestedScrollTo())
95+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_adjust))
9496
clickOnViewWithText(coreR.string.change_record_adjust)
9597

9698
// Check records
@@ -175,7 +177,7 @@ class RecordActionsAdjustTest : BaseUiTest() {
175177
clickOnViewWithText(coreR.string.change_record_type_field)
176178
clickOnRecyclerItem(changeRecordR.id.rvChangeRecordType, withText(name2))
177179
clickOnViewWithText(coreR.string.change_record_actions_hint)
178-
onView(withText(coreR.string.change_record_adjust)).perform(nestedScrollTo())
180+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_adjust))
179181
clickOnViewWithText(coreR.string.change_record_adjust)
180182

181183
// Check records
@@ -239,7 +241,7 @@ class RecordActionsAdjustTest : BaseUiTest() {
239241
)
240242
clickOnViewWithText("-5")
241243
clickOnViewWithText(coreR.string.change_record_actions_hint)
242-
onView(withText(coreR.string.change_record_adjust)).perform(nestedScrollTo())
244+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_adjust))
243245
clickOnViewWithText(coreR.string.change_record_adjust)
244246

245247
// Check records
@@ -291,7 +293,7 @@ class RecordActionsAdjustTest : BaseUiTest() {
291293
adjust(isStart = false, buttonText = "+30")
292294
adjust(isStart = false, buttonText = "+30")
293295
clickOnViewWithText(coreR.string.change_record_actions_hint)
294-
onView(withText(coreR.string.change_record_adjust)).perform(nestedScrollTo())
296+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_adjust))
295297
clickOnViewWithText(coreR.string.change_record_adjust)
296298

297299
// Check records
@@ -365,37 +367,49 @@ class RecordActionsAdjustTest : BaseUiTest() {
365367
adjust(isStart = false, buttonText = "+30")
366368
adjust(isStart = false, buttonText = "+30")
367369

368-
fun onAdjustPreview(typeName: String): ViewInteraction {
369-
return onView(
370-
allOf(
371-
withId(changeRecordR.id.checkChangeRecordPreviewItem),
372-
hasSibling(
370+
fun previewCheckMatcher(typeName: String): Matcher<View> {
371+
return allOf(
372+
withId(changeRecordR.id.checkChangeRecordPreviewItem),
373+
hasSibling(
374+
allOf(
375+
withId(changeRecordR.id.viewChangeRecordPreviewBefore),
373376
hasDescendant(withText(typeName)),
374377
),
375378
),
376379
)
377380
}
378381

382+
fun onPreviewCheck(typeName: String): ViewInteraction {
383+
return onView(previewCheckMatcher(typeName))
384+
}
385+
386+
fun scrollToView(typeName: String) {
387+
scrollRecyclerToView(
388+
changeRecordR.id.rvChangeRecordAction,
389+
hasDescendant(previewCheckMatcher(typeName)),
390+
)
391+
}
392+
379393
// Deselect
380394
clickOnViewWithText(coreR.string.change_record_actions_hint)
381395

382-
onAdjustPreview(name5).perform(nestedScrollTo())
383-
onAdjustPreview(name5).check(matches(isChecked()))
396+
scrollToView(name5)
397+
onPreviewCheck(name5).check(matches(isChecked()))
384398

385-
onAdjustPreview(name4).perform(nestedScrollTo())
386-
onAdjustPreview(name4).check(matches(isChecked()))
399+
scrollToView(name4)
400+
onPreviewCheck(name4).check(matches(isChecked()))
387401

388-
onAdjustPreview(name2).perform(nestedScrollTo())
389-
onAdjustPreview(name2).check(matches(isChecked()))
390-
onAdjustPreview(name2).perform(click())
391-
onAdjustPreview(name2).check(matches(isNotChecked()))
402+
scrollToView(name2)
403+
onPreviewCheck(name2).check(matches(isChecked()))
404+
onPreviewCheck(name2).perform(click())
405+
onPreviewCheck(name2).check(matches(isNotChecked()))
392406

393-
onAdjustPreview(name1).perform(nestedScrollTo())
394-
onAdjustPreview(name1).check(matches(isChecked()))
395-
onAdjustPreview(name1).perform(click())
396-
onAdjustPreview(name1).check(matches(isNotChecked()))
407+
scrollToView(name1)
408+
onPreviewCheck(name1).check(matches(isChecked()))
409+
onPreviewCheck(name1).perform(click())
410+
onPreviewCheck(name1).check(matches(isNotChecked()))
397411

398-
onView(withText(coreR.string.change_record_adjust)).perform(nestedScrollTo())
412+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_adjust))
399413
clickOnViewWithText(coreR.string.change_record_adjust)
400414

401415
// Check records

app/src/androidTest/java/com/example/util/simpletimetracker/RecordActionsContinueTest.kt

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.example.util.simpletimetracker
22

33
import androidx.test.espresso.Espresso.onView
44
import androidx.test.espresso.Espresso.pressBack
5-
import androidx.test.espresso.action.ViewActions.click
65
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
76
import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
87
import androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA
@@ -13,14 +12,13 @@ import com.example.util.simpletimetracker.utils.BaseUiTest
1312
import com.example.util.simpletimetracker.utils.NavUtils
1413
import com.example.util.simpletimetracker.utils.checkViewDoesNotExist
1514
import com.example.util.simpletimetracker.utils.checkViewIsDisplayed
16-
import com.example.util.simpletimetracker.utils.checkViewIsNotDisplayed
1715
import com.example.util.simpletimetracker.utils.clickOnRecyclerItem
1816
import com.example.util.simpletimetracker.utils.clickOnView
1917
import com.example.util.simpletimetracker.utils.clickOnViewWithId
2018
import com.example.util.simpletimetracker.utils.clickOnViewWithText
2119
import com.example.util.simpletimetracker.utils.longClickOnView
22-
import com.example.util.simpletimetracker.utils.nestedScrollTo
2320
import com.example.util.simpletimetracker.utils.recyclerItemCount
21+
import com.example.util.simpletimetracker.utils.scrollRecyclerToView
2422
import com.example.util.simpletimetracker.utils.tryAction
2523
import com.example.util.simpletimetracker.utils.withCardColor
2624
import com.example.util.simpletimetracker.utils.withTag
@@ -75,7 +73,8 @@ class RecordActionsContinueTest : BaseUiTest() {
7573
// Continue
7674
clickOnViewWithText(fullName)
7775
clickOnViewWithText(coreR.string.change_record_actions_hint)
78-
onView(withText(coreR.string.change_record_continue)).perform(nestedScrollTo(), click())
76+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_continue))
77+
clickOnViewWithText(coreR.string.change_record_continue)
7978

8079
// Check no record
8180
checkViewDoesNotExist(
@@ -122,7 +121,8 @@ class RecordActionsContinueTest : BaseUiTest() {
122121

123122
// Continue untracked doesn't work
124123
clickOnViewWithText(coreR.string.change_record_actions_hint)
125-
onView(withText(coreR.string.change_record_continue)).perform(nestedScrollTo(), click())
124+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_continue))
125+
clickOnViewWithText(coreR.string.change_record_continue)
126126
clickOnViewWithId(com.google.android.material.R.id.snackbar_text)
127127
clickOnViewWithText(coreR.string.change_record_actions_hint)
128128

@@ -132,7 +132,8 @@ class RecordActionsContinueTest : BaseUiTest() {
132132

133133
// Continue
134134
clickOnViewWithText(coreR.string.change_record_actions_hint)
135-
onView(withText(coreR.string.change_record_continue)).perform(nestedScrollTo(), click())
135+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_continue))
136+
clickOnViewWithText(coreR.string.change_record_continue)
136137

137138
checkViewIsDisplayed(
138139
allOf(
@@ -178,7 +179,8 @@ class RecordActionsContinueTest : BaseUiTest() {
178179

179180
// Continue untracked doesn't work
180181
clickOnViewWithText(coreR.string.change_record_actions_hint)
181-
onView(withText(coreR.string.change_record_continue)).perform(nestedScrollTo(), click())
182+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_continue))
183+
clickOnViewWithText(coreR.string.change_record_continue)
182184
clickOnViewWithId(com.google.android.material.R.id.snackbar_text)
183185
clickOnViewWithText(coreR.string.change_record_actions_hint)
184186

@@ -188,7 +190,8 @@ class RecordActionsContinueTest : BaseUiTest() {
188190

189191
// Continue
190192
clickOnViewWithText(coreR.string.change_record_actions_hint)
191-
onView(withText(coreR.string.change_record_continue)).perform(nestedScrollTo(), click())
193+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_continue))
194+
clickOnViewWithText(coreR.string.change_record_continue)
192195

193196
checkViewDoesNotExist(
194197
allOf(
@@ -239,7 +242,8 @@ class RecordActionsContinueTest : BaseUiTest() {
239242
NavUtils.openRecordsScreen()
240243
clickOnView(allOf(withText(name), isCompletelyDisplayed()))
241244
clickOnViewWithText(coreR.string.change_record_actions_hint)
242-
onView(withText(coreR.string.change_record_continue)).perform(nestedScrollTo(), click())
245+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_continue))
246+
clickOnViewWithText(coreR.string.change_record_continue)
243247
// Snackbar is in the way of Add button
244248
clickOnViewWithId(com.google.android.material.R.id.snackbar_text)
245249
pressBack()
@@ -258,7 +262,8 @@ class RecordActionsContinueTest : BaseUiTest() {
258262
adjust("+30")
259263
adjust("+5")
260264
clickOnViewWithText(coreR.string.change_record_actions_hint)
261-
onView(withText(coreR.string.change_record_continue)).perform(nestedScrollTo(), click())
265+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_continue))
266+
clickOnViewWithText(coreR.string.change_record_continue)
262267

263268
// Still on edit screen
264269
checkViewIsDisplayed(withText(coreR.string.change_record_save))
@@ -284,7 +289,7 @@ class RecordActionsContinueTest : BaseUiTest() {
284289

285290
// Try continue record
286291
clickOnViewWithText(coreR.string.change_record_actions_hint)
287-
checkViewIsNotDisplayed(withText(coreR.string.change_record_continue))
292+
checkViewDoesNotExist(withText(coreR.string.change_record_continue))
288293
}
289294

290295
@Test
@@ -301,7 +306,8 @@ class RecordActionsContinueTest : BaseUiTest() {
301306
clickOnViewWithText(coreR.string.change_record_type_field)
302307
clickOnRecyclerItem(changeRecordR.id.rvChangeRecordType, withText(name))
303308
clickOnViewWithText(coreR.string.change_record_actions_hint)
304-
onView(withText(coreR.string.change_record_continue)).perform(nestedScrollTo(), click())
309+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_continue))
310+
clickOnViewWithText(coreR.string.change_record_continue)
305311

306312
// Running record stopped
307313
checkViewIsDisplayed(
@@ -332,7 +338,8 @@ class RecordActionsContinueTest : BaseUiTest() {
332338
clickOnViewWithText(coreR.string.change_record_type_field)
333339
clickOnRecyclerItem(changeRecordR.id.rvChangeRecordType, withText(name2))
334340
clickOnViewWithText(coreR.string.change_record_actions_hint)
335-
onView(withText(coreR.string.change_record_continue)).perform(nestedScrollTo(), click())
341+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_continue))
342+
clickOnViewWithText(coreR.string.change_record_continue)
336343

337344
// Running record stopped
338345
checkViewIsDisplayed(allOf(withText(name1), isCompletelyDisplayed()))

app/src/androidTest/java/com/example/util/simpletimetracker/RecordActionsDuplicateTest.kt

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,24 @@ package com.example.util.simpletimetracker
33
import androidx.test.espresso.Espresso.closeSoftKeyboard
44
import androidx.test.espresso.Espresso.onView
55
import androidx.test.espresso.Espresso.pressBack
6-
import androidx.test.espresso.action.ViewActions.click
76
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
87
import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
98
import androidx.test.espresso.matcher.ViewMatchers.withId
109
import androidx.test.espresso.matcher.ViewMatchers.withText
1110
import androidx.test.ext.junit.runners.AndroidJUnit4
1211
import com.example.util.simpletimetracker.utils.BaseUiTest
1312
import com.example.util.simpletimetracker.utils.NavUtils
13+
import com.example.util.simpletimetracker.utils.checkViewDoesNotExist
1414
import com.example.util.simpletimetracker.utils.checkViewIsDisplayed
15-
import com.example.util.simpletimetracker.utils.checkViewIsNotDisplayed
1615
import com.example.util.simpletimetracker.utils.clickOnRecyclerItem
1716
import com.example.util.simpletimetracker.utils.clickOnView
1817
import com.example.util.simpletimetracker.utils.clickOnViewWithId
1918
import com.example.util.simpletimetracker.utils.clickOnViewWithText
2019
import com.example.util.simpletimetracker.utils.getMillis
2120
import com.example.util.simpletimetracker.utils.longClickOnView
22-
import com.example.util.simpletimetracker.utils.nestedScrollTo
2321
import com.example.util.simpletimetracker.utils.nthChildOf
2422
import com.example.util.simpletimetracker.utils.recyclerItemCount
23+
import com.example.util.simpletimetracker.utils.scrollRecyclerToView
2524
import com.example.util.simpletimetracker.utils.tryAction
2625
import com.example.util.simpletimetracker.utils.typeTextIntoView
2726
import com.example.util.simpletimetracker.utils.withCardColor
@@ -59,7 +58,7 @@ class RecordActionsDuplicateTest : BaseUiTest() {
5958
)
6059
}
6160
clickOnViewWithText(coreR.string.change_record_actions_hint)
62-
checkViewIsNotDisplayed(withText(coreR.string.change_record_duplicate))
61+
checkViewDoesNotExist(withText(coreR.string.change_record_duplicate))
6362
pressBack()
6463
pressBack()
6564

@@ -69,7 +68,7 @@ class RecordActionsDuplicateTest : BaseUiTest() {
6968
allOf(withId(baseR.id.viewRecordItem), hasDescendant(withText(name)), isCompletelyDisplayed()),
7069
)
7170
clickOnViewWithText(coreR.string.change_record_actions_hint)
72-
onView(withText(coreR.string.change_record_duplicate)).perform(nestedScrollTo())
71+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_duplicate))
7372
checkViewIsDisplayed(withText(coreR.string.change_record_duplicate))
7473
}
7574

@@ -117,7 +116,8 @@ class RecordActionsDuplicateTest : BaseUiTest() {
117116
// Duplicate
118117
clickOnViewWithText(fullName)
119118
clickOnViewWithText(coreR.string.change_record_actions_hint)
120-
onView(withText(coreR.string.change_record_duplicate)).perform(nestedScrollTo(), click())
119+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_duplicate))
120+
clickOnViewWithText(coreR.string.change_record_duplicate)
121121

122122
tryAction {
123123
onView(allOf(withId(recordsR.id.rvRecordsList), isCompletelyDisplayed()))
@@ -171,7 +171,8 @@ class RecordActionsDuplicateTest : BaseUiTest() {
171171

172172
// Duplicate untracked doesn't work
173173
clickOnViewWithText(coreR.string.change_record_actions_hint)
174-
onView(withText(coreR.string.change_record_duplicate)).perform(nestedScrollTo(), click())
174+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_duplicate))
175+
clickOnViewWithText(coreR.string.change_record_duplicate)
175176
clickOnViewWithId(com.google.android.material.R.id.snackbar_text)
176177
clickOnViewWithText(coreR.string.change_record_actions_hint)
177178

@@ -185,7 +186,8 @@ class RecordActionsDuplicateTest : BaseUiTest() {
185186

186187
// Duplicate
187188
clickOnViewWithText(coreR.string.change_record_actions_hint)
188-
onView(withText(coreR.string.change_record_duplicate)).perform(nestedScrollTo(), click())
189+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_duplicate))
190+
clickOnViewWithText(coreR.string.change_record_duplicate)
189191

190192
tryAction {
191193
onView(allOf(withId(recordsR.id.rvRecordsList), isCompletelyDisplayed()))
@@ -227,7 +229,8 @@ class RecordActionsDuplicateTest : BaseUiTest() {
227229

228230
// Duplicate untracked doesn't work
229231
clickOnViewWithText(coreR.string.change_record_actions_hint)
230-
onView(withText(coreR.string.change_record_duplicate)).perform(nestedScrollTo(), click())
232+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_duplicate))
233+
clickOnViewWithText(coreR.string.change_record_duplicate)
231234
clickOnViewWithId(com.google.android.material.R.id.snackbar_text)
232235
clickOnViewWithText(coreR.string.change_record_actions_hint)
233236

@@ -241,7 +244,8 @@ class RecordActionsDuplicateTest : BaseUiTest() {
241244

242245
// Duplicate
243246
clickOnViewWithText(coreR.string.change_record_actions_hint)
244-
onView(withText(coreR.string.change_record_duplicate)).perform(nestedScrollTo(), click())
247+
scrollRecyclerToView(changeRecordR.id.rvChangeRecordAction, withText(coreR.string.change_record_duplicate))
248+
clickOnViewWithText(coreR.string.change_record_duplicate)
245249

246250
tryAction {
247251
onView(allOf(withId(recordsR.id.rvRecordsList), isCompletelyDisplayed()))

0 commit comments

Comments
 (0)