samples/deadlock/test/org/apidesign/deadlock/LabelProviderTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:54:28 +0200
changeset 104 0ec9eb8bcd03
child 105 5c7a65ed657a
permissions -rw-r--r--
Onward! Towards deadlock tests.
     1 package org.apidesign.deadlock;
     2 
     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;
     9 import org.junit.Test;
    10 import org.netbeans.junit.Log;
    11 import org.netbeans.junit.NbTestCase;
    12 import static org.junit.Assert.*;
    13 
    14 public class LabelProviderTest extends NbTestCase {
    15     static final Logger LOG = Logger.getLogger(LabelProviderTest.class.getName());
    16     
    17     public LabelProviderTest(String n) {
    18         super(n);
    19     }
    20 
    21     @Override
    22     protected int timeOut() {
    23         return 10000;
    24     }
    25     
    26     
    27     public static class StrangePanel extends LabelProvider {
    28         @Override
    29         // BEGIN: deadlock.pref.size
    30         public Dimension getPreferredSize () {
    31             JLabel sampleLabel = createLabel();
    32             return sampleLabel.getPreferredSize ();
    33         }
    34         // END: deadlock.pref.size
    35     }
    36     
    37     
    38     
    39 
    40     public void testCreateLabel() {
    41         final LabelProvider instance = new StrangePanel();
    42         
    43         class R implements Runnable {
    44             public void run() {
    45                 LOG.info("In AWT thread");
    46                 JFrame f = new JFrame();
    47                 f.add(instance);
    48                 f.setVisible(true);
    49                 f.pack();
    50             }
    51         }
    52 
    53         Log.controlFlow(
    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", 
    60             300
    61         );
    62         
    63         R showFrame = new R();
    64         SwingUtilities.invokeLater(showFrame);
    65         
    66         LOG.info("Begin");
    67         JLabel result = instance.createLabel();
    68         assertNotNull("Creates the result", result);
    69     }
    70 
    71 }