Index: trunk/autoquest-test-utils/src/test/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoderTest.java
===================================================================
--- trunk/autoquest-test-utils/src/test/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoderTest.java	(revision 1325)
+++ trunk/autoquest-test-utils/src/test/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoderTest.java	(revision 1327)
@@ -19,4 +19,8 @@
 import org.junit.Test;
 
+import de.ugoe.cs.autoquest.eventcore.Event;
+import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement;
+import de.ugoe.cs.autoquest.eventcore.guimodel.ITextArea;
+import de.ugoe.cs.autoquest.eventcore.guimodel.ITextField;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance;
@@ -237,4 +241,145 @@
         assertFalse(list.get(0).equals(list.get(1)));
         assertTrue(list.get(0).getTask().equals(list.get(1).getTask()));
+        
+        new TaskTreeValidator().validate(list);
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void test_GuiElements_01() {
+        String blub =
+            "UserSession {" +
+            "  MouseClick elem1 { }" +
+            "}";
+
+        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
+        
+        ITaskInstanceList list = decoder.decode(blub);
+        
+        assertTrue(list.get(0) instanceof IEventTaskInstance);
+        
+        Event event = ((IEventTaskInstance) list.get(0)).getEvent();
+        
+        assertTrue(event.getTarget() instanceof IGUIElement);
+        assertFalse(event.getTarget() instanceof ITextArea);
+        assertFalse(event.getTarget() instanceof ITextField);
+        
+        new TaskTreeValidator().validate(list);
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void test_GuiElements_02() {
+        String blub =
+            "UserSession {" +
+            "  TextInput elem1 { }" +
+            "}";
+
+        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
+        
+        ITaskInstanceList list = decoder.decode(blub);
+        
+        assertTrue(list.get(0) instanceof IEventTaskInstance);
+        
+        Event event = ((IEventTaskInstance) list.get(0)).getEvent();
+        
+        assertTrue(event.getTarget() instanceof IGUIElement);
+        assertFalse(event.getTarget() instanceof ITextArea);
+        assertTrue(event.getTarget() instanceof ITextField);
+        
+        new TaskTreeValidator().validate(list);
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void test_GuiElements_03() {
+        String blub =
+            "UserSession {" +
+            "  OtherInteraction elem1 { }" +
+            "  TextInput elem1 { }" +
+            "}";
+
+        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
+        
+        ITaskInstanceList list = decoder.decode(blub);
+        
+        assertTrue(list.get(0) instanceof IEventTaskInstance);
+        
+        Event event = ((IEventTaskInstance) list.get(0)).getEvent();
+        
+        assertTrue(event.getTarget() instanceof IGUIElement);
+        assertFalse(event.getTarget() instanceof ITextArea);
+        assertTrue(event.getTarget() instanceof ITextField);
+        
+        assertTrue(list.get(1) instanceof IEventTaskInstance);
+        
+        event = ((IEventTaskInstance) list.get(1)).getEvent();
+        
+        assertTrue(event.getTarget() instanceof IGUIElement);
+        assertFalse(event.getTarget() instanceof ITextArea);
+        assertTrue(event.getTarget() instanceof ITextField);
+        
+        new TaskTreeValidator().validate(list);
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void test_GuiElements_04() {
+        String blub =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    TextInput elem1 { }" +
+            "  }" +
+            "}";
+
+        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
+        
+        ITaskInstanceList list = decoder.decode(blub);
+        
+        assertTrue(list.get(0) instanceof ISequenceInstance);
+        assertTrue(((ISequenceInstance) list.get(0)).get(0) instanceof IEventTaskInstance);
+        
+        Event event = ((IEventTaskInstance) ((ISequenceInstance) list.get(0)).get(0)).getEvent();
+        
+        assertTrue(event.getTarget() instanceof IGUIElement);
+        assertFalse(event.getTarget() instanceof ITextArea);
+        assertTrue(event.getTarget() instanceof ITextField);
+        
+        new TaskTreeValidator().validate(list);
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void test_GuiElements_05() {
+        String blub =
+            "UserSession {" +
+            "  Selection sel1 {" +
+            "    TextInput elem1 { }" +
+            "  }" +
+            "}";
+
+        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
+        
+        ITaskInstanceList list = decoder.decode(blub);
+        
+        assertTrue(list.get(0) instanceof ISelectionInstance);
+        assertTrue(((ISelectionInstance) list.get(0)).getChild() instanceof IEventTaskInstance);
+        
+        Event event =
+            ((IEventTaskInstance) ((ISelectionInstance) list.get(0)).getChild()).getEvent();
+        
+        assertTrue(event.getTarget() instanceof IGUIElement);
+        assertFalse(event.getTarget() instanceof ITextArea);
+        assertTrue(event.getTarget() instanceof ITextField);
         
         new TaskTreeValidator().validate(list);
