From: <ker...@us...> - 2011-10-30 09:05:33
|
Revision: 20171 http://jedit.svn.sourceforge.net/jedit/?rev=20171&view=rev Author: kerik-sf Date: 2011-10-30 09:05:25 +0000 (Sun, 30 Oct 2011) Log Message: ----------- use the Fest framework Modified Paths: -------------- plugins/SpellCheck/trunk/build.xml plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AspellEngineManagerTest.java plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AspellOptionPaneTest.java plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/BufferDialogValidatorTest.java plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/BufferSpellCheckerTest.java plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/DictionaryPickerTest.java plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/ErrorListSpellCheckerTest.java plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/ErrorListValidatorTest.java plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/SpellCheckOptionPaneTest.java plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/SpellCheckPluginTest.java plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/TestUtils.java plugins/SpellCheck/trunk/src/test/cswilly/spell/AspellEngineTest.java plugins/SpellCheck/trunk/src/test/cswilly/spell/ValidationDialogTest.java Removed Paths: ------------- plugins/SpellCheck/trunk/lib/MRJToolkitStubs-1.0.jar plugins/SpellCheck/trunk/lib/fest-assert-1.0a1.jar plugins/SpellCheck/trunk/lib/fest-reflect-0.4.jar plugins/SpellCheck/trunk/lib/fest-swing-1.0b1.jar plugins/SpellCheck/trunk/lib/fest-util-0.4.jar plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AbstractButtonTextMatcher.java plugins/SpellCheck/trunk/src/test/org/ plugins/SpellCheck/trunk/tests/settings/ Modified: plugins/SpellCheck/trunk/build.xml =================================================================== --- plugins/SpellCheck/trunk/build.xml 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/build.xml 2011-10-30 09:05:25 UTC (rev 20171) @@ -14,47 +14,126 @@ <!-- where the source code lives --> <property name="src.dir" value="src/main"/> - <!-- separate dir for test code (see test.compile) --> - <property name="src.test.dir" value="src/test"/> - <!-- separate dir for images --> <property name="resources.dir" value="resources"/> <!-- for build-support location --> - <property file="../build.properties"/> + <property file="build.properties"/> <!-- build support --> <import file="${build.support}/plugin-build.xml" /> - <!-- TODO: put this in properties --> - <path id="fest.class.path"> - <pathelement location="lib/fest-swing-1.0b1.jar"/> - <pathelement location="lib/fest-util-0.4.jar"/> - <pathelement location="lib/fest-reflect-0.4.jar"/> - <pathelement location="lib/fest-assert-1.0a1.jar"/> - </path> - - <!-- TODO: make use of recursive dependencies build --> - <path id="plugins.class.path"> - <pathelement location="${install.dir}/ErrorList.jar"/> - <pathelement location="${install.dir}/CommonControls.jar"/> - <pathelement location="${install.dir}/kappalayout.jar"/> - <pathelement location="${install.dir}/VoxSpell.jar"/> - </path> - - <path id="hunspell.class.path"> - <pathelement location="lib/hunspell.jar"/> - </path> - - <!-- consists in previously defined paths --> - <path id="project.class.path"> - <path refid="plugins.class.path"/> - <path refid="fest.class.path"/> - <path refid="hunspell.class.path"/> - </path> - - <!-- where to put tests results --> - <property name="build.tests" value="${build.dir}/tests" /> + <!-- {{{ use Fest for junit testing --> + <!-- location of the test framework, this should be set in the build.properties + file loaded above. --> + <property name="test.framework.home" location="/home/danson/src/jEditTestFramework"/> + + <!-- test source and classes --> + <property name="project.test.src.dir" location="${basedir}/src/test"/> + <property name="project.test.classes.dir" location="${build.dir}/testclasses"/> + <mkdir dir="${project.test.classes.dir}"/> + <property name="project.src.dir" location="${basedir}/src/main"/> + + <!-- marker property to indicate to the test framework that plugin jars + need to be copied --> + <property name="copyPluginJars" value=""/> + + <property name="project.toinstrument.jar" value="SpellCheck.jar"/> + + <path id="project.src.dir" path="./src/main"/> + + <!-- full list of all jar files necessary to let jEdit load and run + the plugin. All of these files will be copied to the jedit_settings/jar + directory. --> + <filelist id="plugin.jars" dir="${install.dir}"> + <!-- SpellCheck --> + <file name="SpellCheck.jar"/> + <file name="hunspell.jar"/> + <file name="jna.jar"/> + <!-- ErrorList --> + <file name="ErrorList.jar"/> + <!-- Common Controls --> + <file name="CommonControls.jar"/> + <file name="kappalayout.jar"/> + <!-- VoxSpell --> + <file name="VoxSpell.jar"/> + </filelist> + + <fileset id="project.resources" dir="tests" defaultexcludes="yes"> + <include name="BAH"/> + </fileset> + + <!-- include everything needed to let jEdit load the plugin and run the + unit tests. This should include all the jars listed in the plugin.jars + file list defined above. --> + <path id="project.class.path"> + <pathelement path="${project.test.classes.dir}"/> + <path> + <filelist refid="plugin.jars"/> + </path> + </path> + + <!-- include the classes for which you would like to see the coverage report --> + <property name="emma.filter" value="*"/> + + <!-- these are the actual test files to compile. This is included so it + is easy to fine tune which tests are compiled and ran. --> + <selector id="projectFiles"> + <filename name="**/*.java" /> + </selector> + + <!-- this selector holds all test cases. This is optional. --> + <selector id="testcases.all"> + <or> + <filename name="**/*Test.java"/> + </or> + </selector> + + <!-- this selector holds just one test. This is optional. --> + <selector id="testcases.current"> + <filename name="cswilly/spell/AspellEngineTest.java"/> + </selector> + + <!-- this selector controls which tests to run, set the refid to either + testcases.current to run just one test or testcases.all to run all tests, + or some other selector. This is NOT optional, if this selector is not + defined, no tests will run. --> + <selector id="junit.testcases"> + <or> + <selector refid="testcases.current"/> + </or> + </selector> + + <!-- set any system properties, this is a way to let tests know things + without hardcoding values directly in the tests. --> + <property name="test-tests.dir" location="tests"/> + <property name="test-jedit.aspell-exe" location="/opt/local/bin/aspell"/> + <propertyset id="project.test.sysproperties"> + <propertyref name="test-tests.dir"/> + <propertyref name="test-jedit.aspell-exe"/> + </propertyset> + + <!-- actually call the test framework to run the tests. inheritRefs must + be true so that all of the things defined above are known to the test + framework. --> + <target name="test-junit"> + <ant antfile="${test.framework.home}/build.xml" target="-test" inheritRefs="true"> + <reference refid="project.test.sysproperties"/> + </ant> + </target> + + <target name="test-all" description="run all tests"> + <selector id="junit.testcases"> + <or> + <selector refid="testcases.all"/> + </or> + </selector> + <ant antfile="${test.framework.home}/build.xml" target="-test" inheritRefs="true"> + <reference refid="project.test.sysproperties"/> + </ant> + </target> + <!-- }}} --> + <!-- I use a separate target to build the tests --> <selector id="compileFiles"> <filename name="**/*.java" /> @@ -83,11 +162,9 @@ description="Compile the plugin's test classes" depends="compile"> - <mkdir dir="${build.classes}" /> - <jp.javac> - <src location="${src.test.dir}" /> - <selector refid="compileFiles"/> - </jp.javac> + <ant antfile="${test.framework.home}/build.xml" target="-compileTests" inheritRefs="true"> + <reference refid="project.test.sysproperties"/> + </ant> </target> @@ -122,120 +199,11 @@ </or> </selector> - <!-- this selector holds current test... --> - <selector id="testcases.current"> - <filename name="**/cswilly/jeditPlugins/spell/SpellCheckPluginTest.java"/> - </selector> - <!-- This selector controls which tests to run. --> - <selector id="junit.testcases"> - <or> - <selector refid="testcases.current"/> - </or> - </selector> - - - <!-- for junit tests --> <property name="unit.test.target" value="test-junit"/> - <!-- {{{ Target: test-junit============================ --> - <!-- started as a copy of plugin-build.xml, but added system properties, - batch-processing. - --> - <target name="test-junit" - description="Runs the plugin's jUnit tests." - depends="test.compile,test.prepare"> - <echo message="Running tests..."/> - - <junit printsummary="${junit.printsummary}" - haltonfailure="${junit.haltonfailure}" showoutput="${junit.showoutput}" - fork="yes"> - - <sysproperty key="test-jedit.settings" path="${build.dir}/settings"/> - <sysproperty key="test-jedit.aspell-exe" path="/opt/local/bin/aspell"/> - <sysproperty key="test-tests.dir" path="tests"/> - - <sysproperty key="jedit.home" path="${jedit.install.dir}"/> - - <classpath> - <pathelement location="${junit.jar}" /> - - <!-- for junit annotations --> - <pathelement location="${hamcrest.jar}" /> - - <pathelement location="${build.classes}" /> - <path refid="default.class.path" /> - <path refid="project.class.path" /> - </classpath> - - <batchtest todir="${build.tests}"> - <fileset dir="${src.test.dir}"> - <selector refid="junit.testcases"/> - </fileset> - </batchtest> - <formatter type="brief"/> - </junit> - - </target> - <!-- ===============================================}}} --> - - <target name="test.prepare" - description="creates fresh jedit settings directory for tests"> - <!--depends="test.compile">--> - <mkdir dir="${build.tests}"/> - <delete dir="${build.dir}/settings"/> - <copy todir="${build.dir}/settings"> - <fileset dir="tests/settings"/> - </copy> - <antcall target="build"> - <param name="want-to-test" value="yes"/> - </antcall> - <echo message="Preparing tests"/> - - <copy todir="${build.dir}/settings/jars"> - <fileset dir="${install.dir}"> - <filename name="*.jar"/> - </fileset> - - <fileset dir="./lib"> - <include name="jna.jar"/> - <include name="hunspell.jar"/> - </fileset> - - <path refid="project.class.path"/> - <flattenmapper/> - </copy> - </target> - - <!-- remove test classes from build directory. - The property 'want-to-test' is to protect test.prepare which - needs these classes ! - --> - <target name="build.remove-tests" - depends="compile" - description="Remove Unit-Tests from the build classes" - unless="want-to-test"> - <echo message="Removing test classes.."/> - <delete dir="${build.classes}"> - <and> - <filename name="**/*Test*.class"/> - <not><filename name="cswilly/spell/Test.class"/></not> - </and> - </delete> - </target> - - <target name="build.prepare" - depends="build.remove-tests"> - <mkdir dir="${build.extras}" /> - <copy todir="${build.extras}"> - <fileset dir="${resources.dir}"> - <include name="**/*.png"/> - </fileset> - </copy> - </target> - - <target name="run" depends="test.compile,test.prepare"> + <target name="run" depends="build.prepare"> <java fork="true" classname="org.gjt.sp.jedit.jEdit"> <arg value="-norestore"/> <arg value="-noserver"/> Deleted: plugins/SpellCheck/trunk/lib/MRJToolkitStubs-1.0.jar =================================================================== (Binary files differ) Deleted: plugins/SpellCheck/trunk/lib/fest-assert-1.0a1.jar =================================================================== (Binary files differ) Deleted: plugins/SpellCheck/trunk/lib/fest-reflect-0.4.jar =================================================================== (Binary files differ) Deleted: plugins/SpellCheck/trunk/lib/fest-swing-1.0b1.jar =================================================================== (Binary files differ) Deleted: plugins/SpellCheck/trunk/lib/fest-util-0.4.jar =================================================================== (Binary files differ) Deleted: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AbstractButtonTextMatcher.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AbstractButtonTextMatcher.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AbstractButtonTextMatcher.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -1,53 +0,0 @@ -/* -* $Revision$ -* $Date$ -* $Author$ -* -* Copyright (C) 2008 Eric Le Lay -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ - -package cswilly.jeditPlugins.spell; - - -//{{{ Imports - -//{{{ Java Classpath -import javax.swing.*; -//}}} - - - -//{{{ FEST... -import org.fest.swing.fixture.*; -import org.fest.swing.core.*; -import org.fest.swing.finder.WindowFinder; -//}}} - - - -///}}} - -public class AbstractButtonTextMatcher -{ - static <T extends AbstractButton> GenericTypeMatcher<T> withText(Class<T> classe,final String text){ - return new GenericTypeMatcher<T>(){ - @Override protected boolean isMatching(T button) { - return text.equals(button.getText()); - } - }; - } -} Modified: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AspellEngineManagerTest.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AspellEngineManagerTest.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AspellEngineManagerTest.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -52,7 +52,9 @@ import cswilly.spell.Engine; import cswilly.spell.Result; -import static cswilly.jeditPlugins.spell.TestUtils.*; +import org.gjt.sp.jedit.testframework.TestUtils; +import static org.gjt.sp.jedit.testframework.TestUtils.*; +import static cswilly.jeditPlugins.spell.TestUtils.ENV_ASPELL_EXE; /** @@ -69,12 +71,12 @@ exePath = System.getProperty(ENV_ASPELL_EXE); assertTrue("Forgot to set env. variable '"+ENV_ASPELL_EXE+"'",exePath!=null); - TestUtils.setUpjEdit(); + TestUtils.beforeClass(); } @AfterClass public static void tearDownjEdit(){ - TestUtils.tearDownjEdit(); + TestUtils.afterClass(); } @Before Modified: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AspellOptionPaneTest.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AspellOptionPaneTest.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/AspellOptionPaneTest.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -49,10 +49,9 @@ import org.fest.swing.fixture.*; import org.fest.swing.core.*; import org.fest.swing.finder.WindowFinder; -import org.fest.swing.finder.DialogByTitleFinder; -import static org.fest.swing.fixture.TableCell.row; import org.fest.swing.cell.JTreeCellReader; import org.fest.swing.driver.BasicJTreeCellReader; +import static org.fest.swing.data.TableCell.row; //}}} import cswilly.spell.ValidationDialog; @@ -60,7 +59,10 @@ ///}}} -import static cswilly.jeditPlugins.spell.TestUtils.*; +import static org.gjt.sp.jedit.testframework.TestUtils.*; +import org.gjt.sp.jedit.testframework.TestUtils; +import org.gjt.sp.jedit.testframework.*; +import static cswilly.jeditPlugins.spell.TestUtils.ENV_ASPELL_EXE; /** * Test the functionality of the Options pane @@ -100,20 +102,13 @@ @Test public void testExePath(){ + System.err.println("testExePath"); jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); - TestUtils.jeditFrame().menuItemWithPath("Plugins","Plugin Options...").click(); + PluginOptionsFixture optionsDialog = TestUtils.pluginOptions(); - DialogFixture optionsDialog = WindowFinder.findDialog(PluginOptions.class).withTimeout(5000).using(TestUtils.robot()); + JPanelFixture pane = optionsDialog.optionPane("Spell Check/Aspell Engine","spellcheck.aspell"); - TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","Aspell Engine"}); - - JPanelFixture pane = optionsDialog.panel(new GenericTypeMatcher<AspellOptionPane>(){ - @Override protected boolean isMatching(AspellOptionPane ignored) { - return true; - } - }); - JTextComponentFixture f = pane.textBox("AspellPath"); f.select(f.text()).deleteText().enterText(testsDir+"/sink.sh"); @@ -133,7 +128,7 @@ try{Thread.sleep(2000);}catch(InterruptedException ie){} alertDialog = TestUtils.findDialogByTitle("I/O Error"); - alertDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + alertDialog.button(org.fest.swing.core.matcher.JButtonMatcher.withText("OK")).click(); try{Thread.sleep(2000);}catch(InterruptedException ie){} alertDialog.requireNotVisible(); @@ -150,29 +145,22 @@ alertDialog.requireNotVisible(); - optionsDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + optionsDialog.button(org.fest.swing.core.matcher.JButtonMatcher.withText("OK")).click(); assertEquals(testsDir+"/spellcheck_ok.sh",jEdit.getProperty(AspellEngineManager.ASPELL_EXE_PROP)); } @Test public void testModes(){ + System.err.println("testModes"); jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); jEdit.setProperty(AspellEngineManager.ASPELL_MARKUP_MODE_PROP,"aspellManualMarkupMode"); - TestUtils.jeditFrame().menuItemWithPath("Plugins","Plugin Options...").click(); + PluginOptionsFixture optionsDialog = TestUtils.pluginOptions(); - DialogFixture optionsDialog = WindowFinder.findDialog(PluginOptions.class).withTimeout(5000).using(TestUtils.robot()); - - TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","Aspell Engine"}); + JPanelFixture pane = optionsDialog.optionPane("Spell Check/Aspell Engine","spellcheck.aspell"); - JPanelFixture pane = optionsDialog.panel(new GenericTypeMatcher<AspellOptionPane>(){ - @Override protected boolean isMatching(AspellOptionPane ignored) { - return true; - } - }); - /* buttons in place */ for(AspellEngineManager.AspellMarkupMode mode: AspellEngineManager.AspellMarkupMode.values()){ pane.radioButton(mode.toString()).requireVisible(); @@ -186,29 +174,23 @@ pane.radioButton(AspellEngineManager.AspellMarkupMode.NO_MARKUP_MODE.toString()).click(); pane.radioButton(AspellEngineManager.AspellMarkupMode.MANUAL_MARKUP_MODE.toString()).requireNotSelected(); - optionsDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + optionsDialog.OK(); assertEquals(AspellEngineManager.AspellMarkupMode.NO_MARKUP_MODE.toString(), jEdit.getProperty(AspellEngineManager.ASPELL_MARKUP_MODE_PROP)); } - @Test public void testFilters(){ + @Test + public void testFilters(){ + System.err.println("testFilters"); jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); jEdit.setProperty(AspellEngineManager.ASPELL_MARKUP_MODE_PROP,"aspellManualMarkupMode"); - TestUtils.jeditFrame().menuItemWithPath("Plugins","Plugin Options...").click(); + PluginOptionsFixture optionsDialog = TestUtils.pluginOptions(); - DialogFixture optionsDialog = WindowFinder.findDialog(PluginOptions.class).withTimeout(5000).using(TestUtils.robot()); - - TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","Aspell Engine"}); + JPanelFixture pane = optionsDialog.optionPane("Spell Check/Aspell Engine","spellcheck.aspell"); - JPanelFixture pane = optionsDialog.panel(new GenericTypeMatcher<AspellOptionPane>(){ - @Override protected boolean isMatching(AspellOptionPane ignored) { - return true; - } - }); - /* table in place */ JTableFixture table = pane.table("filtersTable"); table.requireVisible(); @@ -229,13 +211,15 @@ pane.comboBox("filtersCombo").requireSelection("AUTO").selectItem("sgml"); + assertEquals("sgml",table.cell(row(0).column(1)).value()); //test default (in SpellCheck.properties) filter table.cell(row(indexHtml).column(1)).click(); - pane.comboBox("filtersCombo").requireSelection("sgml"); + pane.comboBox("filtersCombo").requireSelection("sgml").selectItem("sgml"); - optionsDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + System.err.println("testFilters"); + optionsDialog.OK(); assertEquals("sgml",jEdit.getProperty(AspellEngineManager.FILTERS_PROP+"."+firstMode)); @@ -247,20 +231,18 @@ jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); jEdit.setProperty(AspellEngineManager.ASPELL_MARKUP_MODE_PROP,"aspellManualMarkupMode"); - TestUtils.jeditFrame().menuItemWithPath("Plugins","Plugin Options...").click(); + PluginOptionsFixture optionsDialog = TestUtils.pluginOptions(); - DialogFixture optionsDialog = WindowFinder.findDialog(PluginOptions.class).withTimeout(5000).using(TestUtils.robot()); + optionsDialog.optionPane("Spell Check/Aspell Engine","spellcheck.aspell"); - TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","Aspell Engine"}); - //additional parameters optionsDialog.textBox("AdditionalParameters").requireEditable().requireEmpty(); optionsDialog.textBox("AdditionalParameters").enterText("TEST this"); //spellcheck on save - optionsDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + optionsDialog.OK(); //effective? assertEquals("TEST this", jEdit.getProperty(AspellEngineManager.ASPELL_OTHER_PARAMS_PROP)); @@ -269,10 +251,9 @@ //property is still saved //assertEquals(null, jEdit.getProperty(SpellCheckPlugin.ASPELL_OTHER_PARAMS_PROP)); // so re run option pane to save an empty value for other params - TestUtils.jeditFrame().menuItemWithPath("Plugins","Plugin Options...").click(); - optionsDialog = WindowFinder.findDialog(PluginOptions.class).withTimeout(5000).using(TestUtils.robot()); - TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","Aspell Engine"}); + optionsDialog = TestUtils.pluginOptions(); + optionsDialog.optionPane("Spell Check/Aspell Engine","spellcheck.aspell"); optionsDialog.textBox("AdditionalParameters").requireEmpty(); - optionsDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + optionsDialog.OK(); } } Modified: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/BufferDialogValidatorTest.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/BufferDialogValidatorTest.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/BufferDialogValidatorTest.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -44,6 +44,8 @@ import org.fest.swing.fixture.*; import org.fest.swing.core.*; import org.fest.swing.finder.WindowFinder; +import org.fest.swing.edt.*; +import org.fest.swing.timing.*; //}}} ///}}} @@ -55,7 +57,10 @@ import cswilly.spell.AspellEngine; import cswilly.spell.MockEngine; -import static cswilly.jeditPlugins.spell.TestUtils.*; +import static org.gjt.sp.jedit.testframework.TestUtils.*; +import org.gjt.sp.jedit.testframework.TestUtils; +import org.gjt.sp.jedit.testframework.*; +import static cswilly.jeditPlugins.spell.TestUtils.ENV_ASPELL_EXE; /** @@ -95,9 +100,10 @@ @Test public void testDialog(){ + System.err.println("testDialog"); final BufferDialogValidator valid = new BufferDialogValidator(); - View view = TestUtils.jeditFrame().targetCastedTo(View.class); + View view = TestUtils.view(); final Buffer buffer = TestUtils.newFile(); buffer.insert(0,"The qwick brown foxe"); final String oldText = buffer.getText(0,buffer.getLength()); @@ -144,7 +150,7 @@ spellDialog.textBox("changeTo").requireText("wick"); spellDialog.button("Change").click(); - try{Thread.sleep(2000);}catch(InterruptedException ie){} + Pause.pause(2000); spellDialog.list().selectItem("fox"); spellDialog.button("Change").click(); try{ @@ -171,10 +177,11 @@ @Test public void testNullDictIgnoreAll(){ + System.err.println("testNullDictIgnoreAll"); final BufferDialogValidator valid = new BufferDialogValidator(); - final View view = TestUtils.jeditFrame().targetCastedTo(View.class); + final View view = TestUtils.view(); try{ SwingUtilities.invokeAndWait( new Runnable(){ @@ -186,7 +193,7 @@ System.err.println(e); } - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); final Buffer buffer = view.getBuffer(); buffer.insert(0,"The qwick qwick foxe"); @@ -231,15 +238,15 @@ spellDialog.textBox("originalWord").requireText("qwick"); spellDialog.button("Add").click(); - try{Thread.sleep(2000);}catch(InterruptedException ie){} + Pause.pause(2000); spellDialog.textBox("originalWord").requireText("qwick"); spellDialog.button("Ignore All").click(); - try{Thread.sleep(2000);}catch(InterruptedException ie){} + Pause.pause(2000); spellDialog.textBox("originalWord").requireText("foxe"); spellDialog.button("Change").click(); - try{Thread.sleep(2000);}catch(InterruptedException ie){} + Pause.pause(2000); try{ spellThread.join(5000); @@ -256,16 +263,17 @@ jEdit.closeBuffer(view,buffer); } }); - try{Thread.sleep(2000);}catch(InterruptedException ie){} - TestUtils.findDialogByTitle("File Not Saved").button(AbstractButtonTextMatcher.withText(JButton.class,"Non")).click(); + Pause.pause(2000); + TestUtils.findDialogByTitle("File Not Saved").button(org.fest.swing.core.matcher.JButtonMatcher.withText("Non")).click(); } @Test public void testUserDict(){ + System.err.println("testUserDict"); final BufferDialogValidator valid = new BufferDialogValidator(); - final View view = TestUtils.jeditFrame().targetCastedTo(View.class); + final View view = TestUtils.view(); try{ SwingUtilities.invokeAndWait( new Runnable(){ @@ -277,7 +285,7 @@ System.err.println(e); } - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); final Buffer buffer = view.getBuffer(); buffer.insert(0,"The qwick qwick foxe"); @@ -334,8 +342,9 @@ TestUtils.close(view,buffer); } - @Test + @Test public void testCancel(){ + System.err.println("testCancel"); AspellEngine engine = null; try{ engine = new AspellEngine( Arrays.asList(new String[]{exePath,"--lang","en","pipe"}), "UTF-8", true); @@ -352,11 +361,13 @@ final Buffer buffer = TestUtils.openFile(testsDir+"/spellTest.txt"); //do that so there is one change before spell-checking //(to catch an undue undo ;-)) - buffer.insert(0,"hello,\n"); - try{Thread.sleep(1000);}catch(InterruptedException ie){} + GuiActionRunner.execute(new GuiTask(){ + protected void executeInEDT(){ + buffer.insert(0,"hello,\n"); + }}); String oldText = buffer.getText(0,buffer.getLength()); - valid.setTextArea(TestUtils.jeditFrame().targetCastedTo(View.class).getTextArea()); + valid.setTextArea(TestUtils.view().getTextArea()); final AtomicReference<SpellException> exp = new AtomicReference<SpellException>(null); Thread spellThread = new Thread(){ @@ -372,9 +383,9 @@ DialogFixture spellDialog = WindowFinder.findDialog(ValidationDialog.class).withTimeout(10000).using(TestUtils.robot()); spellDialog.button("Add").click(); - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); spellDialog.button("Change").click(); - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); //spellDialog = WindowFinder.findDialog(ValidationDialog.class).withTimeout(5000).using(TestUtils.robot()); spellDialog.button("Cancel").click(); try{ @@ -390,6 +401,7 @@ @Test public void testCommit(){ + System.err.println("testCommit"); AspellEngine engine = null; try{ engine = new AspellEngine( Arrays.asList(new String[]{exePath, "--lang","en","pipe"}), "UTF-8", true); @@ -401,7 +413,7 @@ valid.setEngine(engine); valid.setEngineForSuggest(new MockEngine()); - final View view = TestUtils.jeditFrame().targetCastedTo(View.class); + final View view = TestUtils.view(); try{ SwingUtilities.invokeAndWait( new Runnable(){ @@ -413,10 +425,14 @@ System.err.println(e); } - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); final Buffer buffer = view.getBuffer(); - buffer.insert(0,"The qwick brown foxe"); + GuiActionRunner.execute(new GuiTask(){ + protected void executeInEDT(){ + buffer.insert(0,"The qwick brown foxe"); + }}); + String oldText = buffer.getText(0,buffer.getLength()); valid.setTextArea(view.getTextArea()); @@ -435,7 +451,7 @@ DialogFixture spellDialog = WindowFinder.findDialog(ValidationDialog.class).withTimeout(10000).using(TestUtils.robot()); spellDialog.list().selectItem("quick"); spellDialog.button("Change").click(); - try{Thread.sleep(2000);}catch(InterruptedException ie){} + Pause.pause(2000); spellDialog = WindowFinder.findDialog(ValidationDialog.class).withTimeout(5000).using(TestUtils.robot()); spellDialog.list().selectItem("fox"); spellDialog.button("Change").click(); @@ -454,6 +470,7 @@ @Test public void testScroll(){ + System.err.println("testScroll"); AspellEngine engine = null; try{ engine = new AspellEngine(Arrays.asList(new String[]{exePath,"--lang","en","pipe"}), "UTF-8", true); @@ -464,28 +481,20 @@ valid.setEngine(engine); valid.setEngineForSuggest(new MockEngine()); - final View view = TestUtils.jeditFrame().targetCastedTo(View.class); - try{ - SwingUtilities.invokeAndWait( - new Runnable(){ - public void run(){ - jEdit.newFile(view); - } - }); - }catch(Exception e){ - System.err.println(e); - } - - try{Thread.sleep(1000);}catch(InterruptedException ie){} + final View view = TestUtils.view(); - final Buffer buffer = view.getBuffer(); + final Buffer buffer = TestUtils.newFile(); + + GuiActionRunner.execute(new GuiTask(){ + protected void executeInEDT(){ + buffer.insert(0,"The qwick brown foxe\n"); + + for(int i=0;i<50;i++) + buffer.insert(buffer.getLength(),"some correct text\n"); + buffer.insert(buffer.getLength(),"Wronge text\n"); + }}); - buffer.insert(0,"The qwick brown foxe\n"); - for(int i=0;i<50;i++) - buffer.insert(buffer.getLength(),"some correct text\n"); - buffer.insert(buffer.getLength(),"Wronge text\n"); - String oldText = buffer.getText(0,buffer.getLength()); valid.setTextArea(view.getTextArea()); @@ -504,11 +513,11 @@ DialogFixture spellDialog = WindowFinder.findDialog(ValidationDialog.class).withTimeout(10000).using(TestUtils.robot()); spellDialog.list().selectItem("quick"); spellDialog.button("Change").click(); - try{Thread.sleep(2000);}catch(InterruptedException ie){} + Pause.pause(2000); spellDialog = WindowFinder.findDialog(ValidationDialog.class).withTimeout(5000).using(TestUtils.robot()); spellDialog.list().selectItem("fox"); spellDialog.button("Change").click(); - try{Thread.sleep(2000);}catch(InterruptedException ie){} + Pause.pause(2000); spellDialog = WindowFinder.findDialog(ValidationDialog.class).withTimeout(5000).using(TestUtils.robot()); spellDialog.button("Change").click(); try{ @@ -525,6 +534,7 @@ @Test public void testPrevious(){ + System.err.println("testPrevious"); final Buffer buf = TestUtils.newFile(); final String text = "/*\n" @@ -565,16 +575,16 @@ DialogFixture spellDialog = WindowFinder.findDialog(ValidationDialog.class).withTimeout(10000).using(TestUtils.robot()); spellDialog.textBox("originalWord").requireText("Ven"); spellDialog.button("Change").click(); - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); spellDialog.textBox("originalWord").requireText("jul"); spellDialog.button("Add").click(); - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); spellDialog.textBox("originalWord").requireText("kerik"); spellDialog.button("Previous").click(); - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); spellDialog.textBox("originalWord").requireText("jul"); spellDialog.button("Change").click(); - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); spellDialog.textBox("originalWord").requireText("kerik"); spellDialog.button("Ignore").click(); Modified: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/BufferSpellCheckerTest.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/BufferSpellCheckerTest.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/BufferSpellCheckerTest.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -52,7 +52,10 @@ import cswilly.spell.SpellException; import cswilly.spell.ChangeWordAction; -import static cswilly.jeditPlugins.spell.TestUtils.*; +import static org.gjt.sp.jedit.testframework.TestUtils.*; +import org.gjt.sp.jedit.testframework.TestUtils; +import org.gjt.sp.jedit.testframework.*; +import static cswilly.jeditPlugins.spell.TestUtils.ENV_ASPELL_EXE; /** @@ -68,13 +71,13 @@ public static void setUpjEdit(){ testsDir = System.getProperty(ENV_TESTS_DIR); assertTrue("Forgot to set env. variable '"+ENV_TESTS_DIR+"'",testsDir!=null); - TestUtils.setUpjEdit(); + TestUtils.beforeClass(); } @AfterClass public static void tearDownjEdit(){ - TestUtils.tearDownjEdit(); + TestUtils.afterClass(); } @Before Modified: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/DictionaryPickerTest.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/DictionaryPickerTest.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/DictionaryPickerTest.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -55,7 +55,9 @@ ///{{{ SpellCheck -import static cswilly.jeditPlugins.spell.TestUtils.*; +import org.gjt.sp.jedit.testframework.TestUtils; +import static org.gjt.sp.jedit.testframework.TestUtils.*; +import static cswilly.jeditPlugins.spell.TestUtils.ENV_ASPELL_EXE; import cswilly.spell.SpellException; ///}}} @@ -73,12 +75,12 @@ @BeforeClass public static void setUpjEdit(){ - TestUtils.setUpjEdit(); + TestUtils.beforeClass(); } @AfterClass public static void tearDownjEdit(){ - TestUtils.tearDownjEdit(); + TestUtils.afterClass(); } @Before @@ -101,7 +103,7 @@ final DictionaryPicker dp = new DictionaryPicker(new AspellEngineManager(),"en"); - final JDialog dialog = dp.asDialog(TestUtils.jeditFrame().targetCastedTo(View.class)); + final JDialog dialog = dp.asDialog(TestUtils.view()); Thread pickThread = new Thread(){ public void run(){ @@ -116,7 +118,7 @@ try{Thread.sleep(5000);}catch(InterruptedException ie){}//let dictionaries be loaded langDialog.comboBox().selectItem("fr"); - langDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + langDialog.button(org.fest.swing.core.matcher.JButtonMatcher.withText("OK")).click(); try{pickThread.join(5000);}catch(InterruptedException ie){} if(pickThread.isAlive())fail("Didn't terminate"); @@ -137,7 +139,7 @@ final DictionaryPicker dp = new DictionaryPicker(new AspellEngineManager(),"en"); - final JDialog dialog = dp.asDialog(TestUtils.jeditFrame().targetCastedTo(View.class)); + final JDialog dialog = dp.asDialog(TestUtils.view()); final AtomicReference<String> error = new AtomicReference<String>(null); dp.getPropertyStore().addPropertyChangeListener(new PropertyChangeListener(){ @@ -162,7 +164,7 @@ assertTrue("didn't get an exception", error.get()!=null); assertEquals(error.get(),langDialog.textBox("error-report").text()); - langDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"Cancel")).click(); + langDialog.button(org.fest.swing.core.matcher.JButtonMatcher.withText("Cancel")).click(); } @Test @@ -211,7 +213,7 @@ try{Thread.sleep(1000);}catch(InterruptedException ie){} - final JDialog dialog = dp.asDialog(TestUtils.jeditFrame().targetCastedTo(View.class)); + final JDialog dialog = dp.asDialog(TestUtils.view()); pickThread = new Thread(){ public void run(){ @@ -227,7 +229,7 @@ langDialog.comboBox().selectItem("fr"); - langDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + langDialog.button(org.fest.swing.core.matcher.JButtonMatcher.withText("OK")).click(); try{pickThread.join(5000);}catch(InterruptedException ie){} if(pickThread.isAlive())fail("Didn't terminate"); Modified: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/ErrorListSpellCheckerTest.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/ErrorListSpellCheckerTest.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/ErrorListSpellCheckerTest.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -53,7 +53,10 @@ import errorlist.*; -import static cswilly.jeditPlugins.spell.TestUtils.*; +import static org.gjt.sp.jedit.testframework.TestUtils.*; +import org.gjt.sp.jedit.testframework.TestUtils; +import org.gjt.sp.jedit.testframework.*; +import static cswilly.jeditPlugins.spell.TestUtils.ENV_ASPELL_EXE; ///}}} @@ -68,20 +71,20 @@ @BeforeClass public static void setUpjEdit(){ - TestUtils.setUpjEdit(); + TestUtils.beforeClass(); } @AfterClass public static void tearDownjEdit(){ - TestUtils.tearDownjEdit(); + TestUtils.afterClass(); } @Before public void beforeTest(){ jEdit.getPlugin(SpellCheckPlugin.class.getName()).getPluginJAR().activatePluginIfNecessary(); - TestUtils.jeditFrame().menuItemWithPath("Plugins").click(); - TestUtils.jeditFrame().menuItemWithPath("Plugins","ErrorList").click(); - TestUtils.jeditFrame().menuItemWithPath("Plugins","ErrorList","Error List").click(); + TestUtils.jEditFrame().menuItemWithPath("Plugins").click(); + TestUtils.jEditFrame().menuItemWithPath("Plugins","ErrorList").click(); + TestUtils.jEditFrame().menuItemWithPath("Plugins","ErrorList","Error List").click(); } @After @@ -93,7 +96,7 @@ public void testNormal(){ final ErrorListSpellChecker checker = new ErrorListSpellChecker(); - final View view = TestUtils.jeditFrame().targetCastedTo(View.class); + final View view = TestUtils.view(); jEdit.newFile(view); try{Thread.sleep(1000);}catch(InterruptedException ie){}//let new file be created final Buffer buff = view.getBuffer(); @@ -151,7 +154,7 @@ public void testAdditional(){ final ErrorListSpellChecker checker = new ErrorListSpellChecker(); - final View view = TestUtils.jeditFrame().targetCastedTo(View.class); + final View view = TestUtils.view(); jEdit.newFile(view); try{Thread.sleep(1000);}catch(InterruptedException ie){}//let new file be created final Buffer buff = view.getBuffer(); Modified: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/ErrorListValidatorTest.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/ErrorListValidatorTest.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/ErrorListValidatorTest.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -56,7 +56,10 @@ -import static cswilly.jeditPlugins.spell.TestUtils.*; +import static org.gjt.sp.jedit.testframework.TestUtils.*; +import org.gjt.sp.jedit.testframework.TestUtils; +import org.gjt.sp.jedit.testframework.*; +import static cswilly.jeditPlugins.spell.TestUtils.ENV_ASPELL_EXE; /** @@ -90,9 +93,9 @@ public void testNormal(){ final ErrorListValidator valid = new ErrorListValidator("ErrorListValidatorTest"); - TestUtils.jeditFrame().menuItemWithPath("Plugins").click(); - TestUtils.jeditFrame().menuItemWithPath("Plugins","ErrorList").click(); - TestUtils.jeditFrame().menuItemWithPath("Plugins","ErrorList","Error List").click(); + TestUtils.jEditFrame().menuItemWithPath("Plugins").click(); + TestUtils.jEditFrame().menuItemWithPath("Plugins","ErrorList").click(); + TestUtils.jEditFrame().menuItemWithPath("Plugins","ErrorList","Error List").click(); String path = "/My/Test/Path"; Modified: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/SpellCheckOptionPaneTest.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/SpellCheckOptionPaneTest.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/SpellCheckOptionPaneTest.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -48,9 +48,7 @@ import org.fest.swing.fixture.*; import org.fest.swing.core.*; import org.fest.swing.finder.WindowFinder; -import org.fest.swing.finder.DialogByTitleFinder; -import static org.fest.swing.fixture.TableCell.row; -import static org.fest.swing.core.matcher.JButtonByTextMatcher.withText; +import static org.fest.swing.core.matcher.JButtonMatcher.withText; //}}} import cswilly.spell.ValidationDialog; @@ -58,7 +56,10 @@ ///}}} -import static cswilly.jeditPlugins.spell.TestUtils.*; +import static org.gjt.sp.jedit.testframework.TestUtils.*; +import org.gjt.sp.jedit.testframework.TestUtils; +import org.gjt.sp.jedit.testframework.*; +import static cswilly.jeditPlugins.spell.TestUtils.ENV_ASPELL_EXE; /** * Test the functionality of the Options pane @@ -99,11 +100,10 @@ public void testEngines(){ jEdit.setProperty(SpellCheckPlugin.ENGINE_MANAGER_PROP,"Aspell"); jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); - TestUtils.jeditFrame().menuItemWithPath("Plugins","Plugin Options...").click(); - DialogFixture optionsDialog = WindowFinder.findDialog(PluginOptions.class).withTimeout(5000).using(TestUtils.robot()); + PluginOptionsFixture optionsDialog = TestUtils.pluginOptions(); - TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","General"}); + optionsDialog.optionPane("Spell Check/General","spellcheck.general"); //VoxSpell, Aspell, Hunspell optionsDialog.comboBox("engines").requireSelection("Aspell"); @@ -111,7 +111,7 @@ optionsDialog.comboBox("engines").selectItem("Hunspell"); - optionsDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + optionsDialog.OK(); //effective? assertEquals("Hunspell",jEdit.getProperty(SpellCheckPlugin.ENGINE_MANAGER_PROP)); @@ -122,12 +122,11 @@ jEdit.setProperty(SpellCheckPlugin.ENGINE_MANAGER_PROP,"Aspell"); jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); jEdit.setProperty(SpellCheckPlugin.MAIN_LANGUAGE_PROP,"en_GB"); - TestUtils.jeditFrame().menuItemWithPath("Plugins","Plugin Options...").click(); + + PluginOptionsFixture optionsDialog = TestUtils.pluginOptions(); - DialogFixture optionsDialog = WindowFinder.findDialog(PluginOptions.class).withTimeout(5000).using(TestUtils.robot()); + optionsDialog.optionPane("Spell Check/General","spellcheck.general"); - TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","General"}); - try{Thread.sleep(2000);}catch(InterruptedException ie){} //languages (provided that Aspell has English installed @@ -135,7 +134,7 @@ optionsDialog.comboBox("engines").selectItem("Hunspell"); - optionsDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + optionsDialog.OK(); } @@ -144,26 +143,22 @@ public void testCheckOnSave() { jEdit.setProperty(SpellCheckPlugin.ENGINE_MANAGER_PROP,"Aspell"); - TestUtils.jeditFrame().menuItemWithPath("Plugins","Plugin Options...").click(); + PluginOptionsFixture optionsDialog = TestUtils.pluginOptions(); - DialogFixture optionsDialog = WindowFinder.findDialog(PluginOptions.class).withTimeout(5000).using(TestUtils.robot()); + optionsDialog.optionPane("Spell Check/General","spellcheck.general"); - TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","General"}); - - //spellcheck on save optionsDialog.checkBox("SpellCheckOnSave").requireNotSelected().click(); - optionsDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + optionsDialog.OK(); //effective? assertTrue(jEdit.getBooleanProperty(SpellCheckPlugin.SPELLCHECK_ON_SAVE_PROP)); jEdit.setBooleanProperty(SpellCheckPlugin.SPELLCHECK_ON_SAVE_PROP,false); - TestUtils.jeditFrame().menuItemWithPath("Plugins","Plugin Options...").click(); - optionsDialog = WindowFinder.findDialog(PluginOptions.class).withTimeout(5000).using(TestUtils.robot()); - TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","General"}); - optionsDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + optionsDialog = TestUtils.pluginOptions(); + optionsDialog.optionPane("Spell Check/General","spellcheck.general"); + optionsDialog.OK(); } } Modified: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/SpellCheckPluginTest.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/SpellCheckPluginTest.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/SpellCheckPluginTest.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -51,6 +51,8 @@ import org.fest.swing.fixture.*; import org.fest.swing.core.*; import org.fest.swing.finder.WindowFinder; +import org.fest.swing.timing.Pause; +import org.fest.swing.edt.*; //}}} import cswilly.spell.ValidationDialog; @@ -63,7 +65,10 @@ //}}} ///}}} -import static cswilly.jeditPlugins.spell.TestUtils.*; +import org.gjt.sp.jedit.testframework.*; +import org.gjt.sp.jedit.testframework.TestUtils; +import static org.gjt.sp.jedit.testframework.TestUtils.*; +import static cswilly.jeditPlugins.spell.TestUtils.ENV_ASPELL_EXE; /** * test high-level functions of the plugin: @@ -89,34 +94,15 @@ TestUtils.afterClass(); } - // @Before - // public void beforeTest(){ - // System.err.println("beforeTest"); - // TestUtils.beforeTest(); - // jEdit.getPlugin(SpellCheckPlugin.class.getName()).getPluginJAR().activatePluginIfNecessary(); - // } - - // @After - // public void afterTest(){ - // System.err.println("afterTest"); - // jEdit.getPlugin(SpellCheckPlugin.class.getName()).getPluginJAR().deactivatePlugin(false); - // TestUtils.afterTest(); - // } - @Test public void testOptions(){ + System.err.println("testOptions"); - TestUtils.jeditFrame().menuItemWithPath("Plugins","Plugin Options...").click(); - - DialogFixture optionsDialog = WindowFinder.findDialog(PluginOptions.class).withTimeout(5000).using(TestUtils.robot()); + PluginOptionsFixture optionsDialog = TestUtils.pluginOptions(); - TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","General"}); + //TestUtils.selectPath(optionsDialog.tree(),new String[]{"Plugins","Spell Check","General"}); - JPanelFixture pane = optionsDialog.panel(new GenericTypeMatcher<SpellCheckOptionPane>(){ - @Override protected boolean isMatching(SpellCheckOptionPane ignored) { - return true; - } - }); + JPanelFixture pane = optionsDialog.optionPane("Spell Check/General","spellcheck.general"); optionsDialog.close(); //fail("I don't want to succeed"); @@ -132,6 +118,7 @@ @Test public void testInteractiveSpellCheck(){ + System.err.println("testInteractiveSpellCheck"); String exePath = System.getProperty(ENV_ASPELL_EXE); assertTrue("Forgot to set env. variable '"+ENV_ASPELL_EXE+"'",exePath!=null); jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); @@ -140,7 +127,7 @@ final View view = TestUtils.view(); final Buffer buff = TestUtils.newFile(); buff.insert(0,"The quick brown foxe"); - //try{Thread.sleep(120000);}catch(InterruptedException ie){} + //Pause.pause(120000); Thread spellThread = new Thread(){ public void run(){ SpellCheckPlugin.checkBuffer(view,buff); @@ -159,15 +146,20 @@ @Test public void testShowCustomLangSpellDialog(){ + System.err.println("testShowCustomLangSpellDialog"); String exePath = System.getProperty(ENV_ASPELL_EXE); assertTrue("Forgot to set env. variable '"+ENV_ASPELL_EXE+"'",exePath!=null); jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); jEdit.setProperty(SpellCheckPlugin.MAIN_LANGUAGE_PROP,"en-w_accents"); final Buffer buff = TestUtils.newFile(); - buff.setProperty(SpellCheckPlugin.BUFFER_LANGUAGE_PROP,"en"); - buff.insert(0,"Les licences de la plupart des logiciels\nsont concues pour vous enlever toute libertée"); - + System.err.println("hello"); + GuiActionRunner.execute(new GuiTask(){ + protected void executeInEDT(){ + buff.setProperty(SpellCheckPlugin.BUFFER_LANGUAGE_PROP,"en"); + buff.insert(0,"Les licences de la plupart des logiciels\nsont concues pour vous enlever toute libertée"); + } + }); final AtomicReference<SpellException> except = new AtomicReference<SpellException>(null); Thread spellThread = new Thread(){ public void run(){ @@ -181,17 +173,17 @@ }; spellThread.start(); DialogFixture langDialog = WindowFinder.findDialog(EnhancedDialog.class).withTimeout(5000).using(TestUtils.robot()); - try{Thread.sleep(1000);}catch(InterruptedException ie){}//let dictionaries be loaded + Pause.pause(1000);//let dictionaries be loaded langDialog.comboBox().selectItem("fr"); - langDialog.button(AbstractButtonTextMatcher.withText(JButton.class,"OK")).click(); + langDialog.button(org.fest.swing.core.matcher.JButtonMatcher.withText("OK")).click(); DialogFixture spellDialog = WindowFinder.findDialog(ValidationDialog.class).withTimeout(20000).using(TestUtils.robot()); - try{Thread.sleep(1000);}catch(InterruptedException ie){}//let dictionaries be loaded + Pause.pause(1000);//let dictionaries be loaded assertEquals("fr",buff.getProperty(SpellCheckPlugin.BUFFER_LANGUAGE_PROP)); spellDialog.list().selectItem("conçues"); spellDialog.button("Change").click(); - try{Thread.sleep(5000);}catch(InterruptedException ie){}//let dictionaries be loaded + Pause.pause(1000);//let dictionaries be loaded spellDialog = WindowFinder.findDialog(ValidationDialog.class).withTimeout(5000).using(TestUtils.robot()); spellDialog.list().selectItem("liberté"); spellDialog.button("Change").click(); @@ -204,6 +196,7 @@ @Test public void testSpellCheckOnSave(){ + System.err.println("testSpellCheckOnSave"); String testsDir = System.getProperty(ENV_TESTS_DIR); assertTrue("Forgot to set env. variable '"+ENV_TESTS_DIR+"'",testsDir!=null); @@ -219,7 +212,7 @@ TestUtils.openFile(path); - TestUtils.jeditFrame().menuItemWithPath("File","Save").click(); + TestUtils.jEditFrame().menuItemWithPath("File","Save").click(); final AtomicReference<Boolean> atr = new AtomicReference<Boolean>(Boolean.FALSE); EBComponent eb = new EBComponent(){ @@ -234,7 +227,7 @@ EditBus.addToBus(eb); - try{Thread.sleep(10000);}catch(InterruptedException ie){} + Pause.pause(10000); assertEquals(Boolean.TRUE,atr.get()); @@ -254,6 +247,7 @@ @Test public void testStop(){ + System.err.println("testStop"); final PluginJAR jar = jEdit.getPlugin(SpellCheckPlugin.class.getName()).getPluginJAR(); try{ @@ -278,6 +272,7 @@ @Test public void testMultipleBuffers(){ + System.err.println("testMultipleBuffers"); String exePath = System.getProperty(ENV_ASPELL_EXE); assertTrue("Forgot to set env. variable '"+ENV_ASPELL_EXE+"'",exePath!=null); jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); @@ -313,16 +308,16 @@ final Buffer buffer2 = buffer1.getNext(); - try{Thread.sleep(2000);}catch(InterruptedException ie){} - try{SwingUtilities.invokeAndWait(new Runnable(){ - public void run(){ + Pause.pause(2000); + GuiActionRunner.execute(new GuiTask(){ + protected void executeInEDT(){ view.getEditPanes()[0].setBuffer(buffer1); EditPane pane2 = view.getEditPanes()[1]; pane2.setBuffer(buffer2); buffer2.insert(0,"The qwick brown foxe"); pane2.getTextArea().setSelection(new Selection.Range(0,10)); } - });}catch(InterruptedException ie){}catch(java.lang.reflect.InvocationTargetException ite){} + }); //select the second pane and spell-check in the first @@ -349,7 +344,7 @@ assertEquals("SpellCheckPlugin didn't throw an exception on view/buffer mismatch",Boolean.TRUE,except.get()); - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); spellDialog.list().selectItem("quick"); spellDialog.button("Change").click(); //update : foxe not spell-checked as it's out of selection @@ -364,6 +359,7 @@ @Test public void testMarkupModes(){ + System.err.println("testMarkupModes"); String exePath = System.getProperty(ENV_ASPELL_EXE); assertTrue("Forgot to set env. variable '"+ENV_ASPELL_EXE+"'",exePath!=null); @@ -373,8 +369,8 @@ jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); jEdit.setProperty(SpellCheckPlugin.MAIN_LANGUAGE_PROP,"en"); - final View view = TestUtils.jeditFrame().targetCastedTo(View.class); - try{Thread.sleep(5000);}catch(InterruptedException ie){} + final View view = TestUtils.view(); + Pause.pause(5000); view.unsplit(); final Buffer buff = TestUtils.openFile(testDir+"/latex-file.tex"); @@ -419,6 +415,7 @@ @Test public void testIgnoreAll(){ + System.err.println("testIgnoreAll"); String exePath = System.getProperty(ENV_ASPELL_EXE); assertTrue("Forgot to set env. variable '"+ENV_ASPELL_EXE+"'",exePath!=null); @@ -428,18 +425,18 @@ jEdit.setProperty(AspellEngineManager.ASPELL_EXE_PROP,exePath); jEdit.setProperty(SpellCheckPlugin.MAIN_LANGUAGE_PROP,"en"); - final View view = TestUtils.jeditFrame().targetCastedTo(View.class); + final View view = TestUtils.view(); - jEdit.newFile(view); - try{Thread.sleep(1000);}catch(InterruptedException ie){} - - final Buffer buffer = view.getBuffer(); + final Buffer buffer = TestUtils.newFile(); - buffer.insert(0,"The wiek comes to an end\nIndeed it's the end of the wiek"); - + GuiActionRunner.execute(new GuiTask(){ + protected void executeInEDT(){ + buffer.insert(0,"The wiek comes to an end\nIndeed it's the end of the wiek"); + }}); + final String oldText = buffer.getText(0,buffer.getLength()); - try{Thread.sleep(1000);}catch(InterruptedException ie){} + Pause.pause(1000); Thread spellThread = new Thread(){ @@ -471,7 +468,7 @@ assertTrue("spell-checking didn't finish", !spellThread.isAlive()); //test clear... - TestUtils.jeditFrame().menuItemWithPath("Plugins","Spell Check","Clear Ignored Words").click(); + TestUtils.jEditFrame().menuItemWithPath("Plugins","Spell Check","Clear Ignored Words").click(); spellThread = new Thread(){ public void run(){ Modified: plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/TestUtils.java =================================================================== --- plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/TestUtils.java 2011-10-29 21:44:47 UTC (rev 20170) +++ plugins/SpellCheck/trunk/src/test/cswilly/jeditPlugins/spell/TestUtils.java 2011-10-30 09:05:25 UTC (rev 20171) @@ -55,226 +55,11 @@ ///}}} /** - * provides methods to start jEdit and to dispose of the robot. + * common constants */ public class TestUtils{ - public static final String ENV_JEDIT_SETTINGS = "test-jedit.settings"; - //common environment variables public static final String ENV_ASPELL_EXE = "test-jedit.aspell-exe"; public static final String ENV_TESTS_DIR = "test-tests.dir"; - public static final String ENV_IN_JEDIT = "test-in-jedit"; - - private static FrameFixture jeditFrame; - private static RobotFixture robot; - private static EmergencyAbortListener listener; - - private static Boolean injEdit = null; - public static void setUpjEdit(){ - assert(robot==null); - System.out.println("Setting jedit up"); - if(injEdit==null){ - String injEditS = System.getProperty(ENV_IN_JEDIT); - injEdit = "yes".equals(injEditS); - } - if(injEdit.booleanValue()){ - try{ - System.out.println("No need to launch jEdit"); - robot = RobotFixture.robotWithCurrentAwtHierarchy(); - listener = EmergencyAbortListener.registerInToolkit(); - try{ - robot.printer().printComponents(new PrintStream(new FileOutputStream("/Users/elelay/temp/client2/jEdit/SpellCheck/print-comps"))); - }catch(FileNotFoundException fnfe){} - jeditFrame = new FrameFixture(robot, jEdit.getActiveView());//DOESN'T WORK : WindowFinder.findFrame(View.class).using(robot); - //jeditFrame = new FrameFixture(robot,jEdit.newView(jeditFrame.targetCastedTo(View.class))); - }catch(RuntimeException re){ - System.out.println(re.toString()); - } - }else{ - System.out.println("Starting a new jEdit"); - robot = RobotFixture.robotWithNewAwtHierarchy(); - listener = EmergencyAbortListener.registerInToolkit(); - - String settings = System.getProperty(ENV_JEDIT_SETTINGS); - assertTrue("Forgot to set env. variable '"+ENV_JEDIT_SETTINGS+"'",settings!=null); - - final String[] args = {"-settings="+settings,"-norestore","-noserver","-nobackground"}; - Thread runJeditThread = new Thread(){ - public void run(){ - jEdit.main(args); - } - }; - runJeditThread.start(); - jeditFrame = WindowFinder.findFrame(View.class).withTimeout(40000).using(robot); - try{ - Class c = Class.forName(SpellCheckPlugin.class.getName()); - }catch(ClassNotFoundException cnfe){ - fail("Couldn't find plugin's class"); - } - } - System.out.println("Setup done"); - } - - public static Robot robot(){ - return robot; - } - - public static FrameFixture jeditFrame(){ - return jeditFrame; - } - - public static void tearDownjEdit(){ - listener.unregister(); - if(injEdit){ - //jeditFrame.cleanUp(); - robot.releaseMouseButtons(); - ScreenLock.instance().release(robot); - System.out.println("tearDown done in jEdit"); - }else{ - robot.cleanUp(); - } - robot = null; - jeditFrame = null; - - } - - public static void beforeTest(){ - System.out.println("beforeTest"); - if(injEdit==null){ - System.out.println("null jEdit"); - setUpjEdit(); - }else{ - System.out.println("null jEdit"); - if(injEdit.booleanValue()){ - s... [truncated message content] |