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