/* * Copyright (C) 2004 Joe Walnes. * Copyright (C) 2006, 2007 XStream Committers. * All rights reserved. * * The software in this package is published under the terms of the BSD * style license a copy of which has been included with this distribution in * the LICENSE.txt file. * * Created on 08. July 2004 by Joe Walnes */ package com.thoughtworks.xstream.converters.extended; import com.thoughtworks.xstream.XStream; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; //import java.awt.Font; //import java.awt.Toolkit; import java.awt.font.TextAttribute; import java.util.Map; public class FontConverterTest extends TestCase { private XStream xstream; // private Font in; public static Test suite() { // Only try to run this test case if graphics environment is available try { // new Font("Arial", Font.BOLD, 20); return new TestSuite(FontConverterTest.class); } catch (Throwable t) { return new TestSuite(); } } protected void setUp() throws Exception { super.setUp(); xstream = new XStream(); // in = new Font("Arial", Font.BOLD, 20); } public void testConvertsToFontThatEqualsOriginal() { // execute // Font out = (Font) xstream.fromXML(xstream.toXML(in)); // assert // assertEquals(in, out); } public void testProducesFontThatHasTheSameAttributes() { // execute // Font out = (Font) xstream.fromXML(xstream.toXML(in)); // assert // Map inAttributes = in.getAttributes(); // Map outAttributes = out.getAttributes(); // these attributes don't have a valid .equals() method (bad Sun!), so we can't use them in the test. // inAttributes.remove(TextAttribute.TRANSFORM); // outAttributes.remove(TextAttribute.TRANSFORM); // // assertEquals(inAttributes, outAttributes); } public void testCorrectlyInitializesFontToPreventJvmCrash() { // If a font has not been constructed in the correct way, the JVM crashes horribly through some internal // native code, whenever the font is rendered to screen. // execute // Font out = (Font) xstream.fromXML(xstream.toXML(in)); // Toolkit.getDefaultToolkit().getFontMetrics(out); // if the JVM hasn't crashed yet, we're good. } }