samples/deadlock/test/org/apidesign/deadlock/LabelProviderTest.java
changeset 104 0ec9eb8bcd03
child 105 5c7a65ed657a
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/samples/deadlock/test/org/apidesign/deadlock/LabelProviderTest.java	Sat Jun 14 09:54:28 2008 +0200
     1.3 @@ -0,0 +1,71 @@
     1.4 +package org.apidesign.deadlock;
     1.5 +
     1.6 +import java.awt.Dimension;
     1.7 +import java.util.logging.Logger;
     1.8 +import javax.swing.JFrame;
     1.9 +import javax.swing.JLabel;
    1.10 +import javax.swing.JPanel;
    1.11 +import javax.swing.SwingUtilities;
    1.12 +import org.junit.Test;
    1.13 +import org.netbeans.junit.Log;
    1.14 +import org.netbeans.junit.NbTestCase;
    1.15 +import static org.junit.Assert.*;
    1.16 +
    1.17 +public class LabelProviderTest extends NbTestCase {
    1.18 +    static final Logger LOG = Logger.getLogger(LabelProviderTest.class.getName());
    1.19 +    
    1.20 +    public LabelProviderTest(String n) {
    1.21 +        super(n);
    1.22 +    }
    1.23 +
    1.24 +    @Override
    1.25 +    protected int timeOut() {
    1.26 +        return 10000;
    1.27 +    }
    1.28 +    
    1.29 +    
    1.30 +    public static class StrangePanel extends LabelProvider {
    1.31 +        @Override
    1.32 +        // BEGIN: deadlock.pref.size
    1.33 +        public Dimension getPreferredSize () {
    1.34 +            JLabel sampleLabel = createLabel();
    1.35 +            return sampleLabel.getPreferredSize ();
    1.36 +        }
    1.37 +        // END: deadlock.pref.size
    1.38 +    }
    1.39 +    
    1.40 +    
    1.41 +    
    1.42 +
    1.43 +    public void testCreateLabel() {
    1.44 +        final LabelProvider instance = new StrangePanel();
    1.45 +        
    1.46 +        class R implements Runnable {
    1.47 +            public void run() {
    1.48 +                LOG.info("In AWT thread");
    1.49 +                JFrame f = new JFrame();
    1.50 +                f.add(instance);
    1.51 +                f.setVisible(true);
    1.52 +                f.pack();
    1.53 +            }
    1.54 +        }
    1.55 +
    1.56 +        Log.controlFlow(
    1.57 +            Logger.getLogger("org.apidesign"),
    1.58 +            Logger.getLogger("global"), 
    1.59 +            "THREAD: main MSG: Begin" +
    1.60 +            "THREAD: .*AWT.* MSG: In.*thread" +
    1.61 +            "THREAD: main MSG: Will create JLabel" +
    1.62 +            "THREAD: .*AWT.* MSG: Will create JLabel", 
    1.63 +            300
    1.64 +        );
    1.65 +        
    1.66 +        R showFrame = new R();
    1.67 +        SwingUtilities.invokeLater(showFrame);
    1.68 +        
    1.69 +        LOG.info("Begin");
    1.70 +        JLabel result = instance.createLabel();
    1.71 +        assertNotNull("Creates the result", result);
    1.72 +    }
    1.73 +
    1.74 +}
    1.75 \ No newline at end of file