From: Jan P. <jp...@us...> - 2006-11-04 22:14:18
|
Update of /cvsroot/e-p-i-c/org.epic.perleditor-test/src-pde/org/epic/perleditor/editors In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6817/src-pde/org/epic/perleditor/editors Modified Files: TestSmartTyping.java Keyboard.java TestFindReplace.java Log Message: Merged from 'stable'. Index: TestFindReplace.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.perleditor-test/src-pde/org/epic/perleditor/editors/TestFindReplace.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- TestFindReplace.java 29 May 2006 20:38:45 -0000 1.1 +++ TestFindReplace.java 4 Nov 2006 22:14:11 -0000 1.2 @@ -1,12 +1,47 @@ package org.epic.perleditor.editors; +import org.eclipse.core.filebuffers.FileBuffers; +import org.eclipse.core.filebuffers.ITextFileBufferManager; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.text.*; import org.eclipse.swt.graphics.Point; +import org.eclipse.ui.IFileEditorInput; public class TestFindReplace extends BasePDETestCase { - public void testAll() - throws Exception + public void testTextBuffer() throws Exception + { + // This test checks whether the document obtained from the + // editor is managed by TextFileBufferManager. Were it not + // the case, then operations such as Search/Replace would + // execute on the disk version of the file instead of the + // working copy (see bug #1589280). + + PerlEditor editor = openEditor("EPICTest/test_FindReplace.pl"); + + IPath fileLocation = + ((IFileEditorInput) editor.getEditorInput()).getFile().getLocation(); + + ITextFileBufferManager bm = FileBuffers.getTextFileBufferManager(); + bm.connect(fileLocation, new NullProgressMonitor()); + + try + { + IDocument doc = editor.getViewer().getDocument(); + doc.replace(0, 0, "abc"); + + String bufText = bm.getTextFileBuffer(fileLocation).getDocument().get(); + assertEquals(doc.get(), bufText); + } + finally + { + bm.disconnect(fileLocation, new NullProgressMonitor()); + closeEditor(editor); + } + } + + public void testFindReplace() throws Exception { PerlEditor editor = openEditor("EPICTest/test_FindReplace.pl"); @@ -19,9 +54,10 @@ IFindReplaceTarget target = (IFindReplaceTarget) editor .getAdapter(IFindReplaceTarget.class); + IDocument doc = editor.getViewer().getDocument(); doFindReplace(target, "\\s*$", "", true); - IDocument doc = editor.getViewer().getDocument(); + //IDocument doc = editor.getViewer().getDocument(); IDocumentPartitioner partitioner = (IDocumentPartitioner) doc.getDocumentPartitioner(); Index: TestSmartTyping.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.perleditor-test/src-pde/org/epic/perleditor/editors/TestSmartTyping.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- TestSmartTyping.java 12 Apr 2006 19:02:21 -0000 1.3 +++ TestSmartTyping.java 4 Nov 2006 22:14:11 -0000 1.4 @@ -92,6 +92,16 @@ Keyboard.typeString("'"); Keyboard.typeString(";"); assertEquals("print 'aaa';", testIface.getText()); + + testIface.clear(); + + Keyboard.typeString("# ' ok {"); + assertEquals("# ' ok {}", testIface.getText()); + + testIface.clear(); + + Keyboard.typeString("=comment\nLet's go"); + assertEquals("=comment\nLet's go", testIface.getText()); } finally { Index: Keyboard.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.perleditor-test/src-pde/org/epic/perleditor/editors/Keyboard.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Keyboard.java 9 Sep 2005 11:27:45 -0000 1.1 +++ Keyboard.java 4 Nov 2006 22:14:11 -0000 1.2 @@ -82,47 +82,64 @@ for (int i = 0; i < string.length(); i++) { char c = string.charAt(i); - - boolean uppercase; - if (Character.isUpperCase(c)) - { - c = Character.toLowerCase(c); - uppercase = true; - } - else if (uppercaseChars.contains(new Character(c))) - { - uppercase = true; - } - else uppercase = false; - - Event e; - if (uppercase) + if (c == '\n') { + Event e; + e = new Event(); e.type = SWT.KeyDown; - e.keyCode = SWT.SHIFT; + e.keyCode = 13; + display.post(e); + + e = new Event(); + e.type = SWT.KeyUp; + e.keyCode = 13; display.post(e); } - - e = new Event(); - e.type = SWT.KeyDown; - e.character = c; - if (uppercase) e.stateMask = SWT.SHIFT; - display.post(e); - - e = new Event(); - e.type = SWT.KeyUp; - e.character = c; - if (uppercase) e.stateMask = SWT.SHIFT; - display.post(e); - - if (uppercase) + else { + boolean uppercase; + if (Character.isUpperCase(c)) + { + c = Character.toLowerCase(c); + uppercase = true; + } + else if (uppercaseChars.contains(new Character(c))) + { + uppercase = true; + } + else uppercase = false; + + Event e; + + if (uppercase) + { + e = new Event(); + e.type = SWT.KeyDown; + e.keyCode = SWT.SHIFT; + display.post(e); + } + + e = new Event(); + e.type = SWT.KeyDown; + e.character = c; + if (uppercase) e.stateMask = SWT.SHIFT; + display.post(e); + e = new Event(); e.type = SWT.KeyUp; - e.keyCode = SWT.SHIFT; + e.character = c; + if (uppercase) e.stateMask = SWT.SHIFT; display.post(e); + + if (uppercase) + { + e = new Event(); + e.type = SWT.KeyUp; + e.keyCode = SWT.SHIFT; + display.post(e); + } } while (display.readAndDispatch()); |