Ignore:
Timestamp:
04/11/14 12:12:52 (10 years ago)
Author:
pharms
Message:
  • adapted parsing of HTML files to have more power in specifying replacements
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-plugin-html-test/src/test/java/de/ugoe/cs/autoquest/plugin/html/HTMLLogParserTest.java

    r1340 r1496  
    1818 
    1919import java.io.File; 
     20import java.io.FileOutputStream; 
     21import java.io.PrintWriter; 
    2022import java.util.Collection; 
    21 import java.util.HashMap; 
    2223import java.util.Iterator; 
    23 import java.util.LinkedList; 
    2424import java.util.List; 
    25 import java.util.Map; 
    2625import java.util.logging.Level; 
    2726 
     27import org.junit.After; 
    2828import org.junit.Before; 
    2929import org.junit.Test; 
     
    4242public class HTMLLogParserTest { 
    4343 
    44     /** 
    45     * 
    46     */ 
    47    @Before 
    48    public void setUp() { 
    49        new TextConsole(Level.FINEST); 
    50    } 
    51  
    52    /** 
    53     * Tests the parseFile method with a given trace file. 
    54     * @throws Exception 
    55     */ 
    56    @Test 
    57    public void testParseFile_1() throws Exception { 
    58        HTMLLogParser parser = new HTMLLogParser(new HashMap<String, List<String>>()); 
    59        parser.parseFile 
    60            (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_1.xml").getFile())); 
    61        Collection<List<Event>> events = parser.getSequences(); 
    62  
    63        assertNotNull(events); 
    64        assertEquals(1, events.size()); 
    65         
    66        Iterator<List<Event>> iterator = events.iterator(); 
    67        assertNotNull(iterator); 
    68        assertEquals(1, iterator.next().size()); 
    69        assertFalse(iterator.hasNext()); 
    70  
    71        System.err.println("{"); 
    72        for (List<Event> session : events) { 
    73            System.err.println("  {"); 
    74            for (Event event : session) { 
    75                System.err.print("    "); 
    76                System.err.print(event); 
    77                System.err.println(","); 
    78            } 
    79            System.err.println("  }"); 
    80        } 
    81        System.err.println("}"); 
    82        System.err.println("\n\n"); 
    83  
    84        GUIModel guiModel = parser.getGuiModel(); 
    85        assertNotNull(guiModel); 
    86  
    87        for (IGUIElement root : guiModel.getRootElements()) { 
    88            dumpGUIElement(root, guiModel, ""); 
    89        } 
    90    } 
    91  
    92    /** 
    93     * Tests the parseFile method with a given trace file. 
    94     * @throws Exception 
    95     */ 
    96    @Test 
    97    public void testParseFile_2() throws Exception { 
    98        HTMLLogParser parser = new HTMLLogParser(new HashMap<String, List<String>>()); 
    99        parser.parseFile 
    100            (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_2.xml").getFile())); 
    101        Collection<List<Event>> events = parser.getSequences(); 
    102  
    103        assertNotNull(events); 
    104        assertEquals(1, events.size()); 
    105         
    106        Iterator<List<Event>> iterator = events.iterator(); 
    107        assertNotNull(iterator); 
    108        assertEquals(2, iterator.next().size()); 
    109        assertFalse(iterator.hasNext()); 
    110  
    111        System.err.println("{"); 
    112        for (List<Event> session : events) { 
    113            System.err.println("  {"); 
    114            for (Event event : session) { 
    115                System.err.print("    "); 
    116                System.err.print(event); 
    117                System.err.println(","); 
    118            } 
    119            System.err.println("  }"); 
    120        } 
    121        System.err.println("}"); 
    122        System.err.println("\n\n"); 
    123  
    124        GUIModel guiModel = parser.getGuiModel(); 
    125        assertNotNull(guiModel); 
    126  
    127        for (IGUIElement root : guiModel.getRootElements()) { 
    128            dumpGUIElement(root, guiModel, ""); 
    129        } 
    130    } 
    131  
    132    /** 
    133     * Tests the parseFile method with a given trace file. 
    134     * @throws Exception 
    135     */ 
    136    @Test 
    137    public void testParseFile_3() throws Exception { 
    138        Map<String, List<String>> params = new HashMap<String, List<String>>(); 
    139        List<String> list = new LinkedList<String>(); 
    140        list.add("td[2]"); 
    141        list.add("th"); 
    142        params.put("clearIndex", list); 
    143        HTMLLogParser parser = new HTMLLogParser(params); 
    144         
    145        parser.parseFile 
    146            (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_3.xml").getFile())); 
    147        Collection<List<Event>> events = parser.getSequences(); 
    148  
    149        assertNotNull(events); 
    150        assertEquals(1, events.size()); 
    151         
    152        Iterator<List<Event>> iterator = events.iterator(); 
    153        assertNotNull(iterator); 
    154        assertEquals(2, iterator.next().size()); 
    155        assertFalse(iterator.hasNext()); 
    156  
    157        System.err.println("{"); 
    158        for (List<Event> session : events) { 
    159            System.err.println("  {"); 
    160            for (Event event : session) { 
    161                System.err.print("    "); 
    162                System.err.print(event); 
    163                System.err.println(","); 
    164            } 
    165            System.err.println("  }"); 
    166        } 
    167        System.err.println("}"); 
    168        System.err.println("\n\n"); 
    169  
    170        GUIModel guiModel = parser.getGuiModel(); 
    171        assertNotNull(guiModel); 
    172  
    173        for (IGUIElement root : guiModel.getRootElements()) { 
    174            dumpGUIElement(root, guiModel, ""); 
    175        } 
    176    } 
    177  
    178    /** 
    179     * Tests the parseFile method with a given trace file. 
    180     * @throws Exception 
    181     */ 
    182    @Test 
    183    public void testParseFile_4() throws Exception { 
    184        Map<String, List<String>> params = new HashMap<String, List<String>>(); 
    185        List<String> list = new LinkedList<String>(); 
    186        list.add("html/body[1]/h1"); 
    187        params.put("clearId", list); 
    188        HTMLLogParser parser = new HTMLLogParser(params); 
    189         
    190        parser.parseFile 
    191            (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_4.xml").getFile())); 
    192        Collection<List<Event>> events = parser.getSequences(); 
    193  
    194        assertNotNull(events); 
    195        assertEquals(1, events.size()); 
    196         
    197        Iterator<List<Event>> iterator = events.iterator(); 
    198        assertNotNull(iterator); 
    199        assertEquals(2, iterator.next().size()); 
    200        assertFalse(iterator.hasNext()); 
    201  
    202        System.err.println("{"); 
    203        for (List<Event> session : events) { 
    204            System.err.println("  {"); 
    205            for (Event event : session) { 
    206                System.err.print("    "); 
    207                System.err.print(event); 
    208                System.err.println(","); 
    209            } 
    210            System.err.println("  }"); 
    211        } 
    212        System.err.println("}"); 
    213        System.err.println("\n\n"); 
    214  
    215        GUIModel guiModel = parser.getGuiModel(); 
    216        assertNotNull(guiModel); 
    217  
    218        for (IGUIElement root : guiModel.getRootElements()) { 
    219            dumpGUIElement(root, guiModel, ""); 
    220        } 
    221    } 
    222  
    223    /** 
    224     * Tests the parseFile method with a given trace file. 
    225     * @throws Exception 
    226     */ 
    227    @Test 
    228    public void testParseFile_5() throws Exception { 
    229        Map<String, List<String>> params = new HashMap<String, List<String>>(); 
    230        List<String> list = new LinkedList<String>(); 
    231        list.add("html/body[1]/h1(htmlId=id_h1)"); 
    232        params.put("clearId", list); 
    233        HTMLLogParser parser = new HTMLLogParser(params); 
    234         
    235        parser.parseFile 
    236            (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_4.xml").getFile())); 
    237        Collection<List<Event>> events = parser.getSequences(); 
    238  
    239        assertNotNull(events); 
    240        assertEquals(1, events.size()); 
    241         
    242        Iterator<List<Event>> iterator = events.iterator(); 
    243        assertNotNull(iterator); 
    244        assertEquals(2, iterator.next().size()); 
    245        assertFalse(iterator.hasNext()); 
    246  
    247        System.err.println("{"); 
    248        for (List<Event> session : events) { 
    249            System.err.println("  {"); 
    250            for (Event event : session) { 
    251                System.err.print("    "); 
    252                System.err.print(event); 
    253                System.err.println(","); 
    254            } 
    255            System.err.println("  }"); 
    256        } 
    257        System.err.println("}"); 
    258        System.err.println("\n\n"); 
    259  
    260        GUIModel guiModel = parser.getGuiModel(); 
    261        assertNotNull(guiModel); 
    262  
    263        for (IGUIElement root : guiModel.getRootElements()) { 
    264            dumpGUIElement(root, guiModel, ""); 
    265        } 
    266    } 
    267  
    268    /** 
    269     * Helper method to print out GUIElements 
    270     * @param guiElement 
    271     * @param guiModel 
    272     * @param indent 
    273     */ 
    274    private void dumpGUIElement(IGUIElement guiElement, GUIModel guiModel, String indent) { 
    275        assertTrue(guiElement instanceof HTMLGUIElement); 
    276  
    277        System.err.print(indent); 
    278        System.err.print(guiElement); 
    279  
    280        List<IGUIElement> children = guiModel.getChildren(guiElement); 
    281  
    282        if ((children != null) && (children.size() > 0)) { 
    283            System.err.println(" {"); 
    284  
    285            for (IGUIElement child : children) { 
    286                dumpGUIElement(child, guiModel, indent + "  "); 
    287            } 
    288  
    289            System.err.print(indent); 
    290            System.err.print("}"); 
    291        } 
    292  
    293        System.err.println(); 
    294    } 
     44    /** */ 
     45    private static final String PARSE_PARAM_FILE = "tmpParseParamFile"; 
     46     
     47    /** 
     48     * 
     49     */ 
     50    @Before 
     51    public void setUp() { 
     52        new TextConsole(Level.FINEST); 
     53    } 
     54 
     55    /** 
     56     * 
     57     */ 
     58    @After 
     59    public void tearDown() { 
     60        new File(PARSE_PARAM_FILE).delete(); 
     61    } 
     62 
     63    /** 
     64     * Tests the parseFile method with a given trace file. 
     65     * @throws Exception 
     66     */ 
     67    @Test 
     68    public void testParseFile_1() throws Exception { 
     69        HTMLLogParser parser = new HTMLLogParser(null); 
     70        parser.parseFile 
     71        (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_1.xml").getFile())); 
     72        Collection<List<Event>> events = parser.getSequences(); 
     73 
     74        assertNotNull(events); 
     75        assertEquals(1, events.size()); 
     76 
     77        Iterator<List<Event>> iterator = events.iterator(); 
     78        assertNotNull(iterator); 
     79        assertEquals(1, iterator.next().size()); 
     80        assertFalse(iterator.hasNext()); 
     81 
     82        System.err.println("{"); 
     83        for (List<Event> session : events) { 
     84            System.err.println("  {"); 
     85            for (Event event : session) { 
     86                System.err.print("    "); 
     87                System.err.print(event); 
     88                System.err.println(","); 
     89            } 
     90            System.err.println("  }"); 
     91        } 
     92        System.err.println("}"); 
     93        System.err.println("\n\n"); 
     94 
     95        GUIModel guiModel = parser.getGuiModel(); 
     96        assertNotNull(guiModel); 
     97 
     98        for (IGUIElement root : guiModel.getRootElements()) { 
     99            dumpGUIElement(root, guiModel, ""); 
     100        } 
     101    } 
     102 
     103    /** 
     104     * Tests the parseFile method with a given trace file. 
     105     * @throws Exception 
     106     */ 
     107    @Test 
     108    public void testParseFile_2() throws Exception { 
     109        HTMLLogParser parser = new HTMLLogParser(null); 
     110        parser.parseFile 
     111        (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_2.xml").getFile())); 
     112        Collection<List<Event>> events = parser.getSequences(); 
     113 
     114        assertNotNull(events); 
     115        assertEquals(1, events.size()); 
     116 
     117        Iterator<List<Event>> iterator = events.iterator(); 
     118        assertNotNull(iterator); 
     119        assertEquals(2, iterator.next().size()); 
     120        assertFalse(iterator.hasNext()); 
     121 
     122        System.err.println("{"); 
     123        for (List<Event> session : events) { 
     124            System.err.println("  {"); 
     125            for (Event event : session) { 
     126                System.err.print("    "); 
     127                System.err.print(event); 
     128                System.err.println(","); 
     129            } 
     130            System.err.println("  }"); 
     131        } 
     132        System.err.println("}"); 
     133        System.err.println("\n\n"); 
     134 
     135        GUIModel guiModel = parser.getGuiModel(); 
     136        assertNotNull(guiModel); 
     137 
     138        for (IGUIElement root : guiModel.getRootElements()) { 
     139            dumpGUIElement(root, guiModel, ""); 
     140        } 
     141    } 
     142 
     143    /** 
     144     * Tests the parseFile method with a given trace file. 
     145     * @throws Exception 
     146     */ 
     147    @Test 
     148    public void testParseFile_3() throws Exception { 
     149        PrintWriter out = new PrintWriter(new FileOutputStream(new File(PARSE_PARAM_FILE))); 
     150        out.println("td[2]=CLEAR_INDEX"); 
     151        out.println("th=CLEAR_INDEX"); 
     152        out.close(); 
     153 
     154        HTMLLogParser parser = new HTMLLogParser(PARSE_PARAM_FILE); 
     155 
     156        parser.parseFile 
     157        (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_3.xml").getFile())); 
     158        Collection<List<Event>> events = parser.getSequences(); 
     159 
     160        assertNotNull(events); 
     161        assertEquals(1, events.size()); 
     162 
     163        Iterator<List<Event>> iterator = events.iterator(); 
     164        assertNotNull(iterator); 
     165        assertEquals(2, iterator.next().size()); 
     166        assertFalse(iterator.hasNext()); 
     167 
     168        System.err.println("{"); 
     169        for (List<Event> session : events) { 
     170            System.err.println("  {"); 
     171            for (Event event : session) { 
     172                System.err.print("    "); 
     173                System.err.print(event); 
     174                System.err.println(","); 
     175            } 
     176            System.err.println("  }"); 
     177        } 
     178        System.err.println("}"); 
     179        System.err.println("\n\n"); 
     180 
     181        GUIModel guiModel = parser.getGuiModel(); 
     182        assertNotNull(guiModel); 
     183 
     184        for (IGUIElement root : guiModel.getRootElements()) { 
     185            dumpGUIElement(root, guiModel, ""); 
     186        } 
     187    } 
     188 
     189    /** 
     190     * Tests the parseFile method with a given trace file. 
     191     * @throws Exception 
     192     */ 
     193    @Test 
     194    public void testParseFile_4() throws Exception { 
     195        PrintWriter out = new PrintWriter(new FileOutputStream(new File(PARSE_PARAM_FILE))); 
     196        out.println("html/body[1]/h1="); 
     197        out.close(); 
     198 
     199        HTMLLogParser parser = new HTMLLogParser(PARSE_PARAM_FILE); 
     200 
     201        parser.parseFile 
     202        (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_4.xml").getFile())); 
     203        Collection<List<Event>> events = parser.getSequences(); 
     204 
     205        assertNotNull(events); 
     206        assertEquals(1, events.size()); 
     207 
     208        Iterator<List<Event>> iterator = events.iterator(); 
     209        assertNotNull(iterator); 
     210        assertEquals(2, iterator.next().size()); 
     211        assertFalse(iterator.hasNext()); 
     212 
     213        System.err.println("{"); 
     214        for (List<Event> session : events) { 
     215            System.err.println("  {"); 
     216            for (Event event : session) { 
     217                System.err.print("    "); 
     218                System.err.print(event); 
     219                System.err.println(","); 
     220            } 
     221            System.err.println("  }"); 
     222        } 
     223        System.err.println("}"); 
     224        System.err.println("\n\n"); 
     225 
     226        GUIModel guiModel = parser.getGuiModel(); 
     227        assertNotNull(guiModel); 
     228 
     229        for (IGUIElement root : guiModel.getRootElements()) { 
     230            dumpGUIElement(root, guiModel, ""); 
     231        } 
     232    } 
     233 
     234    /** 
     235     * Tests the parseFile method with a given trace file. 
     236     * @throws Exception 
     237     */ 
     238    @Test 
     239    public void testParseFile_5() throws Exception { 
     240        PrintWriter out = new PrintWriter(new FileOutputStream(new File(PARSE_PARAM_FILE))); 
     241        out.println("html/body[1]/h1(htmlId\\=id_h1)="); 
     242        out.close(); 
     243         
     244        HTMLLogParser parser = new HTMLLogParser(PARSE_PARAM_FILE); 
     245 
     246        parser.parseFile 
     247        (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_4.xml").getFile())); 
     248        Collection<List<Event>> events = parser.getSequences(); 
     249 
     250        assertNotNull(events); 
     251        assertEquals(1, events.size()); 
     252 
     253        Iterator<List<Event>> iterator = events.iterator(); 
     254        assertNotNull(iterator); 
     255        assertEquals(2, iterator.next().size()); 
     256        assertFalse(iterator.hasNext()); 
     257 
     258        System.err.println("{"); 
     259        for (List<Event> session : events) { 
     260            System.err.println("  {"); 
     261            for (Event event : session) { 
     262                System.err.print("    "); 
     263                System.err.print(event); 
     264                System.err.println(","); 
     265            } 
     266            System.err.println("  }"); 
     267        } 
     268        System.err.println("}"); 
     269        System.err.println("\n\n"); 
     270 
     271        GUIModel guiModel = parser.getGuiModel(); 
     272        assertNotNull(guiModel); 
     273 
     274        for (IGUIElement root : guiModel.getRootElements()) { 
     275            dumpGUIElement(root, guiModel, ""); 
     276        } 
     277    } 
     278 
     279    /** 
     280     * Helper method to print out GUIElements 
     281     * @param guiElement 
     282     * @param guiModel 
     283     * @param indent 
     284     */ 
     285    private void dumpGUIElement(IGUIElement guiElement, GUIModel guiModel, String indent) { 
     286        assertTrue(guiElement instanceof HTMLGUIElement); 
     287 
     288        System.err.print(indent); 
     289        System.err.print(guiElement); 
     290 
     291        List<IGUIElement> children = guiModel.getChildren(guiElement); 
     292 
     293        if ((children != null) && (children.size() > 0)) { 
     294            System.err.println(" {"); 
     295 
     296            for (IGUIElement child : children) { 
     297                dumpGUIElement(child, guiModel, indent + "  "); 
     298            } 
     299 
     300            System.err.print(indent); 
     301            System.err.print("}"); 
     302        } 
     303 
     304        System.err.println(); 
     305    } 
    295306 
    296307} 
Note: See TracChangeset for help on using the changeset viewer.