From 725dffa69e23b4bfd684504476836a5496b09ac8 Mon Sep 17 00:00:00 2001 From: "ricardo.jl.rufino" Date: Wed, 22 Apr 2015 13:52:31 -0300 Subject: [PATCH] updated tests for new Textarea --- .../app/AutoformatSavesCaretPositionTest.java | 4 +- app/test/processing/app/AutoformatTest.java | 4 +- ...lockCommentGeneratesOneUndoActionTest.java | 11 +-- ...ngEscapeOnCloseConfirmationDialogTest.java | 4 +- .../ReduceIndentWith1CharOnLastLineTest.java | 4 +- ...lacingTextGeneratesTwoUndoActionsTest.java | 10 +-- .../app/helpers/ArduinoFrameFixture.java | 7 +- .../RSyntaxTextAreaComponentDriver.java | 79 +++++++++++++++++++ .../RSyntaxTextAreaComponentMatcher.java | 20 +++++ .../app/helpers/RSyntaxTextAreaFixture.java | 52 ++++++++++++ 10 files changed, 174 insertions(+), 21 deletions(-) create mode 100644 app/test/processing/app/helpers/RSyntaxTextAreaComponentDriver.java create mode 100644 app/test/processing/app/helpers/RSyntaxTextAreaComponentMatcher.java create mode 100644 app/test/processing/app/helpers/RSyntaxTextAreaFixture.java diff --git a/app/test/processing/app/AutoformatSavesCaretPositionTest.java b/app/test/processing/app/AutoformatSavesCaretPositionTest.java index 52112c46f..afc80a856 100644 --- a/app/test/processing/app/AutoformatSavesCaretPositionTest.java +++ b/app/test/processing/app/AutoformatSavesCaretPositionTest.java @@ -31,7 +31,7 @@ package processing.app; import org.fest.swing.fixture.JMenuItemFixture; import org.junit.Test; -import processing.app.helpers.JEditTextAreaFixture; +import processing.app.helpers.RSyntaxTextAreaFixture; import static org.junit.Assert.assertEquals; @@ -42,7 +42,7 @@ public class AutoformatSavesCaretPositionTest extends AbstractGUITest { JMenuItemFixture menuToolsAutoFormat = window.menuItem("menuToolsAutoFormat"); menuToolsAutoFormat.requireEnabled(); - JEditTextAreaFixture editor = window.jEditTextArea("editor"); + RSyntaxTextAreaFixture editor = window.RSyntaxTextArea("editor"); editor.setText("void setup() {\n" + " // put your setup code here, to run once:\n" + "\n" + diff --git a/app/test/processing/app/AutoformatTest.java b/app/test/processing/app/AutoformatTest.java index b5c766bec..b84d054fb 100644 --- a/app/test/processing/app/AutoformatTest.java +++ b/app/test/processing/app/AutoformatTest.java @@ -31,7 +31,7 @@ package processing.app; import org.fest.swing.fixture.JMenuItemFixture; import org.junit.Test; -import processing.app.helpers.JEditTextAreaFixture; +import processing.app.helpers.RSyntaxTextAreaFixture; import static org.junit.Assert.assertEquals; @@ -42,7 +42,7 @@ public class AutoformatTest extends AbstractGUITest { JMenuItemFixture menuToolsAutoFormat = window.menuItem("menuToolsAutoFormat"); menuToolsAutoFormat.requireEnabled(); - JEditTextAreaFixture editor = window.jEditTextArea("editor"); + RSyntaxTextAreaFixture editor = window.RSyntaxTextArea("editor"); editor.setText("void setup() {\n" + "// put your setup code here, to run once:\n" + "int foo[] = { 1, 2, 3, 4, 5};\n" + diff --git a/app/test/processing/app/BlockCommentGeneratesOneUndoActionTest.java b/app/test/processing/app/BlockCommentGeneratesOneUndoActionTest.java index e0a2965d0..1e496b289 100644 --- a/app/test/processing/app/BlockCommentGeneratesOneUndoActionTest.java +++ b/app/test/processing/app/BlockCommentGeneratesOneUndoActionTest.java @@ -29,15 +29,16 @@ package processing.app; +import static org.junit.Assert.assertEquals; + +import java.awt.Frame; + import org.fest.swing.edt.GuiActionRunner; import org.fest.swing.edt.GuiQuery; import org.fest.swing.fixture.JMenuItemFixture; import org.junit.Test; -import processing.app.helpers.JEditTextAreaFixture; -import java.awt.*; - -import static org.junit.Assert.assertEquals; +import processing.app.helpers.RSyntaxTextAreaFixture; public class BlockCommentGeneratesOneUndoActionTest extends AbstractGUITest { @@ -46,7 +47,7 @@ public class BlockCommentGeneratesOneUndoActionTest extends AbstractGUITest { JMenuItemFixture menuEditUndo = window.menuItem("menuEditUndo"); menuEditUndo.requireDisabled(); - JEditTextAreaFixture jEditTextArea = window.jEditTextArea("editor"); + RSyntaxTextAreaFixture jEditTextArea = window.RSyntaxTextArea("editor"); String previousText = jEditTextArea.getText(); jEditTextArea.selectAll(); diff --git a/app/test/processing/app/HittingEscapeOnCloseConfirmationDialogTest.java b/app/test/processing/app/HittingEscapeOnCloseConfirmationDialogTest.java index 447ffd8f3..2bf3d3d7c 100644 --- a/app/test/processing/app/HittingEscapeOnCloseConfirmationDialogTest.java +++ b/app/test/processing/app/HittingEscapeOnCloseConfirmationDialogTest.java @@ -33,7 +33,7 @@ import org.fest.swing.core.KeyPressInfo; import org.fest.swing.finder.WindowFinder; import org.fest.swing.fixture.DialogFixture; import org.junit.Test; -import processing.app.helpers.JEditTextAreaFixture; +import processing.app.helpers.RSyntaxTextAreaFixture; import javax.swing.*; import java.awt.event.KeyEvent; @@ -44,7 +44,7 @@ public class HittingEscapeOnCloseConfirmationDialogTest extends AbstractGUITest @Test public void shouldJustCloseTheDialog() throws Exception { - JEditTextAreaFixture editor = window.jEditTextArea("editor"); + RSyntaxTextAreaFixture editor = window.RSyntaxTextArea("editor"); editor.setText("test"); window.close(); diff --git a/app/test/processing/app/ReduceIndentWith1CharOnLastLineTest.java b/app/test/processing/app/ReduceIndentWith1CharOnLastLineTest.java index c8623cc87..894089bcb 100644 --- a/app/test/processing/app/ReduceIndentWith1CharOnLastLineTest.java +++ b/app/test/processing/app/ReduceIndentWith1CharOnLastLineTest.java @@ -34,7 +34,7 @@ import static org.junit.Assert.assertEquals; import org.fest.swing.fixture.JMenuItemFixture; import org.junit.Test; -import processing.app.helpers.JEditTextAreaFixture; +import processing.app.helpers.RSyntaxTextAreaFixture; public class ReduceIndentWith1CharOnLastLineTest extends AbstractGUITest { @@ -42,7 +42,7 @@ public class ReduceIndentWith1CharOnLastLineTest extends AbstractGUITest { public void shouldJustCloseTheDialog() throws Exception { JMenuItemFixture menuDecreaseIndent = window.menuItem("menuDecreaseIndent"); - JEditTextAreaFixture editor = window.jEditTextArea("editor"); + RSyntaxTextAreaFixture editor = window.RSyntaxTextArea("editor"); editor.setText("void loop()\n{\n Serial.begin(9600)\n}"); editor.selectAll(); diff --git a/app/test/processing/app/ReplacingTextGeneratesTwoUndoActionsTest.java b/app/test/processing/app/ReplacingTextGeneratesTwoUndoActionsTest.java index f7291b51f..565c1b027 100644 --- a/app/test/processing/app/ReplacingTextGeneratesTwoUndoActionsTest.java +++ b/app/test/processing/app/ReplacingTextGeneratesTwoUndoActionsTest.java @@ -31,7 +31,7 @@ package processing.app; import org.fest.swing.fixture.JMenuItemFixture; import org.junit.Test; -import processing.app.helpers.JEditTextAreaFixture; +import processing.app.helpers.RSyntaxTextAreaFixture; import static org.junit.Assert.assertEquals; @@ -44,19 +44,19 @@ public class ReplacingTextGeneratesTwoUndoActionsTest extends AbstractGUITest { JMenuItemFixture menuEditRedo = window.menuItem("menuEditRedo"); menuEditRedo.requireDisabled(); - JEditTextAreaFixture jEditTextArea = window.jEditTextArea("editor"); + RSyntaxTextAreaFixture RSyntaxTextArea = window.RSyntaxTextArea("editor"); - jEditTextArea.setText("fake text"); + RSyntaxTextArea.setText("fake text"); menuEditUndo.requireEnabled(); menuEditUndo.click(); - assertEquals("", jEditTextArea.getText()); + assertEquals("", RSyntaxTextArea.getText()); menuEditRedo.requireEnabled(); menuEditRedo.click(); - //assertEquals("fake text", jEditTextArea.getText()); + //assertEquals("fake text", RSyntaxTextArea.getText()); menuEditUndo.requireEnabled(); menuEditUndo.click(); diff --git a/app/test/processing/app/helpers/ArduinoFrameFixture.java b/app/test/processing/app/helpers/ArduinoFrameFixture.java index 0d425289b..2d3528064 100644 --- a/app/test/processing/app/helpers/ArduinoFrameFixture.java +++ b/app/test/processing/app/helpers/ArduinoFrameFixture.java @@ -30,8 +30,9 @@ package processing.app.helpers; import org.fest.swing.fixture.FrameFixture; +import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; + import processing.app.Editor; -import processing.app.syntax.JEditTextArea; public class ArduinoFrameFixture extends FrameFixture { @@ -42,8 +43,8 @@ public class ArduinoFrameFixture extends FrameFixture { this.editor = editor; } - public JEditTextAreaFixture jEditTextArea(String name) { - return new JEditTextAreaFixture(robot, (JEditTextArea) this.robot.finder().find(new JEditTextAreaComponentMatcher(name))); + public RSyntaxTextAreaFixture RSyntaxTextArea(String name) { + return new RSyntaxTextAreaFixture(robot, (RSyntaxTextArea) this.robot.finder().find(new RSyntaxTextAreaComponentMatcher(name))); } public Editor getEditor() { diff --git a/app/test/processing/app/helpers/RSyntaxTextAreaComponentDriver.java b/app/test/processing/app/helpers/RSyntaxTextAreaComponentDriver.java new file mode 100644 index 000000000..73d2694de --- /dev/null +++ b/app/test/processing/app/helpers/RSyntaxTextAreaComponentDriver.java @@ -0,0 +1,79 @@ +package processing.app.helpers; + +import org.fest.swing.core.Robot; +import org.fest.swing.driver.JComponentDriver; +import org.fest.swing.edt.GuiActionRunner; +import org.fest.swing.edt.GuiQuery; +import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; + +public class RSyntaxTextAreaComponentDriver extends JComponentDriver { + + public RSyntaxTextAreaComponentDriver(Robot robot) { + super(robot); + } + + public void enterText(RSyntaxTextArea target, String text) { + focusAndWaitForFocusGain(target); + robot.enterText(text); + } + + public void setText(final RSyntaxTextArea target, final String text) { + focusAndWaitForFocusGain(target); + GuiActionRunner.execute(new GuiQuery() { + + protected RSyntaxTextArea executeInEDT() { + target.setText(text); + return target; + } + + }); + robot.waitForIdle(); + } + + public String getText(final RSyntaxTextArea target) { + focusAndWaitForFocusGain(target); + return GuiActionRunner.execute(new GuiQuery() { + + protected String executeInEDT() { + return target.getText(); + } + + }); + } + + public RSyntaxTextArea selectAll(final RSyntaxTextArea target) { + return GuiActionRunner.execute(new GuiQuery() { + + protected RSyntaxTextArea executeInEDT() { + target.selectAll(); + return target; + } + + }); + } + + public Integer getCaretPosition(final RSyntaxTextArea target) { + focusAndWaitForFocusGain(target); + return GuiActionRunner.execute(new GuiQuery() { + + protected Integer executeInEDT() { + return target.getCaretPosition(); + } + + }); + } + + public void setCaretPosition(final RSyntaxTextArea target, final int caretPosition) { + focusAndWaitForFocusGain(target); + GuiActionRunner.execute(new GuiQuery() { + + protected RSyntaxTextArea executeInEDT() { + target.setCaretPosition(caretPosition); + return target; + } + + }); + robot.waitForIdle(); + } + +} diff --git a/app/test/processing/app/helpers/RSyntaxTextAreaComponentMatcher.java b/app/test/processing/app/helpers/RSyntaxTextAreaComponentMatcher.java new file mode 100644 index 000000000..27d85f782 --- /dev/null +++ b/app/test/processing/app/helpers/RSyntaxTextAreaComponentMatcher.java @@ -0,0 +1,20 @@ +package processing.app.helpers; + +import java.awt.Component; + +import org.fest.swing.core.ComponentMatcher; +import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; + +public class RSyntaxTextAreaComponentMatcher implements ComponentMatcher { + + private final String name; + + public RSyntaxTextAreaComponentMatcher(String name) { + this.name = name; + } + + @Override + public boolean matches(Component component) { + return component instanceof RSyntaxTextArea && name.equals(component.getName()); + } +} diff --git a/app/test/processing/app/helpers/RSyntaxTextAreaFixture.java b/app/test/processing/app/helpers/RSyntaxTextAreaFixture.java new file mode 100644 index 000000000..4eb1ec11d --- /dev/null +++ b/app/test/processing/app/helpers/RSyntaxTextAreaFixture.java @@ -0,0 +1,52 @@ +package processing.app.helpers; + +import org.fest.swing.core.Robot; +import org.fest.swing.fixture.ComponentFixture; +import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; + +public class RSyntaxTextAreaFixture extends ComponentFixture { + + private final RSyntaxTextAreaComponentDriver driver; + + public RSyntaxTextAreaFixture(Robot robot, Class type) { + super(robot, type); + this.driver = new RSyntaxTextAreaComponentDriver(robot); + } + + public RSyntaxTextAreaFixture(Robot robot, String name, Class type) { + super(robot, name, type); + this.driver = new RSyntaxTextAreaComponentDriver(robot); + } + + public RSyntaxTextAreaFixture(Robot robot, RSyntaxTextArea target) { + super(robot, target); + this.driver = new RSyntaxTextAreaComponentDriver(robot); + } + + public RSyntaxTextAreaFixture enterText(String text) { + driver.enterText((RSyntaxTextArea) target, text); + return this; + } + + public RSyntaxTextAreaFixture setText(String text) { + driver.setText((RSyntaxTextArea) target, text); + return this; + } + + public String getText() { + return driver.getText((RSyntaxTextArea) target); + } + + public RSyntaxTextAreaFixture selectAll() { + driver.selectAll((RSyntaxTextArea) target); + return this; + } + + public int getCaretPosition() { + return driver.getCaretPosition((RSyntaxTextArea) target); + } + + public void setCaretPosition(int caretPosition) { + driver.setCaretPosition((RSyntaxTextArea) target, caretPosition); + } +}