@Test public void testKeyboardLayout() throws Exception { Util.createProjectWithEmptyFile("keyboard", "text.txt", ALICE); // final String textToTest = "!\"§$%&/()={[]}\\+*~#'-_.:,;|<>^? abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; ALICE.superBot().views().packageExplorerView().selectFile("keyboard", "text.txt").open(); ALICE.remoteBot().editor("text.txt").typeText(textToTest); assertEquals( "keyboard layout is misconfigured", textToTest, ALICE.remoteBot().editor("text.txt").getText()); }
/** * The User ALICE and BOB insert characters in the file, CARL deletes a range of characters * * @throws Exception */ @Test public void testTwoInsertOneDelete() throws Exception { Util.setUpSessionWithProjectAndFile( "foo", "readme.txt", "\nVerbesserung des algorithmischen Kerns, Gleichzeitiges Editieren\n", ALICE, CARL, BOB); BOB.superBot().views().packageExplorerView().waitUntilResourceIsShared("foo/readme.txt"); CARL.superBot().views().packageExplorerView().waitUntilResourceIsShared("foo/readme.txt"); ALICE.superBot().views().packageExplorerView().selectFile("foo", "readme.txt").open(); ALICE.remoteBot().editor("readme.txt").waitUntilIsActive(); BOB.superBot().views().packageExplorerView().selectFile("foo", "readme.txt").open(); BOB.remoteBot().editor("readme.txt").waitUntilIsActive(); CARL.superBot().views().packageExplorerView().selectFile("foo", "readme.txt").open(); CARL.remoteBot().editor("readme.txt").waitUntilIsActive(); /* * The Alice-Thread insert the lower case characters */ EclipseTestThread.Runnable aliceEditTask = new EclipseTestThread.Runnable() { @Override public void run() throws Exception { int i = 97; while (!Thread.currentThread().isInterrupted()) { if (i >= 123) { // ALICE.remoteBot().editor("readme.txt").typeText("\n"); i = 96; } else { ALICE.remoteBot().editor("readme.txt").typeText("" + ((char) i) + ""); ALICE.remoteBot().editor("readme.txt").navigateTo(1, 1); } i++; } } }; /* * The Carl-Thread delete a range of characters */ EclipseTestThread.Runnable carlEditTask = new EclipseTestThread.Runnable() { @Override public void run() throws Exception { int i = 48; while (!Thread.currentThread().isInterrupted()) { if (i >= 58) { CARL.remoteBot().editor("readme.txt").selectRange(1, 1, 5); CARL.remoteBot().editor("readme.txt").pressShortCutDelete(); CARL.remoteBot().editor("readme.txt").selectRange(1, 1, 6); CARL.remoteBot().editor("readme.txt").typeText("#"); i = 47; } else { CARL.remoteBot().editor("readme.txt").navigateTo(1, 1); } i++; } } }; /* * The Bob-Thread insert the upper case characters */ EclipseTestThread.Runnable bobEditTask = new EclipseTestThread.Runnable() { @Override public void run() throws Exception { int i = 65; while (!Thread.currentThread().isInterrupted()) { if (i >= 91) { BOB.remoteBot().editor("readme.txt").typeText("\n"); i = 64; } else { BOB.remoteBot().editor("readme.txt").typeText("" + ((char) i) + ""); BOB.remoteBot().editor("readme.txt").navigateTo(1, 1); } i++; } } }; aliceEditTaskThread = createTestThread(aliceEditTask); aliceEditTaskThread.start(); bobEditTaskThread = createTestThread(bobEditTask); bobEditTaskThread.start(); carlEditTaskThread = createTestThread(carlEditTask); carlEditTaskThread.start(); Thread.sleep(INTERVAL * 60 * 1000); aliceEditTaskThread.interrupt(); bobEditTaskThread.interrupt(); carlEditTaskThread.interrupt(); aliceEditTaskThread.join(10000); bobEditTaskThread.join(10000); carlEditTaskThread.join(10000); aliceEditTaskThread.verify(); bobEditTaskThread.verify(); carlEditTaskThread.verify(); // ensure that all queues on the client sides are flushed BOB.controlBot().getNetworkManipulator().synchronizeOnActivityQueue(ALICE.getJID(), 60 * 1000); CARL.controlBot().getNetworkManipulator().synchronizeOnActivityQueue(ALICE.getJID(), 60 * 1000); ALICE.controlBot().getNetworkManipulator().synchronizeOnActivityQueue(BOB.getJID(), 60 * 1000); ALICE.controlBot().getNetworkManipulator().synchronizeOnActivityQueue(CARL.getJID(), 60 * 1000); String aliceText = ALICE.remoteBot().editor("readme.txt").getText(); String bobText = BOB.remoteBot().editor("readme.txt").getText(); String carlText = CARL.remoteBot().editor("readme.txt").getText(); ALICE.remoteBot().editor("readme.txt").closeWithoutSave(); ALICE.remoteBot().waitUntilEditorClosed("readme.txt"); BOB.remoteBot().editor("readme.txt").closeWithoutSave(); BOB.remoteBot().waitUntilEditorClosed("readme.txt"); CARL.remoteBot().editor("readme.txt").closeWithoutSave(); CARL.remoteBot().waitUntilEditorClosed("readme.txt"); assertEquals(bobText, carlText); assertEquals(aliceText, bobText); }