Clover coverage report - clover
Coverage timestamp: Sat Oct 8 2005 22:54:17 EDT
file stats: LOC: 71   Methods: 4
NCLOC: 57   Classes: 3
 
 Source file Conditionals Statements Methods TOTAL
WeakAWTEventListenerTest.java 100% 96.4% 75% 94.1%
coverage coverage
 1   
 package abbot.util;
 2   
 
 3   
 import java.awt.*;
 4   
 import java.awt.event.*;
 5   
 import javax.swing.*;
 6   
 import java.util.*;
 7   
 import java.util.List;
 8   
 
 9   
 import abbot.Log;
 10   
 import junit.extensions.abbot.*;
 11   
 
 12   
 public class WeakAWTEventListenerTest extends ComponentTestFixture {
 13   
 
 14   
     private class Listener implements AWTEventListener {
 15   
         public List events = new ArrayList();
 16   
         public List contexts = new ArrayList();
 17  74
         public void eventDispatched(AWTEvent e) {
 18  74
             events.add(e);
 19   
             class Context extends RuntimeException { }
 20  74
             contexts.add(new Context());
 21   
         }
 22   
     }
 23   
 
 24  1
     public void testAddAndRemove() {
 25  1
         ArrayList list = new ArrayList();
 26  1
         Toolkit toolkit = Toolkit.getDefaultToolkit();
 27  1
         int SIZE = 1000;
 28  1
         Listener l1 = new Listener();
 29  1
         toolkit.addAWTEventListener(l1, -1);
 30   
 
 31  1
         for (int i=0;i < SIZE;i++) {
 32  1000
             Listener listener = new Listener();
 33  1000
             list.add(listener);
 34  1000
             new WeakAWTEventListener(listener, -1);
 35   
         }
 36  1
         Listener l2 = new Listener();
 37  1
         toolkit.addAWTEventListener(l2, -1);
 38  1
         list.clear();
 39  1
         System.gc();
 40   
 
 41   
         // All unreferenced listeners should be removed on the next posted
 42   
         // event. 
 43  1
         showFrame(new JLabel(getName()));
 44   
 
 45   
 
 46  1
         Throwable t1 = (Throwable)l1.contexts.get(l1.contexts.size()-1);
 47  1
         Throwable t2 = (Throwable)l2.contexts.get(l2.contexts.size()-1);
 48   
 
 49  1
         try {
 50  1
             int MAX_STACK = 2000;
 51  1
             String stack1 = Log.getStack(t1);
 52  1
             assertTrue("Stack trace too long ("
 53   
                        + stack1.length() + "): " + stack1,
 54   
                        stack1.length() < MAX_STACK);
 55  1
             String stack2 = Log.getStack(t2);
 56  1
             assertTrue("Stack trace too long ("
 57   
                        + stack2.length() + "): " + stack2,
 58   
                        stack2.length() < MAX_STACK);
 59   
         }
 60   
         finally {
 61  1
             toolkit.removeAWTEventListener(l1);
 62  1
             toolkit.removeAWTEventListener(l2);
 63   
         }
 64   
     }
 65   
 
 66  1
     public WeakAWTEventListenerTest(String name) { super(name); }
 67  0
     public static void main(String[] args) {
 68  0
         TestHelper.runTests(args, WeakAWTEventListenerTest.class);
 69   
     }
 70   
 }
 71