From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30197 invoked by alias); 28 Oct 2006 10:31:14 -0000 Received: (qmail 30185 invoked by uid 22791); 28 Oct 2006 10:31:12 -0000 X-Spam-Check-By: sourceware.org Received: from kennke.org (HELO box7954.elkhouse.de) (213.9.79.54) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 28 Oct 2006 10:31:04 +0000 Received: from [217.227.151.75] (helo=[192.168.2.101]) by box7954.elkhouse.de with esmtpsa (TLS-1.0:RSA_ARCFOUR_MD5:16) (Exim 4.50) id 1GdmR6-0002yG-Cf for mauve-patches@sources.redhat.com; Sat, 28 Oct 2006 13:33:12 +0200 Subject: FYI: New TransferHandler test From: Roman Kennke To: mauve-patches Content-Type: multipart/mixed; boundary="=-N/09IS1GzqjYUHN8O5Ho" Date: Sat, 28 Oct 2006 10:31:00 -0000 Message-Id: <1162031425.7168.0.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1 X-IsSubscribed: yes Mailing-List: contact mauve-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: mauve-patches-owner@sourceware.org X-SW-Source: 2006/txt/msg00711.txt.bz2 --=-N/09IS1GzqjYUHN8O5Ho Content-Type: text/plain Content-Transfer-Encoding: 7bit Content-length: 185 This adds extensive test for TransferHandler.importData(). 2006-10-28 Roman Kennke * gnu/testlet/javax/swing/TransferHandler/importData.java: New test. /Roman --=-N/09IS1GzqjYUHN8O5Ho Content-Disposition: attachment; filename=patch.diff Content-Type: text/x-patch; name=patch.diff; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-length: 5917 Index: gnu/testlet/javax/swing/TransferHandler/importData.java =================================================================== RCS file: gnu/testlet/javax/swing/TransferHandler/importData.java diff -N gnu/testlet/javax/swing/TransferHandler/importData.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ gnu/testlet/javax/swing/TransferHandler/importData.java 28 Oct 2006 10:29:22 -0000 @@ -0,0 +1,221 @@ +/* importData.java -- Tests the TransferHandler importData() method + Copyright (C) 2006 Roman Kennke (kennke@aicas.com) +This file is part of Mauve. + +Mauve 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, or (at your option) +any later version. + +Mauve 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 Mauve; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +*/ + +// Tags: JDK1.4 + +package gnu.testlet.javax.swing.TransferHandler; + +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.io.IOException; + +import javax.swing.JComponent; +import javax.swing.TransferHandler; + +import junit.framework.TestCase; +import gnu.testlet.TestHarness; + +/** + * Tests the TransferHandler.importData() method. + */ +public class importData extends TestCase +{ + + /** + * Implements test properties in JComponent. + */ + public static class TestComponent extends JComponent + { + String property = null; + public void setTestProperty(String prop) + { + property = prop; + } + public String getTestProperty() + { + return property; + } + } + + /** + * A Transferable used for our tests. + */ + static class TestTransferable implements Transferable + { + + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException + { + return "Hello World"; + } + + public DataFlavor[] getTransferDataFlavors() + { + try + { + DataFlavor flavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType + + "; class=java.lang.String"); + return new DataFlavor[]{ flavor }; + } + catch (ClassNotFoundException ex) + { + throw new InternalError(); + } + } + + public boolean isDataFlavorSupported(DataFlavor flavor) + { + return flavor.getPrimaryType().equals("application") + && flavor.getSubType().equals("x-java-jvm-local-objectref") + && flavor.getRepresentationClass().equals("java.lang.String"); + } + + } + + /** + * The component to which we transfer. + */ + private JComponent component; + + /** + * The transfer handler that we use. + */ + private TransferHandler transferHandler; + + /** + * The transferable that gets transferred. + */ + private Transferable transferable; + + /** + * Sets up the test case. + */ + public void setUp() + { + component = new TestComponent(); + transferHandler = new TransferHandler("testProperty"); + transferable = new TestTransferable(); + } + + /** + * Tears down the test case. + */ + public void tearDown() + { + component = null; + transferHandler = null; + transferable = null; + } + + /** + * Tests a normal transfer. + */ + public void testOK() + { + boolean ok = transferHandler.importData(component, transferable); + assertTrue(ok); + assertEquals(((TestComponent) component).getTestProperty(), + "Hello World"); + } + + /** + * Tests a transfer with a transferable that does not support the correct + * flavor. + */ + public void testWrongFlavor() + { + transferable = new TestTransferable() + { + public DataFlavor[] getTransferDataFlavors() + { + return new DataFlavor[0]; + } + }; + boolean ok = transferHandler.importData(component, transferable); + assertFalse(ok); + assertNull(((TestComponent) component).getTestProperty()); + } + + /** + * Tests a transfer to a component that doesn't have the correct property + * write method. + */ + public void testInvalidWriter() + { + component = new JComponent() + { + public void setTestProperty(String prop, int i) + { + + } + public String getTestProperty() + { + return "test"; + } + }; + boolean ok = transferHandler.importData(component, transferable); + assertFalse(ok); + } + + /** + * Tests a transfer to a component without the property writer. + */ + public void testMissingPropertyWriter() + { + component = new JComponent() + { + public String getTestProperty() + { + return "test"; + } + }; + boolean ok = transferHandler.importData(component, transferable); + assertFalse(ok); + } + + /** + * Tests a transfer to a component without the property reader. + */ + public void testMissingPropertyReader() + { + component = new JComponent() + { + public void setTestProperty(String prop) + { + + } + }; + boolean ok = transferHandler.importData(component, transferable); + assertFalse(ok); + } + + /** + * Tests a transfer with a TransferHandler initialized with a null + * property. + */ + public void testNullProperty() + { + transferHandler = new TransferHandler(null); + boolean ok = transferHandler.importData(component, transferable); + assertFalse(ok); + } + +} --=-N/09IS1GzqjYUHN8O5Ho--