Skip to content

Commit 72fd340

Browse files
committed
PAINTROID-396 Multiline tool with movable intermediate points
test undo
1 parent 4ff166c commit 72fd340

File tree

1 file changed

+101
-45
lines changed

1 file changed

+101
-45
lines changed

Paintroid/src/androidTest/java/org/catrobat/paintroid/test/espresso/tools/DynamicLineToolIntegrationTest.kt

+101-45
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ import org.junit.runner.RunWith
5959
class DynamicLineToolIntegrationTest {
6060

6161
private val colorStringIndex0 = "#FF0074CD"
62-
private val colorStringIndex1 = "#FF00B4F1"
62+
// private val colorStringIndex1 = "#FF00B4F1"
6363
private val colorStringIndex2 = "#FF078707"
6464
private val colorStringBlack = "#FF000000"
6565
private val colorStringTransparent = "#00000000"
@@ -368,48 +368,6 @@ class DynamicLineToolIntegrationTest {
368368
TopBarViewInteraction.onTopBarView().performClickCheckmark()
369369
}
370370

371-
@Test
372-
fun testColorChangesInConnectedLineMode() {
373-
ToolPropertiesInteraction.onToolProperties().setColor(Color.parseColor(colorStringBlack))
374-
375-
touchAt(DrawingSurfaceLocationProvider.HALFWAY_LEFT_MIDDLE)
376-
touchAt(DrawingSurfaceLocationProvider.HALFWAY_RIGHT_MIDDLE)
377-
378-
TopBarViewInteraction.onTopBarView().performClickPlus()
379-
380-
touchAt(DrawingSurfaceLocationProvider.HALFWAY_BOTTOM_RIGHT)
381-
382-
TestUtils.selectColorInDialog(0)
383-
checkPixelColor(colorStringIndex0, BitmapLocationProvider.HALFWAY_BOTTOM_RIGHT)
384-
385-
TestUtils.selectColorInDialog(1)
386-
checkPixelColor(colorStringIndex1, BitmapLocationProvider.HALFWAY_BOTTOM_RIGHT)
387-
388-
TopBarViewInteraction.onTopBarView().performUndo()
389-
checkPixelColor(colorStringIndex0, BitmapLocationProvider.HALFWAY_BOTTOM_RIGHT)
390-
391-
TopBarViewInteraction.onTopBarView().performRedo()
392-
checkPixelColor(colorStringIndex1, BitmapLocationProvider.HALFWAY_BOTTOM_RIGHT)
393-
394-
TopBarViewInteraction.onTopBarView().performUndo()
395-
TopBarViewInteraction.onTopBarView().performUndo()
396-
TopBarViewInteraction.onTopBarView().performUndo()
397-
398-
checkPixelColor(colorStringTransparent, BitmapLocationProvider.HALFWAY_BOTTOM_RIGHT)
399-
400-
TopBarViewInteraction.onTopBarView().performUndo()
401-
checkPixelColor(colorStringTransparent, BitmapLocationProvider.MIDDLE)
402-
403-
TopBarViewInteraction.onTopBarView().performRedo()
404-
TopBarViewInteraction.onTopBarView().performRedo()
405-
TopBarViewInteraction.onTopBarView().performRedo()
406-
TopBarViewInteraction.onTopBarView().performRedo()
407-
408-
checkPixelColor(colorStringIndex0, BitmapLocationProvider.HALFWAY_BOTTOM_RIGHT)
409-
410-
TopBarViewInteraction.onTopBarView().performClickCheckmark()
411-
}
412-
413371
@Test
414372
fun testColorChangesAndQuittingConnectedLineMode() {
415373
ToolPropertiesInteraction.onToolProperties().setColor(Color.BLACK)
@@ -457,8 +415,7 @@ class DynamicLineToolIntegrationTest {
457415
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_MIDDLE)
458416
touchAt(DrawingSurfaceLocationProvider.HALFWAY_BOTTOM_MIDDLE)
459417
touchAt(DrawingSurfaceLocationProvider.BOTTOM_MIDDLE)
460-
touchAt(DrawingSurfaceLocationProvider.BOTTOM_RIGHT_CLOSE_CENTER)
461-
418+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_RIGHT_MIDDLE)
462419

463420
val currentTool = launchActivityRule.activity.defaultToolController.currentTool as DynamicLineTool
464421
Assert.assertEquals(2, currentTool.vertexStack.size)
@@ -560,6 +517,105 @@ class DynamicLineToolIntegrationTest {
560517
checkPixelColor(colorStringBlack, BitmapLocationProvider.HALFWAY_BOTTOM_RIGHT)
561518
}
562519

520+
@Test
521+
fun testUndoOnlyPathResetsVertexStack() {
522+
val currentTool = launchActivityRule.activity.defaultToolController.currentTool as DynamicLineTool
523+
ToolPropertiesInteraction.onToolProperties().setColor(Color.BLACK)
524+
525+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_LEFT)
526+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_RIGHT)
527+
528+
Assert.assertEquals(2, currentTool.vertexStack.size)
529+
530+
TopBarViewInteraction.onTopBarView().performUndo()
531+
532+
Assert.assertEquals(0, currentTool.vertexStack.size)
533+
}
534+
535+
@Test
536+
fun testUndoOnlyPathRebuildsVertexStackAfterCheckmark() {
537+
val currentTool = launchActivityRule.activity.defaultToolController.currentTool as DynamicLineTool
538+
ToolPropertiesInteraction.onToolProperties().setColor(Color.BLACK)
539+
540+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_LEFT)
541+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_RIGHT)
542+
543+
Assert.assertEquals(2, currentTool.vertexStack.size)
544+
545+
TopBarViewInteraction.onTopBarView().performClickCheckmark()
546+
547+
Assert.assertEquals(0, currentTool.vertexStack.size)
548+
549+
TopBarViewInteraction.onTopBarView().performUndo()
550+
551+
Assert.assertEquals(2, currentTool.vertexStack.size)
552+
}
553+
554+
@Test
555+
fun testUndoSecondPathDecreasesVertexStackByOne() {
556+
val currentTool = launchActivityRule.activity.defaultToolController.currentTool as DynamicLineTool
557+
ToolPropertiesInteraction.onToolProperties().setColor(Color.BLACK)
558+
559+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_LEFT)
560+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_RIGHT)
561+
562+
Assert.assertEquals(2, currentTool.vertexStack.size)
563+
564+
TopBarViewInteraction.onTopBarView().performClickPlus()
565+
566+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_BOTTOM_RIGHT)
567+
568+
Assert.assertEquals(3, currentTool.vertexStack.size)
569+
570+
TopBarViewInteraction.onTopBarView().performUndo()
571+
572+
Assert.assertEquals(2, currentTool.vertexStack.size)
573+
}
574+
575+
@Test
576+
fun testUndoAfterTwoPathsRebuildsVertexStackAfterCheckmark() {
577+
val currentTool = launchActivityRule.activity.defaultToolController.currentTool as DynamicLineTool
578+
ToolPropertiesInteraction.onToolProperties().setColor(Color.BLACK)
579+
580+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_LEFT)
581+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_RIGHT)
582+
583+
Assert.assertEquals(2, currentTool.vertexStack.size)
584+
585+
TopBarViewInteraction.onTopBarView().performClickPlus()
586+
587+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_BOTTOM_RIGHT)
588+
589+
Assert.assertEquals(3, currentTool.vertexStack.size)
590+
591+
TopBarViewInteraction.onTopBarView().performClickCheckmark()
592+
TopBarViewInteraction.onTopBarView().performUndo()
593+
594+
Assert.assertEquals(3, currentTool.vertexStack.size)
595+
}
596+
597+
@Test
598+
fun testTwiceUndoResetsVertexStack() {
599+
val currentTool = launchActivityRule.activity.defaultToolController.currentTool as DynamicLineTool
600+
ToolPropertiesInteraction.onToolProperties().setColor(Color.BLACK)
601+
602+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_LEFT)
603+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_TOP_RIGHT)
604+
605+
Assert.assertEquals(2, currentTool.vertexStack.size)
606+
607+
TopBarViewInteraction.onTopBarView().performClickPlus()
608+
609+
touchAt(DrawingSurfaceLocationProvider.HALFWAY_BOTTOM_RIGHT)
610+
611+
Assert.assertEquals(3, currentTool.vertexStack.size)
612+
613+
TopBarViewInteraction.onTopBarView().performUndo()
614+
TopBarViewInteraction.onTopBarView().performUndo()
615+
616+
Assert.assertEquals(0, currentTool.vertexStack.size)
617+
}
618+
563619
private fun checkPixelColor(colorString: String, position: BitmapLocationProvider) {
564620
DrawingSurfaceInteraction.onDrawingSurfaceView()
565621
.checkPixelColor(Color.parseColor(colorString), position)

0 commit comments

Comments
 (0)