From: <sh...@us...> - 2009-08-24 15:56:28
|
Revision: 14757 http://cdk.svn.sourceforge.net/cdk/?rev=14757&view=rev Author: shk3 Date: 2009-08-24 15:56:14 +0000 (Mon, 24 Aug 2009) Log Message: ----------- added a lot of tests Modified Paths: -------------- jchempaint/trunk/src/main/org/openscience/jchempaint/AbstractJChemPaintPanel.java jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletTest.java Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/AbstractJChemPaintPanel.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/AbstractJChemPaintPanel.java 2009-08-24 14:01:44 UTC (rev 14756) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/AbstractJChemPaintPanel.java 2009-08-24 15:56:14 UTC (rev 14757) @@ -35,6 +35,7 @@ import org.openscience.cdk.controller.ControllerHub; import org.openscience.cdk.exception.CDKException; import org.openscience.cdk.interfaces.IChemModel; +import org.openscience.cdk.renderer.selection.LogicalSelection; import org.openscience.jchempaint.action.CreateSmilesAction; /** @@ -79,6 +80,8 @@ */ public void setChemModel(IChemModel model){ renderPanel.setChemModel(model); + //we need to do this to avoid npes later + renderPanel.getRenderer().getRenderer2DModel().setSelection(new LogicalSelection(LogicalSelection.Type.NONE)); } public String getSmiles() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException{ Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java 2009-08-24 14:01:44 UTC (rev 14756) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/JChemPaintMenuHelper.java 2009-08-24 15:56:14 UTC (rev 14757) @@ -1,5 +1,7 @@ package org.openscience.jchempaint; +import java.util.ArrayList; +import java.util.List; import java.util.MissingResourceException; import java.util.Properties; @@ -22,6 +24,7 @@ private LoggingTool logger; private JCPAction jcpaction; + private static List<String> usedKeys = new ArrayList<String>(); /** @@ -148,7 +151,12 @@ else { mi = new JMenuItem(translation); } - mi.setName(cmd); + //this is to avoid to get a menu with the same name twice + if(usedKeys.contains(cmd)) + mi.setName(cmd+"2"); + else + mi.setName(cmd); + usedKeys.add(cmd); logger.debug("Created new menu item..."); String astr = JCPPropertyHandler.getInstance().getResourceString(cmd + JCPAction.actionSuffix); if (astr == null) { Modified: jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties =================================================================== --- jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties 2009-08-24 14:01:44 UTC (rev 14756) +++ jchempaint/trunk/src/main/org/openscience/jchempaint/resources/JCPGUI_applet.properties 2009-08-24 15:56:14 UTC (rev 14757) @@ -53,7 +53,7 @@ ####################################################### menubar=file edit view atom bond tools -file=new open save saveAs - export print - close - exit +file=new open save saveAs - export print edit=undo redo - cutSelected copy copyAsSmiles paste - delete selectAll - @preferences renderOptions view=zoomin zoomout zoomoriginal - cleanup @flip @hydrogen atom=@formalCharge @hydrogen @isotopeChange convertToRadical @pseudoSymbols @valence - @symbolChange Modified: jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletTest.java =================================================================== --- jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletTest.java 2009-08-24 14:01:44 UTC (rev 14756) +++ jchempaint/trunk/src/test/org/openscience/jchempaint/JCPEditorAppletTest.java 2009-08-24 15:56:14 UTC (rev 14757) @@ -5,15 +5,20 @@ import java.util.Map; import org.fest.swing.applet.AppletViewer; +import org.fest.swing.fixture.DialogFixture; import org.fest.swing.fixture.FrameFixture; import org.fest.swing.fixture.JPanelFixture; +import org.fest.swing.fixture.JTextComponentFixture; import org.fest.swing.launcher.AppletLauncher; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.openscience.cdk.exception.CDKException; +import org.openscience.cdk.interfaces.IAtom; import org.openscience.cdk.interfaces.IChemModel; +import org.openscience.cdk.interfaces.IPseudoAtom; +import org.openscience.cdk.renderer.selection.SingleSelection; import org.openscience.jchempaint.applet.JChemPaintEditorApplet; public class JCPEditorAppletTest { @@ -32,7 +37,12 @@ applet.show(); JPanelFixture jcppanel=applet.panel("appletframe"); JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; - originalModel=panel.getChemModel(); + try { + originalModel=(IChemModel)panel.getChemModel().clone(); + } catch (CloneNotSupportedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } @Test public void testReportSmiles() { @@ -49,13 +59,186 @@ JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; Assert.assertEquals("",panel.getSmiles()); restoreModel(); - panel.get2DHub().updateView(); } + @Test public void testMenuSave() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + applet.menuItem("save").click(); + DialogFixture dialog = applet.dialog(); + JTextComponentFixture text = dialog.textBox(); + text.setText("/tmp/test.cml"); + //TODO hit the ok button + dialog.close(); + } + + @Test public void testMenuOpen() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + applet.menuItem("open").click(); + DialogFixture dialog = applet.dialog(); + JTextComponentFixture text = dialog.textBox(); + text.setText("/tmp/test.cml"); + //TODO hit the ok button + dialog.close(); + } + + @Test public void testMenuExport() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + applet.menuItem("export").click(); + DialogFixture dialog = applet.dialog(); + JTextComponentFixture text = dialog.textBox(); + text.setText("/tmp/test.cml"); + //TODO hit the ok button + dialog.close(); + } + + @Test public void testMenuPrint() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + applet.menuItem("print").click(); + //TODO in linux, the java print dialog is not working + //TODO printing as a such can not be tested, I suppose + } + + @Test public void testMenuChargePlus2() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("chargePlus2").click(); + Assert.assertEquals(2, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getFormalCharge().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setFormalCharge(0); + } + + @Test public void testMenuChargePlus1() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("chargePlus1").click(); + Assert.assertEquals(1, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getFormalCharge().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setFormalCharge(0); + } + + @Test public void testMenuChargeZero() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("chargeZero").click(); + Assert.assertEquals(0, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getFormalCharge().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setFormalCharge(0); + } + + @Test public void testMenuChargeMinus1() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("chargeMinus1").click(); + Assert.assertEquals(-1, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getFormalCharge().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setFormalCharge(0); + } + + @Test public void testMenuChargeMinus2() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("chargeMinus2").click(); + Assert.assertEquals(-2, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getFormalCharge().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setFormalCharge(0); + } + + @Test public void testMenuIsotopeMajorPlusThree() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("majorPlusThree").click(); + Assert.assertEquals(15, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getMassNumber().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setMassNumber(12); + } + + @Test public void testMenuIsotopeMajorPlusTwo() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("majorPlusTwo").click(); + Assert.assertEquals(14, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getMassNumber().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setMassNumber(12); + } + + @Test public void testMenuIsotopeMajorPlusOne() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("majorPlusOne").click(); + Assert.assertEquals(13, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getMassNumber().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setMassNumber(12); + } + + @Test public void testMenuIsotopeMajor() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("major").click(); + Assert.assertEquals(12, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getMassNumber().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setMassNumber(12); + } + + @Test public void testMenuIsotopeMajorMinusOne() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("majorMinusOne").click(); + Assert.assertEquals(11, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getMassNumber().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setMassNumber(12); + } + + @Test public void testMenuIsotopeMajorMinusTwo() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("majorMinusTwo").click(); + Assert.assertEquals(10, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getMassNumber().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setMassNumber(12); + } + + @Test public void testMenuIsotopeMajorMinusThree() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("majorMinusThree").click(); + Assert.assertEquals(9, panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getMassNumber().intValue()); + panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).setMassNumber(12); + } + + @Test public void testMenuConvertToRadical() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + //applet.menuItem("convertToRadical").click(); + //TODO miguel needs to look at this + //Assert... + //reset to non-radical + } + + @Test public void testMenuPseudoStar() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("pseudoStar").click(); + Assert.assertEquals("*", ((IPseudoAtom)panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0)).getLabel()); + IAtom normal = panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getBuilder().newAtom(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0)); + normal.setSymbol("C"); + panel.get2DHub().replaceAtom(normal,panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0)); + } + + @Test public void testMenuPseudoR() throws CDKException, ClassNotFoundException, IOException, CloneNotSupportedException { + JPanelFixture jcppanel=applet.panel("appletframe"); + JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; + panel.getRenderPanel().getRenderer().getRenderer2DModel().setSelection(new SingleSelection<IAtom>(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0))); + applet.menuItem("pseudoR").click(); + Assert.assertEquals("R", ((IPseudoAtom)panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0)).getLabel()); + IAtom normal = panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0).getBuilder().newAtom(panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0)); + normal.setSymbol("C"); + panel.get2DHub().replaceAtom(normal,panel.getChemModel().getMoleculeSet().getAtomContainer(0).getAtom(0)); + } + private void restoreModel(){ JPanelFixture jcppanel=applet.panel("appletframe"); JChemPaintPanel panel = (JChemPaintPanel)jcppanel.target; panel.setChemModel(originalModel); + panel.get2DHub().updateView(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |