@@ -41,26 +41,25 @@ import androidx.test.espresso.intent.Intents
41
41
import androidx.test.espresso.intent.matcher.IntentMatchers.hasAction
42
42
import androidx.test.espresso.intent.rule.IntentsTestRule
43
43
import 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
46
46
import androidx.test.espresso.matcher.ViewMatchers.withId
47
+ import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
47
48
import androidx.test.espresso.matcher.ViewMatchers.withSpinnerText
48
- import androidx.test.espresso.matcher.ViewMatchers.withText
49
+ import androidx.test.espresso.matcher.ViewMatchers.isClickable
49
50
import androidx.test.ext.junit.runners.AndroidJUnit4
50
51
import androidx.test.rule.GrantPermissionRule
51
- import kotlinx.coroutines.delay
52
- import kotlinx.coroutines.runBlocking
53
52
import org.catrobat.paintroid.FileIO
54
53
import org.catrobat.paintroid.MainActivity
55
54
import org.catrobat.paintroid.R
56
- import org.catrobat.paintroid.common.TEMP_PICTURE_NAME
57
55
import org.catrobat.paintroid.presenter.MainActivityPresenter
58
56
import org.catrobat.paintroid.test.espresso.util.BitmapLocationProvider
59
57
import org.catrobat.paintroid.test.espresso.util.DrawingSurfaceLocationProvider.HALFWAY_BOTTOM_MIDDLE
60
58
import org.catrobat.paintroid.test.espresso.util.DrawingSurfaceLocationProvider.HALFWAY_RIGHT_MIDDLE
61
59
import org.catrobat.paintroid.test.espresso.util.DrawingSurfaceLocationProvider.MIDDLE
62
60
import org.catrobat.paintroid.test.espresso.util.EspressoUtils.grantPermissionRulesVersionCheck
63
61
import org.catrobat.paintroid.test.espresso.util.UiInteractions.touchAt
62
+ import org.catrobat.paintroid.test.espresso.util.UiInteractions.waitFor
64
63
import org.catrobat.paintroid.test.espresso.util.wrappers.DrawingSurfaceInteraction.onDrawingSurfaceView
65
64
import org.catrobat.paintroid.test.espresso.util.wrappers.ToolBarViewInteraction
66
65
import org.catrobat.paintroid.test.espresso.util.wrappers.TopBarViewInteraction.onTopBarView
@@ -95,6 +94,7 @@ class MenuFileActivityIntegrationTest {
95
94
var screenshotOnFailRule = ScreenshotOnFailRule ()
96
95
97
96
private lateinit var activity: MainActivity
97
+ private var defaultFileName = " menuTestDefaultFile"
98
98
99
99
companion object {
100
100
private lateinit var deletionFileList: ArrayList <File ?>
@@ -125,17 +125,12 @@ class MenuFileActivityIntegrationTest {
125
125
onDrawingSurfaceView().checkPixelColor(Color .BLACK , BitmapLocationProvider .MIDDLE )
126
126
onTopBarView().performOpenMoreOptions()
127
127
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 ))
133
130
onView(withId(R .id.pocketpaint_image_name_save_text))
134
131
.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 ))
139
134
onDrawingSurfaceView().checkPixelColor(Color .TRANSPARENT , BitmapLocationProvider .MIDDLE )
140
135
}
141
136
@@ -236,10 +231,8 @@ class MenuFileActivityIntegrationTest {
236
231
onView(withText(R .string.menu_save_image)).perform(click())
237
232
onView(withId(R .id.pocketpaint_image_name_save_text))
238
233
.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 ))
243
236
assertNotNull(activity.model.savedPictureUri)
244
237
addUriToDeletionFileList(activity.model.savedPictureUri)
245
238
assertTrue(activity.model.isSaved)
@@ -250,10 +243,8 @@ class MenuFileActivityIntegrationTest {
250
243
onDrawingSurfaceView().perform(touchAt(MIDDLE ))
251
244
onTopBarView().performOpenMoreOptions()
252
245
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 ))
257
248
assertNotNull(activity.model.savedPictureUri)
258
249
if (! activity.model.isOpenedFromCatroid) {
259
250
assertNotSame(
@@ -275,10 +266,8 @@ class MenuFileActivityIntegrationTest {
275
266
onView(withText(R .string.menu_save_image)).perform(click())
276
267
onView(withId(R .id.pocketpaint_image_name_save_text))
277
268
.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 ))
282
271
assertNotNull(activity.model.savedPictureUri)
283
272
if (! activity.model.isOpenedFromCatroid) {
284
273
assertNotSame(
@@ -295,10 +284,8 @@ class MenuFileActivityIntegrationTest {
295
284
onView(withText(R .string.menu_save_copy)).perform(click())
296
285
onView(withId(R .id.pocketpaint_image_name_save_text))
297
286
.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 ))
302
289
val newFile = File (activity.model.savedPictureUri.toString())
303
290
assertNotSame(" Changes to saved" , oldFile, newFile)
304
291
assertNotNull(activity.model.savedPictureUri)
@@ -318,10 +305,8 @@ class MenuFileActivityIntegrationTest {
318
305
onView(withText(R .string.menu_save_image)).perform(click())
319
306
onView(withId(R .id.pocketpaint_image_name_save_text))
320
307
.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 ))
325
310
assertNotNull(activity.model.savedPictureUri)
326
311
addUriToDeletionFileList(activity.model.savedPictureUri)
327
312
onDrawingSurfaceView().perform(touchAt(MIDDLE ))
@@ -336,18 +321,14 @@ class MenuFileActivityIntegrationTest {
336
321
onView(withText(R .string.menu_save_image)).perform(click())
337
322
onView(withId(R .id.pocketpaint_image_name_save_text))
338
323
.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 ))
343
326
assertNotNull(activity.model.savedPictureUri)
344
327
addUriToDeletionFileList(activity.model.savedPictureUri)
345
328
onTopBarView().performOpenMoreOptions()
346
329
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 ))
351
332
onView(withText(R .string.overwrite_button_text)).check(matches(isDisplayed()))
352
333
}
353
334
@@ -357,15 +338,14 @@ class MenuFileActivityIntegrationTest {
357
338
val imageNumber = launchActivityRule.activity.presenter.imageNumber
358
339
onTopBarView().performOpenMoreOptions()
359
340
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 ))
364
343
assertNotNull(activity.model.savedPictureUri)
365
344
addUriToDeletionFileList(activity.model.savedPictureUri)
366
345
onDrawingSurfaceView().perform(touchAt(MIDDLE ))
367
346
onTopBarView().performOpenMoreOptions()
368
347
onView(withText(R .string.menu_save_image)).perform(click())
348
+ onView(isRoot()).perform(waitFor(200 ))
369
349
val newImageNumber = launchActivityRule.activity.presenter.imageNumber
370
350
assertEquals((imageNumber + 1 ).toLong(), newImageNumber.toLong())
371
351
}
@@ -378,10 +358,8 @@ class MenuFileActivityIntegrationTest {
378
358
val imageNumber = launchActivityRule.activity.presenter.imageNumber
379
359
onView(withId(R .id.pocketpaint_image_name_save_text))
380
360
.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 ))
385
363
assertNotNull(activity.model.savedPictureUri)
386
364
addUriToDeletionFileList(activity.model.savedPictureUri)
387
365
val newImageNumber = launchActivityRule.activity.presenter.imageNumber
@@ -400,11 +378,9 @@ class MenuFileActivityIntegrationTest {
400
378
onData(allOf(`is `(instanceOf<Any >(String ::class .java)), `is `<String >(" png" )))
401
379
.inRoot(RootMatchers .isPlatformPopup()).perform(click())
402
380
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 ))
408
384
assertNotNull(activity.model.savedPictureUri)
409
385
addUriToDeletionFileList(activity.model.savedPictureUri)
410
386
val oldFile = File (activity.model.savedPictureUri.toString())
@@ -414,11 +390,9 @@ class MenuFileActivityIntegrationTest {
414
390
onData(allOf(`is `(instanceOf<Any >(String ::class .java)), `is `<String >(" jpg" )))
415
391
.inRoot(RootMatchers .isPlatformPopup()).perform(click())
416
392
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 ))
422
396
assertNotNull(activity.model.savedPictureUri)
423
397
addUriToDeletionFileList(activity.model.savedPictureUri)
424
398
val newFile = File (activity.model.savedPictureUri.toString())
@@ -468,10 +442,8 @@ class MenuFileActivityIntegrationTest {
468
442
onView(withId(R .id.pocketpaint_save_dialog_spinner)).perform(click())
469
443
onData(allOf(`is `(instanceOf<Any >(String ::class .java)), `is `<String >(" png" )))
470
444
.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 ))
475
447
assertNotNull(activity.model.savedPictureUri)
476
448
addUriToDeletionFileList(activity.model.savedPictureUri)
477
449
onTopBarView().performOpenMoreOptions()
@@ -491,10 +463,8 @@ class MenuFileActivityIntegrationTest {
491
463
onView(withId(R .id.pocketpaint_save_dialog_spinner)).perform(click())
492
464
onData(allOf(`is `(instanceOf<Any >(String ::class .java)), `is `<String >(" png" )))
493
465
.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 ))
498
468
onTopBarView().performOpenMoreOptions()
499
469
onView(withText(R .string.menu_save_copy)).perform(click())
500
470
imageNumber = launchActivityRule.activity.presenter.imageNumber
0 commit comments