Onward! Towards deadlock tests.
1 package org.apidesign.deadlock;
3 import java.awt.Dimension;
4 import java.util.logging.Logger;
5 import javax.swing.JFrame;
6 import javax.swing.JLabel;
7 import javax.swing.JPanel;
8 import javax.swing.SwingUtilities;
10 import org.netbeans.junit.Log;
11 import org.netbeans.junit.NbTestCase;
12 import static org.junit.Assert.*;
14 public class LabelProviderTest extends NbTestCase {
15 static final Logger LOG = Logger.getLogger(LabelProviderTest.class.getName());
17 public LabelProviderTest(String n) {
22 protected int timeOut() {
27 public static class StrangePanel extends LabelProvider {
29 // BEGIN: deadlock.pref.size
30 public Dimension getPreferredSize () {
31 JLabel sampleLabel = createLabel();
32 return sampleLabel.getPreferredSize ();
34 // END: deadlock.pref.size
40 public void testCreateLabel() {
41 final LabelProvider instance = new StrangePanel();
43 class R implements Runnable {
45 LOG.info("In AWT thread");
46 JFrame f = new JFrame();
54 Logger.getLogger("org.apidesign"),
55 Logger.getLogger("global"),
56 "THREAD: main MSG: Begin" +
57 "THREAD: .*AWT.* MSG: In.*thread" +
58 "THREAD: main MSG: Will create JLabel" +
59 "THREAD: .*AWT.* MSG: Will create JLabel",
63 R showFrame = new R();
64 SwingUtilities.invokeLater(showFrame);
67 JLabel result = instance.createLabel();
68 assertNotNull("Creates the result", result);