From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10955 invoked by alias); 17 Oct 2006 15:24:02 -0000 Received: (qmail 10929 invoked by uid 22791); 17 Oct 2006 15:24:00 -0000 X-Spam-Check-By: sourceware.org Received: from moutng.kundenserver.de (HELO moutng.kundenserver.de) (212.227.126.177) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 17 Oct 2006 15:23:52 +0000 Received: from [212.126.219.82] (helo=mail.aicas.de) by mrelayeu.kundenserver.de (node=mrelayeu0) with ESMTP (Nemesis), id 0MKwh2-1GZqnG0HHU-0003RG; Tue, 17 Oct 2006 17:23:50 +0200 Received: from mail.aicas.burg (caribic.aicas.burg [192.168.1.3]) by mail.aicas.de (Postfix) with ESMTP id C657354000D for ; Tue, 17 Oct 2006 17:30:51 +0200 (CEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.aicas.burg (Postfix) with ESMTP id D3F546BC8C3 for ; Tue, 17 Oct 2006 17:23:49 +0200 (CEST) Received: from mail.aicas.burg ([127.0.0.1]) by localhost (www.aicas.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11068-05 for ; Tue, 17 Oct 2006 17:23:46 +0200 (CEST) Received: from [192.168.1.112] (moonlight.aicas.burg [192.168.1.112]) by mail.aicas.burg (Postfix) with ESMTP id AE1876BC712 for ; Tue, 17 Oct 2006 17:23:46 +0200 (CEST) Subject: FYI: New TransferHandler test From: Roman Kennke To: mauve-patches Content-Type: multipart/mixed; boundary="=-fSFBhI2ulIXZtXAzL/2v" Date: Tue, 17 Oct 2006 15:24:00 -0000 Message-Id: <1161098626.4769.12.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1 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/msg00702.txt.bz2 --=-fSFBhI2ulIXZtXAzL/2v Content-Type: text/plain Content-Transfer-Encoding: 7bit Content-length: 194 This tests the method TransferHandler.createTransferable(). 2006-10-17 Roman Kennke * gnu/testlet/javax/swing/TransferHandler/createTransferable.java: New test. /Roman --=-fSFBhI2ulIXZtXAzL/2v Content-Disposition: attachment; filename=patch.diff Content-Type: text/x-patch; name=patch.diff; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-length: 7575 Index: gnu/testlet/javax/swing/TransferHandler/createTransferable.java =================================================================== RCS file: gnu/testlet/javax/swing/TransferHandler/createTransferable.java diff -N gnu/testlet/javax/swing/TransferHandler/createTransferable.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ gnu/testlet/javax/swing/TransferHandler/createTransferable.java 17 Oct 2006 15:22:14 -0000 @@ -0,0 +1,246 @@ +/* createTransferable.java -- Tests TransferHandler.createTransferable() + 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; + +/** + * Tests the TransferHandler.createTransferable() method. + */ +public class createTransferable extends TestCase +{ + + /** + * Overridden to make createTransferable() public for testing. + */ + private class TestTransferHandler extends TransferHandler + { + TestTransferHandler(String prop) + { + super(prop); + } + public Transferable createTransferable(JComponent comp) + { + return super.createTransferable(comp); + } + } + + public class TestComponent + extends JComponent + { + private String value; + public void setTestProperty(String val) + { + value = val; + } + public String getTestProperty() + { + return "HelloWorld"; + } + } + + /** + * The transfer handler that we test. + */ + private TestTransferHandler transferHandler; + + /** + * The component that is passed in the createTransferable() method. + */ + private JComponent component; + + public void setUp() + { + component = new TestComponent(); + transferHandler = new TestTransferHandler("testProperty"); + } + + public void tearDown() + { + component = null; + transferHandler = null; + } + + /** + * Check what is returned when we initialize the TransferHandler with a + * null property. + */ + public void testNullProperty() + { + transferHandler = new TestTransferHandler(null); + Transferable transferable = transferHandler.createTransferable(component); + assertNull(transferable); + } + + public void testMissingGetter() + { + component = new JComponent() + { + String value; + public void setTestProperty(String val) + { + value = val; + } + }; + Transferable transferable = transferHandler.createTransferable(component); + assertNull(transferable); + } + + public void testMissingSetter() + { + component = new JComponent() + { + String value; + public String getTestProperty() + { + return value; + } + }; + Transferable transferable = transferHandler.createTransferable(component); + assertNotNull(transferable); + } + + public void testAllOk() + { + Transferable transferable = transferHandler.createTransferable(component); + assertNotNull(transferable); + } + + /** + * Tests which transfer flavors are supported by the created Transferable. + */ + public void testTransferableTransferFlavors() + { + Transferable transferable = transferHandler.createTransferable(component); + DataFlavor[] flavors = transferable.getTransferDataFlavors(); + assertEquals(1, flavors.length); + assertEquals("application/x-java-jvm-local-objectref; class=java.lang.String", flavors[0].getMimeType()); + } + + public void testTransferableDataFlavorSupported() + { + Transferable transferable = transferHandler.createTransferable(component); + try + { + // Primary type doesn't match. + DataFlavor flavor = new DataFlavor("xyz/x-java-jvm-local-objectref; class=java.lang.String"); + assertFalse(transferable.isDataFlavorSupported(flavor)); + // Subtype type doesn't match. + flavor = new DataFlavor("application/x-java-remote-object; class=java.lang.String"); + assertFalse(transferable.isDataFlavorSupported(flavor)); + // Representation class doesn't match. + flavor = new DataFlavor("application/x-java-jvm-local-objectref; class=java.lang.Integer"); + assertFalse(transferable.isDataFlavorSupported(flavor)); + + // Good match. + flavor = new DataFlavor("application/x-java-jvm-local-objectref; class=java.lang.String"); + assertTrue(transferable.isDataFlavorSupported(flavor)); + } + catch (ClassNotFoundException ex) + { + fail(ex.getMessage()); + } + } + + public void testTransferableTransferData() + { + Transferable transferable = transferHandler.createTransferable(component); + // Try invalid data flavor. + try + { + DataFlavor flavor = new DataFlavor("xyz/x-java-jvm-local-objectref; class=java.lang.String"); + Object data = transferable.getTransferData(flavor); + fail("UnsupportedOperationException must be thrown"); + } + catch (UnsupportedFlavorException ex) + { + // Ok. + } + catch (IOException ex) + { + fail("UnsupportedFlavorException must be thrown, no IOException"); + } + catch (ClassNotFoundException ex) + { + fail(ex.getMessage()); + } + + // Try OK data flavor. + try + { + DataFlavor flavor = new DataFlavor("application/x-java-jvm-local-objectref; class=java.lang.String"); + Object data = transferable.getTransferData(flavor); + assertEquals(data, "HelloWorld"); + } + catch (UnsupportedFlavorException ex) + { + fail("UnsupportedFlavorException must not be thrown"); + } + catch (IOException ex) + { + System.err.println(ex.getMessage()); + fail("IOException must not be thrown"); + } + catch (ClassNotFoundException ex) + { + fail(ex.getMessage()); + } + // Try non-accessible component. + component = new JComponent() + { + public String getTestProperty() + { + return "Hello World"; + } + }; + transferable = transferHandler.createTransferable(component); + + try + { + DataFlavor flavor = new DataFlavor("application/x-java-jvm-local-objectref; class=java.lang.String"); + Object data = transferable.getTransferData(flavor); + fail("IOException must be thrown"); + } + catch (UnsupportedFlavorException ex) + { + fail("UnsupportedFlavorException must not be thrown"); + } + catch (IOException ex) + { + // Ok. + } + catch (ClassNotFoundException ex) + { + fail(ex.getMessage()); + } + } +} --=-fSFBhI2ulIXZtXAzL/2v--