Skip to content

Commit 3f3bdd2

Browse files
committed
refactor ui tests
1 parent efff942 commit 3f3bdd2

File tree

12 files changed

+95
-155
lines changed

12 files changed

+95
-155
lines changed

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

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import android.view.View
44
import android.widget.TimePicker
55
import androidx.test.core.app.ApplicationProvider
66
import androidx.test.espresso.Espresso.onView
7-
import androidx.test.espresso.Espresso.pressBack
87
import androidx.test.espresso.contrib.PickerActions
98
import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
109
import androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA
@@ -27,7 +26,6 @@ import com.example.util.simpletimetracker.utils.checkViewIsNotDisplayed
2726
import com.example.util.simpletimetracker.utils.clickOnRecyclerItem
2827
import com.example.util.simpletimetracker.utils.clickOnViewWithId
2928
import com.example.util.simpletimetracker.utils.clickOnViewWithText
30-
import com.example.util.simpletimetracker.utils.typeTextIntoView
3129
import com.example.util.simpletimetracker.utils.withCardColor
3230
import org.hamcrest.CoreMatchers.allOf
3331
import org.hamcrest.CoreMatchers.equalTo
@@ -68,21 +66,14 @@ class AddRecordTest {
6866
}
6967

7068
@Test
71-
fun addTest() {
69+
fun test() {
7270
val name = "Name"
7371
val color = ColorMapper.availableColors.first()
7472
val icon = iconMapper.availableIconsNames.values.first()
7573

7674
// Add activity
7775
NavUtils.openRunningRecordsScreen()
78-
clickOnViewWithText(R.string.running_records_add_type)
79-
typeTextIntoView(R.id.etChangeRecordTypeName, name)
80-
pressBack()
81-
clickOnViewWithText(R.string.change_record_type_color_hint)
82-
clickOnRecyclerItem(R.id.rvChangeRecordTypeColor, withCardColor(color))
83-
clickOnViewWithText(R.string.change_record_type_icon_hint)
84-
clickOnRecyclerItem(R.id.rvChangeRecordTypeIcon, withTagValue(equalTo(icon)))
85-
clickOnViewWithText(R.string.change_record_type_save)
76+
NavUtils.addActivity(name, color, icon)
8677

8778
// Add record
8879
NavUtils.openRecordsScreen()

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import com.example.util.simpletimetracker.utils.checkViewIsDisplayed
2020
import com.example.util.simpletimetracker.utils.checkViewIsNotDisplayed
2121
import com.example.util.simpletimetracker.utils.clickOnRecyclerItem
2222
import com.example.util.simpletimetracker.utils.clickOnViewWithText
23-
import com.example.util.simpletimetracker.utils.scrollToPosition
23+
import com.example.util.simpletimetracker.utils.scrollRecyclerToPosition
2424
import com.example.util.simpletimetracker.utils.typeTextIntoView
2525
import com.example.util.simpletimetracker.utils.withCardColor
2626
import org.hamcrest.CoreMatchers.allOf
@@ -57,7 +57,7 @@ class AddRecordTypeTest {
5757
}
5858

5959
@Test
60-
fun addTest() {
60+
fun test() {
6161
val name = "Test"
6262
val firstColor = ColorMapper.availableColors.first()
6363
val lastColor = ColorMapper.availableColors.last()
@@ -91,7 +91,7 @@ class AddRecordTypeTest {
9191
checkPreviewUpdated(withCardColor(firstColor))
9292

9393
// Selecting color
94-
scrollToPosition(R.id.rvChangeRecordTypeColor, lastColorPosition)
94+
scrollRecyclerToPosition(R.id.rvChangeRecordTypeColor, lastColorPosition)
9595
clickOnRecyclerItem(R.id.rvChangeRecordTypeColor, withCardColor(lastColor))
9696
checkPreviewUpdated(withCardColor(lastColor))
9797

@@ -105,7 +105,7 @@ class AddRecordTypeTest {
105105
checkPreviewUpdated(withTagValue(equalTo(firstIcon)))
106106

107107
// Selecting icon
108-
scrollToPosition(R.id.rvChangeRecordTypeIcon, lastIconPosition)
108+
scrollRecyclerToPosition(R.id.rvChangeRecordTypeIcon, lastIconPosition)
109109
clickOnRecyclerItem(R.id.rvChangeRecordTypeIcon, withTagValue(equalTo(lastIcon)))
110110
checkPreviewUpdated(withTagValue(equalTo(lastIcon)))
111111

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

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import android.widget.DatePicker
55
import android.widget.TimePicker
66
import androidx.test.core.app.ApplicationProvider
77
import androidx.test.espresso.Espresso.onView
8-
import androidx.test.espresso.Espresso.pressBack
98
import androidx.test.espresso.contrib.PickerActions
109
import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
1110
import androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA
@@ -30,8 +29,6 @@ import com.example.util.simpletimetracker.utils.clickOnRecyclerItem
3029
import com.example.util.simpletimetracker.utils.clickOnViewWithId
3130
import com.example.util.simpletimetracker.utils.clickOnViewWithText
3231
import com.example.util.simpletimetracker.utils.longClickOnView
33-
import com.example.util.simpletimetracker.utils.scrollToPosition
34-
import com.example.util.simpletimetracker.utils.typeTextIntoView
3532
import com.example.util.simpletimetracker.utils.withCardColor
3633
import org.hamcrest.CoreMatchers.allOf
3734
import org.hamcrest.CoreMatchers.equalTo
@@ -71,37 +68,18 @@ class ChangeRecordTest {
7168
}
7269

7370
@Test
74-
fun changeTest() {
71+
fun test() {
7572
val name = "Test1"
7673
val newName = "Test2"
7774
val firstColor = ColorMapper.availableColors.first()
7875
val lastColor = ColorMapper.availableColors.last()
79-
val lastColorPosition = ColorMapper.availableColors.size - 1
8076
val firstIcon = iconMapper.availableIconsNames.values.first()
8177
val lastIcon = iconMapper.availableIconsNames.values.last()
82-
val lastIconPosition = iconMapper.availableIconsNames.size - 1
8378

8479
// Add activities
8580
NavUtils.openRunningRecordsScreen()
86-
clickOnViewWithText(R.string.running_records_add_type)
87-
typeTextIntoView(R.id.etChangeRecordTypeName, name)
88-
pressBack()
89-
clickOnViewWithText(R.string.change_record_type_color_hint)
90-
clickOnRecyclerItem(R.id.rvChangeRecordTypeColor, withCardColor(firstColor))
91-
clickOnViewWithText(R.string.change_record_type_icon_hint)
92-
clickOnRecyclerItem(R.id.rvChangeRecordTypeIcon, withTagValue(equalTo(firstIcon)))
93-
clickOnViewWithText(R.string.change_record_type_save)
94-
95-
clickOnViewWithText(R.string.running_records_add_type)
96-
typeTextIntoView(R.id.etChangeRecordTypeName, newName)
97-
pressBack()
98-
clickOnViewWithText(R.string.change_record_type_color_hint)
99-
scrollToPosition(R.id.rvChangeRecordTypeColor, lastColorPosition)
100-
clickOnRecyclerItem(R.id.rvChangeRecordTypeColor, withCardColor(lastColor))
101-
clickOnViewWithText(R.string.change_record_type_icon_hint)
102-
scrollToPosition(R.id.rvChangeRecordTypeIcon, lastIconPosition)
103-
clickOnRecyclerItem(R.id.rvChangeRecordTypeIcon, withTagValue(equalTo(lastIcon)))
104-
clickOnViewWithText(R.string.change_record_type_save)
81+
NavUtils.addActivity(name, firstColor, firstIcon)
82+
NavUtils.addActivity(newName, lastColor, lastIcon)
10583

10684
// Add record
10785
NavUtils.openRecordsScreen()

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

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ package com.example.util.simpletimetracker
22

33
import android.view.View
44
import androidx.test.core.app.ApplicationProvider
5+
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
56
import androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA
67
import androidx.test.espresso.matcher.ViewMatchers.withId
7-
import androidx.test.espresso.matcher.ViewMatchers.withTagValue
88
import androidx.test.espresso.matcher.ViewMatchers.withText
99
import androidx.test.ext.junit.rules.ActivityScenarioRule
1010
import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -20,11 +20,11 @@ import com.example.util.simpletimetracker.utils.checkViewIsNotDisplayed
2020
import com.example.util.simpletimetracker.utils.clickOnRecyclerItem
2121
import com.example.util.simpletimetracker.utils.clickOnViewWithText
2222
import com.example.util.simpletimetracker.utils.longClickOnView
23-
import com.example.util.simpletimetracker.utils.scrollToPosition
23+
import com.example.util.simpletimetracker.utils.scrollRecyclerToView
2424
import com.example.util.simpletimetracker.utils.typeTextIntoView
2525
import com.example.util.simpletimetracker.utils.withCardColor
26+
import com.example.util.simpletimetracker.utils.withTag
2627
import org.hamcrest.CoreMatchers.allOf
27-
import org.hamcrest.CoreMatchers.equalTo
2828
import org.hamcrest.Matcher
2929
import org.junit.Before
3030
import org.junit.Rule
@@ -57,26 +57,17 @@ class ChangeRecordTypeTest {
5757
}
5858

5959
@Test
60-
fun changeTest() {
60+
fun test() {
6161
val name = "Test"
6262
val newName = "Updated"
6363
val firstColor = ColorMapper.availableColors.first()
6464
val lastColor = ColorMapper.availableColors.last()
65-
val lastColorPosition = ColorMapper.availableColors.size - 1
6665
val firstIcon = iconMapper.availableIconsNames.values.first()
6766
val lastIcon = iconMapper.availableIconsNames.values.last()
68-
val lastIconPosition = iconMapper.availableIconsNames.size - 1
69-
70-
NavUtils.openRunningRecordsScreen()
71-
clickOnViewWithText(R.string.running_records_add_type)
7267

7368
// Add item
74-
typeTextIntoView(R.id.etChangeRecordTypeName, name)
75-
clickOnViewWithText(R.string.change_record_type_color_hint)
76-
clickOnRecyclerItem(R.id.rvChangeRecordTypeColor, withCardColor(firstColor))
77-
clickOnViewWithText(R.string.change_record_type_icon_hint)
78-
clickOnRecyclerItem(R.id.rvChangeRecordTypeIcon, withTagValue(equalTo(firstIcon)))
79-
clickOnViewWithText(R.string.change_record_type_save)
69+
NavUtils.openRunningRecordsScreen()
70+
NavUtils.addActivity(name, firstColor, firstIcon)
8071

8172
longClickOnView(withText(name))
8273

@@ -89,28 +80,28 @@ class ChangeRecordTypeTest {
8980
// Preview is updated
9081
checkPreviewUpdated(withText(name))
9182
checkPreviewUpdated(withCardColor(firstColor))
92-
checkPreviewUpdated(withTagValue(equalTo(firstIcon)))
83+
checkPreviewUpdated(withTag(firstIcon))
9384

9485
// Change item
9586
typeTextIntoView(R.id.etChangeRecordTypeName, newName)
9687
checkPreviewUpdated(withText(newName))
9788

9889
clickOnViewWithText(R.string.change_record_type_color_hint)
99-
scrollToPosition(R.id.rvChangeRecordTypeColor, lastColorPosition)
90+
scrollRecyclerToView(R.id.rvChangeRecordTypeColor, withCardColor(lastColor))
10091
clickOnRecyclerItem(R.id.rvChangeRecordTypeColor, withCardColor(lastColor))
10192
checkPreviewUpdated(withCardColor(lastColor))
10293

10394
clickOnViewWithText(R.string.change_record_type_icon_hint)
104-
scrollToPosition(R.id.rvChangeRecordTypeIcon, lastIconPosition)
105-
clickOnRecyclerItem(R.id.rvChangeRecordTypeIcon, withTagValue(equalTo(lastIcon)))
106-
checkPreviewUpdated(withTagValue(equalTo(lastIcon)))
95+
scrollRecyclerToView(R.id.rvChangeRecordTypeIcon, hasDescendant(withTag(lastIcon)))
96+
clickOnRecyclerItem(R.id.rvChangeRecordTypeIcon, withTag(lastIcon))
97+
checkPreviewUpdated(withTag(lastIcon))
10798

10899
clickOnViewWithText(R.string.change_record_type_save)
109100

110101
// Record type updated
111102
checkViewIsDisplayed(withText(newName))
112103
checkViewIsDisplayed(withCardColor(lastColor))
113-
checkViewIsDisplayed(withTagValue(equalTo(lastIcon)))
104+
checkViewIsDisplayed(withTag(lastIcon))
114105
}
115106

116107
private fun checkPreviewUpdated(matcher: Matcher<View>) =

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

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

33
import androidx.test.core.app.ApplicationProvider
4-
import androidx.test.espresso.Espresso
54
import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
65
import androidx.test.espresso.matcher.ViewMatchers.withId
76
import androidx.test.espresso.matcher.ViewMatchers.withTagValue
@@ -17,11 +16,8 @@ import com.example.util.simpletimetracker.ui.MainActivity
1716
import com.example.util.simpletimetracker.utils.NavUtils
1817
import com.example.util.simpletimetracker.utils.checkViewDoesNotExist
1918
import com.example.util.simpletimetracker.utils.checkViewIsDisplayed
20-
import com.example.util.simpletimetracker.utils.clickOnRecyclerItem
2119
import com.example.util.simpletimetracker.utils.clickOnViewWithId
22-
import com.example.util.simpletimetracker.utils.clickOnViewWithText
2320
import com.example.util.simpletimetracker.utils.longClickOnView
24-
import com.example.util.simpletimetracker.utils.typeTextIntoView
2521
import com.example.util.simpletimetracker.utils.withCardColor
2622
import org.hamcrest.CoreMatchers.equalTo
2723
import org.hamcrest.Matchers.allOf
@@ -56,28 +52,18 @@ class DeleteRecordTest {
5652
}
5753

5854
@Test
59-
fun deleteTest() {
55+
fun test() {
6056
val name = "Name"
6157
val color = ColorMapper.availableColors.first()
6258
val icon = iconMapper.availableIconsNames.values.first()
6359

6460
// Add activity
6561
NavUtils.openRunningRecordsScreen()
66-
clickOnViewWithText(R.string.running_records_add_type)
67-
typeTextIntoView(R.id.etChangeRecordTypeName, name)
68-
Espresso.pressBack()
69-
clickOnViewWithText(R.string.change_record_type_color_hint)
70-
clickOnRecyclerItem(R.id.rvChangeRecordTypeColor, withCardColor(color))
71-
clickOnViewWithText(R.string.change_record_type_icon_hint)
72-
clickOnRecyclerItem(R.id.rvChangeRecordTypeIcon, withTagValue(equalTo(icon)))
73-
clickOnViewWithText(R.string.change_record_type_save)
62+
NavUtils.addActivity(name, color, icon)
7463

7564
// Add record
7665
NavUtils.openRecordsScreen()
77-
clickOnViewWithId(R.id.btnRecordAdd)
78-
clickOnViewWithText(R.string.change_record_type_field)
79-
clickOnRecyclerItem(R.id.rvChangeRecordType, withText(name))
80-
clickOnViewWithText(R.string.change_record_save)
66+
NavUtils.addRecord(name)
8167

8268
// Delete item
8369
longClickOnView(allOf(withText(name), isCompletelyDisplayed()))
@@ -90,5 +76,7 @@ class DeleteRecordTest {
9076
checkViewDoesNotExist(allOf(withText(name), isCompletelyDisplayed()))
9177
checkViewDoesNotExist(allOf(withCardColor(color), isCompletelyDisplayed()))
9278
checkViewDoesNotExist(allOf(withTagValue(equalTo(icon)), isCompletelyDisplayed()))
79+
80+
// TODO check undo
9381
}
9482
}

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

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

33
import androidx.test.core.app.ApplicationProvider
4+
import androidx.test.espresso.Espresso.pressBack
45
import androidx.test.espresso.matcher.ViewMatchers.withId
56
import androidx.test.espresso.matcher.ViewMatchers.withTagValue
67
import androidx.test.espresso.matcher.ViewMatchers.withText
@@ -16,11 +17,9 @@ import com.example.util.simpletimetracker.utils.NavUtils
1617
import com.example.util.simpletimetracker.utils.checkViewDoesNotExist
1718
import com.example.util.simpletimetracker.utils.checkViewIsDisplayed
1819
import com.example.util.simpletimetracker.utils.checkViewIsNotDisplayed
19-
import com.example.util.simpletimetracker.utils.clickOnRecyclerItem
2020
import com.example.util.simpletimetracker.utils.clickOnViewWithId
2121
import com.example.util.simpletimetracker.utils.clickOnViewWithText
2222
import com.example.util.simpletimetracker.utils.longClickOnView
23-
import com.example.util.simpletimetracker.utils.typeTextIntoView
2423
import com.example.util.simpletimetracker.utils.withCardColor
2524
import org.hamcrest.CoreMatchers.equalTo
2625
import org.junit.Before
@@ -54,22 +53,19 @@ class DeleteRecordTypeTest {
5453
}
5554

5655
@Test
57-
fun changeTest() {
56+
fun test() {
5857
val name = "Test"
5958
val color = ColorMapper.availableColors.first()
6059
val icon = iconMapper.availableIconsNames.values.first()
6160

6261
NavUtils.openRunningRecordsScreen()
6362
clickOnViewWithText(R.string.running_records_add_type)
6463
checkViewIsNotDisplayed(withId(R.id.btnChangeRecordTypeDelete))
64+
pressBack()
65+
pressBack()
6566

6667
// Add item
67-
typeTextIntoView(R.id.etChangeRecordTypeName, name)
68-
clickOnViewWithText(R.string.change_record_type_color_hint)
69-
clickOnRecyclerItem(R.id.rvChangeRecordTypeColor, withCardColor(color))
70-
clickOnViewWithText(R.string.change_record_type_icon_hint)
71-
clickOnRecyclerItem(R.id.rvChangeRecordTypeIcon, withTagValue(equalTo(icon)))
72-
clickOnViewWithText(R.string.change_record_type_save)
68+
NavUtils.addActivity(name, color, icon)
7369

7470
// Delete item
7571
longClickOnView(withText(name))

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import androidx.test.espresso.Espresso.onView
55
import androidx.test.espresso.Espresso.pressBack
66
import androidx.test.espresso.action.ViewActions.click
77
import androidx.test.espresso.action.ViewActions.longClick
8-
import androidx.test.espresso.action.ViewActions.typeText
8+
import androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA
99
import androidx.test.espresso.matcher.ViewMatchers.withId
1010
import androidx.test.espresso.matcher.ViewMatchers.withText
1111
import androidx.test.ext.junit.rules.ActivityScenarioRule
@@ -15,6 +15,10 @@ import com.example.util.simpletimetracker.di.AppModule
1515
import com.example.util.simpletimetracker.di.DaggerTestAppComponent
1616
import com.example.util.simpletimetracker.ui.MainActivity
1717
import com.example.util.simpletimetracker.utils.NavUtils
18+
import com.example.util.simpletimetracker.utils.clickOnView
19+
import com.example.util.simpletimetracker.utils.clickOnViewWithText
20+
import com.example.util.simpletimetracker.utils.typeTextIntoView
21+
import org.hamcrest.CoreMatchers.allOf
1822
import org.junit.Before
1923
import org.junit.Rule
2024
import org.junit.Test
@@ -43,13 +47,15 @@ class MainScreenTest {
4347
}
4448

4549
@Test
46-
fun baseTest() {
47-
NavUtils.openRunningRecordsScreen()
50+
fun test() {
51+
val name = "Test"
4852

49-
onView(withText(R.string.running_records_add_type)).perform(click())
50-
onView(withId(R.id.etChangeRecordTypeName)).perform(typeText("Test"))
53+
clickOnView(withText(R.string.running_records_add_type))
54+
typeTextIntoView(R.id.etChangeRecordTypeName, name)
5155
pressBack()
52-
onView(withText(R.string.change_record_type_save)).perform(click())
56+
clickOnView(withText(R.string.change_record_type_save))
57+
clickOnViewWithText(name)
58+
clickOnView(allOf(isDescendantOfA(withId(R.id.layoutRunningRecordItem)), withText(name)))
5359

5460
NavUtils.openRecordsScreen()
5561

0 commit comments

Comments
 (0)