@@ -41,26 +41,25 @@ import androidx.test.espresso.intent.Intents
4141import androidx.test.espresso.intent.matcher.IntentMatchers.hasAction
4242import androidx.test.espresso.intent.rule.IntentsTestRule
4343import androidx.test.espresso.matcher.RootMatchers
44- import androidx.test.espresso.matcher.ViewMatchers.isClickable
45- import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
44+ import androidx.test.espresso.matcher.ViewMatchers.withText
45+ import androidx.test.espresso.matcher.ViewMatchers.isRoot
4646import androidx.test.espresso.matcher.ViewMatchers.withId
47+ import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
4748import androidx.test.espresso.matcher.ViewMatchers.withSpinnerText
48- import androidx.test.espresso.matcher.ViewMatchers.withText
49+ import androidx.test.espresso.matcher.ViewMatchers.isClickable
4950import androidx.test.ext.junit.runners.AndroidJUnit4
5051import androidx.test.rule.GrantPermissionRule
51- import kotlinx.coroutines.delay
52- import kotlinx.coroutines.runBlocking
5352import org.catrobat.paintroid.FileIO
5453import org.catrobat.paintroid.MainActivity
5554import org.catrobat.paintroid.R
56- import org.catrobat.paintroid.common.TEMP_PICTURE_NAME
5755import org.catrobat.paintroid.presenter.MainActivityPresenter
5856import org.catrobat.paintroid.test.espresso.util.BitmapLocationProvider
5957import org.catrobat.paintroid.test.espresso.util.DrawingSurfaceLocationProvider.HALFWAY_BOTTOM_MIDDLE
6058import org.catrobat.paintroid.test.espresso.util.DrawingSurfaceLocationProvider.HALFWAY_RIGHT_MIDDLE
6159import org.catrobat.paintroid.test.espresso.util.DrawingSurfaceLocationProvider.MIDDLE
6260import org.catrobat.paintroid.test.espresso.util.EspressoUtils.grantPermissionRulesVersionCheck
6361import org.catrobat.paintroid.test.espresso.util.UiInteractions.touchAt
62+ import org.catrobat.paintroid.test.espresso.util.UiInteractions.waitFor
6463import org.catrobat.paintroid.test.espresso.util.wrappers.DrawingSurfaceInteraction.onDrawingSurfaceView
6564import org.catrobat.paintroid.test.espresso.util.wrappers.ToolBarViewInteraction
6665import org.catrobat.paintroid.test.espresso.util.wrappers.TopBarViewInteraction.onTopBarView
@@ -95,6 +94,7 @@ class MenuFileActivityIntegrationTest {
9594 var screenshotOnFailRule = ScreenshotOnFailRule ()
9695
9796 private lateinit var activity: MainActivity
97+ private var defaultFileName = " menuTestDefaultFile"
9898
9999 companion object {
100100 private lateinit var deletionFileList: ArrayList <File ?>
@@ -125,17 +125,12 @@ class MenuFileActivityIntegrationTest {
125125 onDrawingSurfaceView().checkPixelColor(Color .BLACK , BitmapLocationProvider .MIDDLE )
126126 onTopBarView().performOpenMoreOptions()
127127 onView(withText(R .string.menu_new_image)).perform(click())
128- runBlocking {
129- onView(withText(R .string.save_button_text))
130- .perform(click())
131- delay(100 )
132- }
128+ onView(withText(R .string.save_button_text)).perform(click())
129+ onView(isRoot()).perform(waitFor(100 ))
133130 onView(withId(R .id.pocketpaint_image_name_save_text))
134131 .perform(replaceText(" test987654" ))
135- runBlocking {
136- onView(withText(R .string.save_button_text)).perform(click())
137- delay(100 )
138- }
132+ onView(withText(R .string.save_button_text)).perform(click())
133+ onView(isRoot()).perform(waitFor(100 ))
139134 onDrawingSurfaceView().checkPixelColor(Color .TRANSPARENT , BitmapLocationProvider .MIDDLE )
140135 }
141136
@@ -236,10 +231,8 @@ class MenuFileActivityIntegrationTest {
236231 onView(withText(R .string.menu_save_image)).perform(click())
237232 onView(withId(R .id.pocketpaint_image_name_save_text))
238233 .perform(replaceText(" test98765" ))
239- runBlocking {
240- onView(withText(R .string.save_button_text)).perform(click())
241- delay(100 )
242- }
234+ onView(withText(R .string.save_button_text)).perform(click())
235+ onView(isRoot()).perform(waitFor(100 ))
243236 assertNotNull(activity.model.savedPictureUri)
244237 addUriToDeletionFileList(activity.model.savedPictureUri)
245238 assertTrue(activity.model.isSaved)
@@ -250,10 +243,8 @@ class MenuFileActivityIntegrationTest {
250243 onDrawingSurfaceView().perform(touchAt(MIDDLE ))
251244 onTopBarView().performOpenMoreOptions()
252245 onView(withText(R .string.menu_save_image)).perform(click())
253- runBlocking {
254- onView(withText(R .string.save_button_text)).perform(click())
255- delay(100 )
256- }
246+ onView(withText(R .string.save_button_text)).perform(click())
247+ onView(isRoot()).perform(waitFor(100 ))
257248 assertNotNull(activity.model.savedPictureUri)
258249 if (! activity.model.isOpenedFromCatroid) {
259250 assertNotSame(
@@ -275,10 +266,8 @@ class MenuFileActivityIntegrationTest {
275266 onView(withText(R .string.menu_save_image)).perform(click())
276267 onView(withId(R .id.pocketpaint_image_name_save_text))
277268 .perform(replaceText(" save1" ))
278- runBlocking {
279- onView(withText(R .string.save_button_text)).perform(click())
280- delay(100 )
281- }
269+ onView(withText(R .string.save_button_text)).perform(click())
270+ onView(isRoot()).perform(waitFor(100 ))
282271 assertNotNull(activity.model.savedPictureUri)
283272 if (! activity.model.isOpenedFromCatroid) {
284273 assertNotSame(
@@ -295,10 +284,8 @@ class MenuFileActivityIntegrationTest {
295284 onView(withText(R .string.menu_save_copy)).perform(click())
296285 onView(withId(R .id.pocketpaint_image_name_save_text))
297286 .perform(replaceText(" copy1" ))
298- runBlocking {
299- onView(withText(R .string.save_button_text)).perform(click())
300- delay(100 )
301- }
287+ onView(withText(R .string.save_button_text)).perform(click())
288+ onView(isRoot()).perform(waitFor(100 ))
302289 val newFile = File (activity.model.savedPictureUri.toString())
303290 assertNotSame(" Changes to saved" , oldFile, newFile)
304291 assertNotNull(activity.model.savedPictureUri)
@@ -318,10 +305,8 @@ class MenuFileActivityIntegrationTest {
318305 onView(withText(R .string.menu_save_image)).perform(click())
319306 onView(withId(R .id.pocketpaint_image_name_save_text))
320307 .perform(replaceText(" AskForSaveAfterSavedOnce" ))
321- runBlocking {
322- onView(withText(R .string.save_button_text)).perform(click())
323- delay(100 )
324- }
308+ onView(withText(R .string.save_button_text)).perform(click())
309+ onView(isRoot()).perform(waitFor(100 ))
325310 assertNotNull(activity.model.savedPictureUri)
326311 addUriToDeletionFileList(activity.model.savedPictureUri)
327312 onDrawingSurfaceView().perform(touchAt(MIDDLE ))
@@ -336,18 +321,14 @@ class MenuFileActivityIntegrationTest {
336321 onView(withText(R .string.menu_save_image)).perform(click())
337322 onView(withId(R .id.pocketpaint_image_name_save_text))
338323 .perform(replaceText(" 12345test12345" ))
339- runBlocking {
340- onView(withText(R .string.save_button_text)).perform(click())
341- delay(100 )
342- }
324+ onView(withText(R .string.save_button_text)).perform(click())
325+ onView(isRoot()).perform(waitFor(100 ))
343326 assertNotNull(activity.model.savedPictureUri)
344327 addUriToDeletionFileList(activity.model.savedPictureUri)
345328 onTopBarView().performOpenMoreOptions()
346329 onView(withText(R .string.menu_save_image)).perform(click())
347- runBlocking {
348- onView(withText(R .string.save_button_text)).perform(click())
349- delay(100 )
350- }
330+ onView(withText(R .string.save_button_text)).perform(click())
331+ onView(isRoot()).perform(waitFor(100 ))
351332 onView(withText(R .string.overwrite_button_text)).check(matches(isDisplayed()))
352333 }
353334
@@ -357,15 +338,14 @@ class MenuFileActivityIntegrationTest {
357338 val imageNumber = launchActivityRule.activity.presenter.imageNumber
358339 onTopBarView().performOpenMoreOptions()
359340 onView(withText(R .string.menu_save_image)).perform(click())
360- runBlocking {
361- onView(withText(R .string.save_button_text)).perform(click())
362- delay(100 )
363- }
341+ onView(withText(R .string.save_button_text)).perform(click())
342+ onView(isRoot()).perform(waitFor(200 ))
364343 assertNotNull(activity.model.savedPictureUri)
365344 addUriToDeletionFileList(activity.model.savedPictureUri)
366345 onDrawingSurfaceView().perform(touchAt(MIDDLE ))
367346 onTopBarView().performOpenMoreOptions()
368347 onView(withText(R .string.menu_save_image)).perform(click())
348+ onView(isRoot()).perform(waitFor(200 ))
369349 val newImageNumber = launchActivityRule.activity.presenter.imageNumber
370350 assertEquals((imageNumber + 1 ).toLong(), newImageNumber.toLong())
371351 }
@@ -378,10 +358,8 @@ class MenuFileActivityIntegrationTest {
378358 val imageNumber = launchActivityRule.activity.presenter.imageNumber
379359 onView(withId(R .id.pocketpaint_image_name_save_text))
380360 .perform(replaceText(" test9876" ))
381- runBlocking {
382- onView(withText(R .string.save_button_text)).perform(click())
383- delay(100 )
384- }
361+ onView(withText(R .string.save_button_text)).perform(click())
362+ onView(isRoot()).perform(waitFor(100 ))
385363 assertNotNull(activity.model.savedPictureUri)
386364 addUriToDeletionFileList(activity.model.savedPictureUri)
387365 val newImageNumber = launchActivityRule.activity.presenter.imageNumber
@@ -400,11 +378,9 @@ class MenuFileActivityIntegrationTest {
400378 onData(allOf(`is `(instanceOf<Any >(String ::class .java)), `is `<String >(" png" )))
401379 .inRoot(RootMatchers .isPlatformPopup()).perform(click())
402380 onView(withId(R .id.pocketpaint_image_name_save_text))
403- .perform(replaceText(TEMP_PICTURE_NAME ))
404- runBlocking {
405- onView(withText(R .string.save_button_text)).perform(click())
406- delay(100 )
407- }
381+ .perform(replaceText(defaultFileName))
382+ onView(withText(R .string.save_button_text)).perform(click())
383+ onView(isRoot()).perform(waitFor(100 ))
408384 assertNotNull(activity.model.savedPictureUri)
409385 addUriToDeletionFileList(activity.model.savedPictureUri)
410386 val oldFile = File (activity.model.savedPictureUri.toString())
@@ -414,11 +390,9 @@ class MenuFileActivityIntegrationTest {
414390 onData(allOf(`is `(instanceOf<Any >(String ::class .java)), `is `<String >(" jpg" )))
415391 .inRoot(RootMatchers .isPlatformPopup()).perform(click())
416392 onView(withId(R .id.pocketpaint_image_name_save_text))
417- .perform(replaceText(TEMP_PICTURE_NAME ))
418- runBlocking {
419- onView(withText(R .string.save_button_text)).perform(click())
420- delay(100 )
421- }
393+ .perform(replaceText(defaultFileName))
394+ onView(withText(R .string.save_button_text)).perform(click())
395+ onView(isRoot()).perform(waitFor(100 ))
422396 assertNotNull(activity.model.savedPictureUri)
423397 addUriToDeletionFileList(activity.model.savedPictureUri)
424398 val newFile = File (activity.model.savedPictureUri.toString())
@@ -468,10 +442,8 @@ class MenuFileActivityIntegrationTest {
468442 onView(withId(R .id.pocketpaint_save_dialog_spinner)).perform(click())
469443 onData(allOf(`is `(instanceOf<Any >(String ::class .java)), `is `<String >(" png" )))
470444 .inRoot(RootMatchers .isPlatformPopup()).perform(click())
471- runBlocking {
472- onView(withText(R .string.save_button_text)).perform(click())
473- delay(100 )
474- }
445+ onView(withText(R .string.save_button_text)).perform(click())
446+ onView(isRoot()).perform(waitFor(100 ))
475447 assertNotNull(activity.model.savedPictureUri)
476448 addUriToDeletionFileList(activity.model.savedPictureUri)
477449 onTopBarView().performOpenMoreOptions()
@@ -491,10 +463,8 @@ class MenuFileActivityIntegrationTest {
491463 onView(withId(R .id.pocketpaint_save_dialog_spinner)).perform(click())
492464 onData(allOf(`is `(instanceOf<Any >(String ::class .java)), `is `<String >(" png" )))
493465 .inRoot(RootMatchers .isPlatformPopup()).perform(click())
494- runBlocking {
495- onView(withText(R .string.save_button_text)).perform(click())
496- delay(100 )
497- }
466+ onView(withText(R .string.save_button_text)).perform(click())
467+ onView(isRoot()).perform(waitFor(100 ))
498468 onTopBarView().performOpenMoreOptions()
499469 onView(withText(R .string.menu_save_copy)).perform(click())
500470 imageNumber = launchActivityRule.activity.presenter.imageNumber
0 commit comments