@@ -4,13 +4,15 @@ import android.view.View
44import androidx.test.espresso.Espresso.closeSoftKeyboard
55import androidx.test.espresso.Espresso.onView
66import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
7+ import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
78import androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA
89import androidx.test.espresso.matcher.ViewMatchers.withId
910import androidx.test.espresso.matcher.ViewMatchers.withParent
1011import androidx.test.espresso.matcher.ViewMatchers.withText
1112import androidx.test.ext.junit.runners.AndroidJUnit4
1213import com.example.util.simpletimetracker.utils.BaseUiTest
1314import com.example.util.simpletimetracker.utils.NavUtils
15+ import com.example.util.simpletimetracker.utils.checkViewDoesNotExist
1416import com.example.util.simpletimetracker.utils.checkViewIsDisplayed
1517import com.example.util.simpletimetracker.utils.checkViewIsNotDisplayed
1618import com.example.util.simpletimetracker.utils.clickOnRecyclerItem
@@ -208,6 +210,71 @@ class AddRecordTagTest : BaseUiTest() {
208210 onView(withId(R .id.rvCategoriesList)).check(recyclerItemCount(7 ))
209211 }
210212
213+ @Test
214+ fun addRecordTagFromChangeRecord () {
215+ val tagName1 = " Category1"
216+ val tagName2 = " Category2"
217+ val typeName = " Type"
218+
219+ // Add data
220+ testUtils.addActivity(typeName)
221+ testUtils.addRecord(typeName)
222+
223+ // Add category
224+ NavUtils .openRecordsScreen()
225+ clickOnView(allOf(withText(typeName), isCompletelyDisplayed()))
226+ clickOnViewWithId(R .id.fieldChangeRecordCategory)
227+ clickOnViewWithText(R .string.categories_add_record_tag)
228+ typeTextIntoView(R .id.etChangeRecordTagName, tagName1)
229+ closeSoftKeyboard()
230+ clickOnViewWithText(R .string.change_category_save)
231+
232+ // Category added
233+ checkViewIsDisplayed(withText(tagName1))
234+
235+ // Change category
236+ longClickOnView(withText(tagName1))
237+ typeTextIntoView(R .id.etChangeRecordTagName, tagName2)
238+ closeSoftKeyboard()
239+ clickOnViewWithText(R .string.change_category_save)
240+
241+ // Category changed
242+ checkViewDoesNotExist(withText(tagName1))
243+ checkViewIsDisplayed(withText(tagName2))
244+ }
245+
246+ @Test
247+ fun addRecordTagFromChangeRunningRecord () {
248+ val tagName1 = " Tag1"
249+ val tagName2 = " Tag2"
250+ val typeName = " Type"
251+
252+ // Add data
253+ testUtils.addActivity(typeName)
254+ tryAction { clickOnViewWithText(typeName) }
255+ longClickOnView(allOf(isDescendantOfA(withId(R .id.viewRunningRecordItem)), withText(typeName)))
256+
257+ // Add category
258+ clickOnViewWithId(R .id.fieldChangeRunningRecordCategory)
259+ clickOnViewWithText(R .string.categories_add_record_tag)
260+ typeTextIntoView(R .id.etChangeRecordTagName, tagName1)
261+ closeSoftKeyboard()
262+ clickOnViewWithText(R .string.change_category_save)
263+
264+ // Category added
265+ checkViewIsDisplayed(withText(tagName1))
266+
267+ // Change category
268+ longClickOnView(withText(tagName1))
269+ typeTextIntoView(R .id.etChangeRecordTagName, tagName2)
270+ closeSoftKeyboard()
271+ clickOnViewWithText(R .string.change_category_save)
272+
273+ // Category changed
274+ checkViewDoesNotExist(withText(tagName1))
275+ checkViewIsDisplayed(withText(tagName2))
276+ }
277+
211278 private fun checkPreviewUpdated (matcher : Matcher <View >) =
212279 checkViewIsDisplayed(allOf(withId(R .id.previewChangeRecordTag), matcher))
213280}
0 commit comments