samples/deadlock/test/org/apidesign/deadlock/LabelProviderTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:58:08 +0200
changeset 153 b5cbb797ec0a
parent 132 3bc4c54f4bcc
child 154 0fd5e9c500b9
permissions -rw-r--r--
up to line 2000
     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 // BEGIN: deadlock.test.controlflow
    15 public class LabelProviderTest extends NbTestCase {
    16     static final Logger LOG = Logger.getLogger(LabelProviderTest.class.getName());
    17     
    18     public LabelProviderTest(String n) {
    19         super(n);
    20     }
    21 
    22     @Override
    23     protected int timeOut() {
    24         return 10000;
    25     }
    26     
    27     
    28     public static class StrangePanel extends LabelProvider {
    29         @Override
    30         // BEGIN: deadlock.pref.size
    31         public Dimension getPreferredSize () {
    32             JLabel sampleLabel = createLabel();
    33             return sampleLabel.getPreferredSize ();
    34         }
    35         // END: deadlock.pref.size
    36     }
    37     
    38     
    39     
    40 
    41     public void testCreateLabel() {
    42         final LabelProvider instance = new StrangePanel();
    43         
    44         class R implements Runnable {
    45             public void run() {
    46                 LOG.info("In AWT thread");
    47                 JFrame f = new JFrame();
    48                 f.add(instance);
    49                 f.setVisible(true);
    50                 f.pack();
    51             }
    52         }
    53 
    54         Log.controlFlow(
    55             Logger.getLogger("org.apidesign"),
    56             Logger.getLogger("global"), 
    57             "THREAD: main MSG: Begin" +
    58             "THREAD: .*AWT.* MSG: In.*thread" +
    59             "THREAD: main MSG: Will create JLabel" +
    60             "THREAD: .*AWT.* MSG: Will create JLabel", 
    61             300
    62         );
    63         
    64         R showFrame = new R();
    65         SwingUtilities.invokeLater(showFrame);
    66         
    67         LOG.info("Begin");
    68         JLabel result = instance.createLabel();
    69         assertNotNull("Creates the result", result);
    70     }
    71 
    72 }
    73 // END: deadlock.test.controlflow
    74