samples/deadlock/test/org/apidesign/deadlock/LabelProviderTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 18:51:38 +0200
changeset 263 7e8e995065c5
parent 154 0fd5e9c500b9
permissions -rw-r--r--
Tests of all modules are executed and can fail the build
     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         if (Boolean.getBoolean("no.failures")) return;
    45         final LabelProvider instance = new StrangePanel();
    46         
    47         class R implements Runnable {
    48             public void run() {
    49                 LOG.info("In AWT thread");
    50                 JFrame f = new JFrame();
    51                 f.add(instance);
    52                 f.setVisible(true);
    53                 f.pack();
    54             }
    55         }
    56 
    57         Log.controlFlow(
    58             Logger.getLogger("org.apidesign"),
    59             Logger.getLogger("global"), 
    60             "THREAD: main MSG: Begin" +
    61             "THREAD: .*AWT.* MSG: In.*thread" +
    62             "THREAD: main MSG: Will create JLabel" +
    63             "THREAD: .*AWT.* MSG: Will create JLabel", 
    64             300
    65         );
    66         
    67         R showFrame = new R();
    68         SwingUtilities.invokeLater(showFrame);
    69         
    70         LOG.info("Begin");
    71         JLabel result = instance.createLabel();
    72         assertNotNull("Creates the result", result);
    73     }
    74 
    75 }
    76 // END: deadlock.test.controlflow
    77