source: trunk/autoquest-plugin-html-test/src/test/java/de/ugoe/cs/autoquest/plugin/html/HTMLLogParserTest.java

Last change on this file was 2217, checked in by pharms, 7 years ago
  • java doc issues removal
  • Property svn:mime-type set to text/plain
File size: 9.1 KB
Line 
1//   Copyright 2012 Georg-August-Universität Göttingen, Germany
2//
3//   Licensed under the Apache License, Version 2.0 (the "License");
4//   you may not use this file except in compliance with the License.
5//   You may obtain a copy of the License at
6//
7//       http://www.apache.org/licenses/LICENSE-2.0
8//
9//   Unless required by applicable law or agreed to in writing, software
10//   distributed under the License is distributed on an "AS IS" BASIS,
11//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12//   See the License for the specific language governing permissions and
13//   limitations under the License.
14
15package de.ugoe.cs.autoquest.plugin.html;
16
17import static org.junit.Assert.*;
18
19import java.io.File;
20import java.io.FileOutputStream;
21import java.io.PrintWriter;
22import java.util.Collection;
23import java.util.Iterator;
24import java.util.List;
25import java.util.logging.Level;
26
27import org.junit.After;
28import org.junit.Before;
29import org.junit.Test;
30
31import de.ugoe.cs.autoquest.eventcore.Event;
32import de.ugoe.cs.autoquest.eventcore.guimodel.GUIModel;
33import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement;
34import de.ugoe.cs.autoquest.plugin.html.guimodel.HTMLGUIElement;
35import de.ugoe.cs.util.console.TextConsole;
36
37/**
38 * Test for the new HTMLLogParser
39 * @author Fabian Glaser
40 *
41 */
42public class HTMLLogParserTest {
43
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     */
66    @Test
67    public void testParseFile_1() throws Exception {
68        HTMLLogParser parser = new HTMLLogParser(null);
69        parser.parseFile
70        (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_1.xml").getFile()));
71        Collection<List<Event>> events = parser.getSequences();
72
73        assertNotNull(events);
74        assertEquals(1, events.size());
75
76        Iterator<List<Event>> iterator = events.iterator();
77        assertNotNull(iterator);
78        assertEquals(1, iterator.next().size());
79        assertFalse(iterator.hasNext());
80
81        System.err.println("{");
82        for (List<Event> session : events) {
83            System.err.println("  {");
84            for (Event event : session) {
85                System.err.print("    ");
86                System.err.print(event);
87                System.err.println(",");
88            }
89            System.err.println("  }");
90        }
91        System.err.println("}");
92        System.err.println("\n\n");
93
94        GUIModel guiModel = parser.getGuiModel();
95        assertNotNull(guiModel);
96
97        for (IGUIElement root : guiModel.getRootElements()) {
98            dumpGUIElement(root, guiModel, "");
99        }
100    }
101
102    /**
103     * Tests the parseFile method with a given trace file.
104     */
105    @Test
106    public void testParseFile_2() throws Exception {
107        HTMLLogParser parser = new HTMLLogParser(null);
108        parser.parseFile
109        (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_2.xml").getFile()));
110        Collection<List<Event>> events = parser.getSequences();
111
112        assertNotNull(events);
113        assertEquals(1, events.size());
114
115        Iterator<List<Event>> iterator = events.iterator();
116        assertNotNull(iterator);
117        assertEquals(2, iterator.next().size());
118        assertFalse(iterator.hasNext());
119
120        System.err.println("{");
121        for (List<Event> session : events) {
122            System.err.println("  {");
123            for (Event event : session) {
124                System.err.print("    ");
125                System.err.print(event);
126                System.err.println(",");
127            }
128            System.err.println("  }");
129        }
130        System.err.println("}");
131        System.err.println("\n\n");
132
133        GUIModel guiModel = parser.getGuiModel();
134        assertNotNull(guiModel);
135
136        for (IGUIElement root : guiModel.getRootElements()) {
137            dumpGUIElement(root, guiModel, "");
138        }
139    }
140
141    /**
142     * Tests the parseFile method with a given trace file.
143     */
144    @Test
145    public void testParseFile_3() throws Exception {
146        PrintWriter out = new PrintWriter(new FileOutputStream(new File(PARSE_PARAM_FILE)));
147        out.println("td[2]=CLEAR_INDEX");
148        out.println("th=CLEAR_INDEX");
149        out.close();
150
151        HTMLLogParser parser = new HTMLLogParser(PARSE_PARAM_FILE);
152
153        parser.parseFile
154        (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_3.xml").getFile()));
155        Collection<List<Event>> events = parser.getSequences();
156
157        assertNotNull(events);
158        assertEquals(1, events.size());
159
160        Iterator<List<Event>> iterator = events.iterator();
161        assertNotNull(iterator);
162        assertEquals(2, iterator.next().size());
163        assertFalse(iterator.hasNext());
164
165        System.err.println("{");
166        for (List<Event> session : events) {
167            System.err.println("  {");
168            for (Event event : session) {
169                System.err.print("    ");
170                System.err.print(event);
171                System.err.println(",");
172            }
173            System.err.println("  }");
174        }
175        System.err.println("}");
176        System.err.println("\n\n");
177
178        GUIModel guiModel = parser.getGuiModel();
179        assertNotNull(guiModel);
180
181        for (IGUIElement root : guiModel.getRootElements()) {
182            dumpGUIElement(root, guiModel, "");
183        }
184    }
185
186    /**
187     * Tests the parseFile method with a given trace file.
188     */
189    @Test
190    public void testParseFile_4() throws Exception {
191        PrintWriter out = new PrintWriter(new FileOutputStream(new File(PARSE_PARAM_FILE)));
192        out.println("html/body[1]/h1=");
193        out.close();
194
195        HTMLLogParser parser = new HTMLLogParser(PARSE_PARAM_FILE);
196
197        parser.parseFile
198        (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_4.xml").getFile()));
199        Collection<List<Event>> events = parser.getSequences();
200
201        assertNotNull(events);
202        assertEquals(1, events.size());
203
204        Iterator<List<Event>> iterator = events.iterator();
205        assertNotNull(iterator);
206        assertEquals(2, iterator.next().size());
207        assertFalse(iterator.hasNext());
208
209        System.err.println("{");
210        for (List<Event> session : events) {
211            System.err.println("  {");
212            for (Event event : session) {
213                System.err.print("    ");
214                System.err.print(event);
215                System.err.println(",");
216            }
217            System.err.println("  }");
218        }
219        System.err.println("}");
220        System.err.println("\n\n");
221
222        GUIModel guiModel = parser.getGuiModel();
223        assertNotNull(guiModel);
224
225        for (IGUIElement root : guiModel.getRootElements()) {
226            dumpGUIElement(root, guiModel, "");
227        }
228    }
229
230    /**
231     * Tests the parseFile method with a given trace file.
232     */
233    @Test
234    public void testParseFile_5() throws Exception {
235        PrintWriter out = new PrintWriter(new FileOutputStream(new File(PARSE_PARAM_FILE)));
236        out.println("html/body[1]/h1(htmlId\\=id_h1)=");
237        out.close();
238       
239        HTMLLogParser parser = new HTMLLogParser(PARSE_PARAM_FILE);
240
241        parser.parseFile
242        (new File(ClassLoader.getSystemResource("htmlmonitor_testtrace_4.xml").getFile()));
243        Collection<List<Event>> events = parser.getSequences();
244
245        assertNotNull(events);
246        assertEquals(1, events.size());
247
248        Iterator<List<Event>> iterator = events.iterator();
249        assertNotNull(iterator);
250        assertEquals(2, iterator.next().size());
251        assertFalse(iterator.hasNext());
252
253        System.err.println("{");
254        for (List<Event> session : events) {
255            System.err.println("  {");
256            for (Event event : session) {
257                System.err.print("    ");
258                System.err.print(event);
259                System.err.println(",");
260            }
261            System.err.println("  }");
262        }
263        System.err.println("}");
264        System.err.println("\n\n");
265
266        GUIModel guiModel = parser.getGuiModel();
267        assertNotNull(guiModel);
268
269        for (IGUIElement root : guiModel.getRootElements()) {
270            dumpGUIElement(root, guiModel, "");
271        }
272    }
273
274    /**
275     * Helper method to print out GUIElements
276     * @param guiElement
277     * @param guiModel
278     * @param indent
279     */
280    private void dumpGUIElement(IGUIElement guiElement, GUIModel guiModel, String indent) {
281        assertTrue(guiElement instanceof HTMLGUIElement);
282
283        System.err.print(indent);
284        System.err.print(guiElement);
285
286        List<IGUIElement> children = guiModel.getChildren(guiElement);
287
288        if ((children != null) && (children.size() > 0)) {
289            System.err.println(" {");
290
291            for (IGUIElement child : children) {
292                dumpGUIElement(child, guiModel, indent + "  ");
293            }
294
295            System.err.print(indent);
296            System.err.print("}");
297        }
298
299        System.err.println();
300    }
301
302}
Note: See TracBrowser for help on using the repository browser.