1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/deadlock/test/org/apidesign/deadlock/LabelProviderTest.java Sat Jun 14 09:54:28 2008 +0200
1.3 @@ -0,0 +1,71 @@
1.4 +package org.apidesign.deadlock;
1.5 +
1.6 +import java.awt.Dimension;
1.7 +import java.util.logging.Logger;
1.8 +import javax.swing.JFrame;
1.9 +import javax.swing.JLabel;
1.10 +import javax.swing.JPanel;
1.11 +import javax.swing.SwingUtilities;
1.12 +import org.junit.Test;
1.13 +import org.netbeans.junit.Log;
1.14 +import org.netbeans.junit.NbTestCase;
1.15 +import static org.junit.Assert.*;
1.16 +
1.17 +public class LabelProviderTest extends NbTestCase {
1.18 + static final Logger LOG = Logger.getLogger(LabelProviderTest.class.getName());
1.19 +
1.20 + public LabelProviderTest(String n) {
1.21 + super(n);
1.22 + }
1.23 +
1.24 + @Override
1.25 + protected int timeOut() {
1.26 + return 10000;
1.27 + }
1.28 +
1.29 +
1.30 + public static class StrangePanel extends LabelProvider {
1.31 + @Override
1.32 + // BEGIN: deadlock.pref.size
1.33 + public Dimension getPreferredSize () {
1.34 + JLabel sampleLabel = createLabel();
1.35 + return sampleLabel.getPreferredSize ();
1.36 + }
1.37 + // END: deadlock.pref.size
1.38 + }
1.39 +
1.40 +
1.41 +
1.42 +
1.43 + public void testCreateLabel() {
1.44 + final LabelProvider instance = new StrangePanel();
1.45 +
1.46 + class R implements Runnable {
1.47 + public void run() {
1.48 + LOG.info("In AWT thread");
1.49 + JFrame f = new JFrame();
1.50 + f.add(instance);
1.51 + f.setVisible(true);
1.52 + f.pack();
1.53 + }
1.54 + }
1.55 +
1.56 + Log.controlFlow(
1.57 + Logger.getLogger("org.apidesign"),
1.58 + Logger.getLogger("global"),
1.59 + "THREAD: main MSG: Begin" +
1.60 + "THREAD: .*AWT.* MSG: In.*thread" +
1.61 + "THREAD: main MSG: Will create JLabel" +
1.62 + "THREAD: .*AWT.* MSG: Will create JLabel",
1.63 + 300
1.64 + );
1.65 +
1.66 + R showFrame = new R();
1.67 + SwingUtilities.invokeLater(showFrame);
1.68 +
1.69 + LOG.info("Begin");
1.70 + JLabel result = instance.createLabel();
1.71 + assertNotNull("Creates the result", result);
1.72 + }
1.73 +
1.74 +}
1.75 \ No newline at end of file