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

Last change on this file since 1387 was 1340, checked in by pharms, 11 years ago
  • added support for parameterizing the parsing of GUI models to ignore ids or indexes
  • Property svn:mime-type set to text/plain
File size: 9.0 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.util.Collection;
21import java.util.HashMap;
22import java.util.Iterator;
23import java.util.LinkedList;
24import java.util.List;
25import java.util.Map;
26import java.util.logging.Level;
27
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    *
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   }
295
296}
Note: See TracBrowser for help on using the repository browser.