Index: trunk/quest-ui-core-test/src/de/ugoe/cs/quest/TestAll.java
===================================================================
--- trunk/quest-ui-core-test/src/de/ugoe/cs/quest/TestAll.java	(revision 432)
+++ trunk/quest-ui-core-test/src/de/ugoe/cs/quest/TestAll.java	(revision 432)
@@ -0,0 +1,22 @@
+package de.ugoe.cs.quest;
+
+import org.junit.runner.JUnitCore;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * The class <code>TestAll</code> builds a suite that can be used to run all
+ * of the tests within its package as well as within any subpackages of its
+ * package.
+ *
+ * @author Steffen Herbold
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+	de.ugoe.cs.quest.jfc.data.TestAll.class
+})
+public class TestAll {
+	public static void main(String[] args) {
+		JUnitCore.runClasses(new Class[] { TestAll.class });
+	}
+}
Index: trunk/quest-ui-core-test/src/de/ugoe/cs/quest/jfc/data/JFCEventTest.java
===================================================================
--- trunk/quest-ui-core-test/src/de/ugoe/cs/quest/jfc/data/JFCEventTest.java	(revision 432)
+++ trunk/quest-ui-core-test/src/de/ugoe/cs/quest/jfc/data/JFCEventTest.java	(revision 432)
@@ -0,0 +1,376 @@
+package de.ugoe.cs.quest.jfc.data;
+
+import org.junit.*;
+
+import de.ugoe.cs.quest.jfc.data.JFCEvent;
+import de.ugoe.cs.quest.jfc.data.JFCTargetComparator;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>JFCEventTest</code> contains tests for the class <code>{@link JFCEvent}</code>.
+ *
+ * @author Steffen Herbold
+ * @version 1.0
+ */
+public class JFCEventTest {
+	
+	@Test
+	public void testTargetEquals_1()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_2()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','class1','text1','index1','hash1'].['titleOther','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_3()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hashOther']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_4()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['titleOther','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_5()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','class1','text1','index1','hashOther'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_6()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','class1','text1','index1','hash1'].['titleOther','class2','text2','index2','hashOther']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_7()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['titleOther','class1','text1','index1','hashOther'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_8()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','class1','text1','index1','hash1'].['title2','classOther','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_9()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','class1','text1','index1','hash1'].['title2','class2','textOther','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_10()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','indexOther','hash2']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_11()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','classOther','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_12()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','class1','textOther','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_13()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title1','class1','text1','indexOther','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_14()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title'1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title'1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_15()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title]1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title]1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_16()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title[1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title[1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_17()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title].1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title].1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_18()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title.[1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		String target2 = "['title.[1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_19()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1']";
+		String target2 = "['title1','class1','text1','index1','hash1'].['title2','class2','text2','index2','hash2']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_20()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1']";
+		String target2 = "['title1','class1','text1','index1','hash1']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_21()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1']";
+		String target2 = "['titleOther','class1','text1','index1','hash1']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_22()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1']";
+		String target2 = "['title1','class1','text1','index1','hashOther']";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_23()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1']";
+		String target2 = "['titleOther','class1','text1','index1','hashOther']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_24()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = null;
+		String target2 = "['titleOther','class1','text1','index1','hash1']";
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_25()
+		throws Exception {
+		JFCEvent event = new JFCEvent("type");
+		String target1 = "['title1','class1','text1','index1','hash1']";
+		String target2 = null;
+		event.setTarget(target1);
+		boolean expected = false;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Before
+	public void setUp() {
+		JFCTargetComparator.reset();
+	}
+	
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(JFCEventTest.class);
+	}
+}
Index: trunk/quest-ui-core-test/src/de/ugoe/cs/quest/jfc/data/TestAll.java
===================================================================
--- trunk/quest-ui-core-test/src/de/ugoe/cs/quest/jfc/data/TestAll.java	(revision 432)
+++ trunk/quest-ui-core-test/src/de/ugoe/cs/quest/jfc/data/TestAll.java	(revision 432)
@@ -0,0 +1,25 @@
+package de.ugoe.cs.quest.jfc.data;
+
+import org.junit.runner.JUnitCore;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+import de.ugoe.cs.quest.jfc.data.TestAll;
+
+/**
+ * The class <code>TestAll</code> builds a suite that can be used to run all
+ * of the tests within its package as well as within any subpackages of its
+ * package.
+ *
+ * @author Steffen Herbold
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+	JFCEventTest.class
+})
+public class TestAll {
+
+	public static void main(String[] args) {
+		JUnitCore.runClasses(new Class[] { TestAll.class });
+	}
+}
Index: trunk/quest-ui-core-test/src/de/ugoe/cs/quest/windows/data/WindowsEventTest.java
===================================================================
--- trunk/quest-ui-core-test/src/de/ugoe/cs/quest/windows/data/WindowsEventTest.java	(revision 432)
+++ trunk/quest-ui-core-test/src/de/ugoe/cs/quest/windows/data/WindowsEventTest.java	(revision 432)
@@ -0,0 +1,50 @@
+package de.ugoe.cs.quest.windows.data;
+
+import org.junit.*;
+
+import de.ugoe.cs.quest.windows.data.MFCTargetComparator;
+import de.ugoe.cs.quest.windows.data.WindowsEvent;
+
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>WindowsEventTest</code> contains tests for the class <code>{@link WindowsEvent}</code>.
+ *
+ * @author Steffen Herbold
+ * @version 1.0
+ */
+public class WindowsEventTest {
+	
+	@Test
+	public void testTargetEquals_1() throws Exception {
+		WindowsEvent event = new WindowsEvent("type");
+		String target1 = "<window name=\"name1\" class=\"class1\" resourceId=\"id1\" isModal=\"modal1\" hwnd=\"111\"/>";
+		String target2 = "<window name=\"name1\" class=\"class1\" resourceId=\"id1\" isModal=\"modal1\" hwnd=\"111\"/>";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+	
+	@Test
+	public void testTargetEquals_2() throws Exception {
+		WindowsEvent event = new WindowsEvent("type");
+		String target1 = "<window name=\"Messplatz\" class=\"#32770\" resourceId=\"0\" isModal=\"true\" hwnd=\"1770138\"/><window name=\"Messplatz im Einstellmodus\" class=\"#32770\" resourceId=\"0\" isModal=\"true\" hwnd=\"2032262\"/><window name=\"\" class=\"#32770\" resourceId=\"0\" isModal=\"false\" hwnd=\"459658\"/><window name=\"\" class=\"SysTabControl32\" resourceId=\"12320\" isModal=\"false\" hwnd=\"983734\"/>";
+		String target2 = "<window name=\"Messplatz\" class=\"#32770\" resourceId=\"0\" isModal=\"true\" hwnd=\"1770138\"/><window name=\"Messplatz im Einstellmodus\" class=\"#32770\" resourceId=\"0\" isModal=\"true\" hwnd=\"2032262\"/><window name=\"\" class=\"#32770\" resourceId=\"0\" isModal=\"false\" hwnd=\"459658\"/><window name=\"\" class=\"SysTabControl32\" resourceId=\"12320\" isModal=\"false\" hwnd=\"983734\"/>";
+		event.setTarget(target1);
+		boolean expected = true;
+		
+		boolean result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+		
+		MFCTargetComparator.setMutable(false);
+		
+		result = event.targetEquals(target2);
+		
+		assertEquals(expected, result);
+	}
+
+}
