Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Maeder2004-05-24 14:57:28 +0000
committerThomas Maeder2004-05-24 14:57:28 +0000
commiteeec6b4cc7059f28eabcba0975ee67f5722cc679 (patch)
tree2f8ab7461516c297313b96d5407953c617a650f5 /org.eclipse.search.tests
parent5ed3f08fdf14ef09a9fda0b26690eb203a560aa4 (diff)
downloadeclipse.platform.text-eeec6b4cc7059f28eabcba0975ee67f5722cc679.tar.gz
eclipse.platform.text-eeec6b4cc7059f28eabcba0975ee67f5722cc679.tar.xz
eclipse.platform.text-eeec6b4cc7059f28eabcba0975ee67f5722cc679.zip
fix for bug 63640
Diffstat (limited to 'org.eclipse.search.tests')
-rw-r--r--org.eclipse.search.tests/src/org/eclipse/search/core/tests/AllSearchModelTests.java1
-rw-r--r--org.eclipse.search.tests/src/org/eclipse/search/core/tests/LineConversionTest.java106
2 files changed, 107 insertions, 0 deletions
diff --git a/org.eclipse.search.tests/src/org/eclipse/search/core/tests/AllSearchModelTests.java b/org.eclipse.search.tests/src/org/eclipse/search/core/tests/AllSearchModelTests.java
index d97135e257f..7ad603a1642 100644
--- a/org.eclipse.search.tests/src/org/eclipse/search/core/tests/AllSearchModelTests.java
+++ b/org.eclipse.search.tests/src/org/eclipse/search/core/tests/AllSearchModelTests.java
@@ -34,6 +34,7 @@ public class AllSearchModelTests extends TestSuite {
addTest(new TestSuite(QueryManagerTest.class));
addTest(new TestSuite(TestSearchResult.class));
addTest(new TestSuite(QueryManagerTest.class));
+ addTest(new TestSuite(LineConversionTest.class));
}
}
diff --git a/org.eclipse.search.tests/src/org/eclipse/search/core/tests/LineConversionTest.java b/org.eclipse.search.tests/src/org/eclipse/search/core/tests/LineConversionTest.java
new file mode 100644
index 00000000000..5882536afb6
--- /dev/null
+++ b/org.eclipse.search.tests/src/org/eclipse/search/core/tests/LineConversionTest.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.search.core.tests;
+
+import java.io.ByteArrayInputStream;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.filebuffers.FileBuffers;
+import org.eclipse.core.filebuffers.ITextFileBuffer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.Position;
+import org.eclipse.search.internal.ui.SearchPlugin;
+import org.eclipse.search2.internal.ui.text.PositionTracker;
+import org.eclipse.ui.ide.IDE;
+
+/**
+ */
+public class LineConversionTest extends TestCase {
+ private IFile fFile;
+
+ private static final String LINE_TWO= "This is the second line";
+ private static final String LINE_ONE= "This is the first line";
+ private static final String LINE_THREE= "This is the third line";
+
+ protected void setUp() throws Exception {
+ IProject project= ResourcesPlugin.getWorkspace().getRoot().getProject("Test");
+ project.create(null);
+ project.open(null);
+ fFile= project.getFile("/test.txt");
+ fFile.create(new ByteArrayInputStream(getFileContents().getBytes()), true, null);
+ super.setUp();
+ }
+
+ protected void tearDown() throws Exception {
+ SearchPlugin.getActivePage().closeAllEditors(false);
+ fFile.getProject().delete(true, true, null);
+ super.tearDown();
+ }
+
+ private String getFileContents() {
+ return LINE_ONE+"\n"+LINE_TWO+"\n"+LINE_THREE;
+ }
+
+ public void testConvertToCharacter() throws Exception {
+ IDE.openEditor(SearchPlugin.getActivePage(), fFile);
+ ITextFileBuffer fb= FileBuffers.getTextFileBufferManager().getTextFileBuffer(fFile.getLocation());
+ IDocument doc= fb.getDocument();
+
+ Position p1= new Position(2, 1);
+ Position p2= PositionTracker.convertToCharacterPosition(p1, doc);
+ //assertEquals(LINE_THREE, doc.get(p2.getOffset(), p2.getLength()));
+ assertEquals(p1, PositionTracker.convertToLinePosition(p2, doc));
+
+ p1= new Position(0, 1);
+ p2= PositionTracker.convertToCharacterPosition(p1, doc);
+ assertEquals(LINE_ONE, doc.get(p2.getOffset(), p2.getLength()));
+ assertEquals(p1, PositionTracker.convertToLinePosition(p2, doc));
+
+ p1= new Position(1, 1);
+ p2= PositionTracker.convertToCharacterPosition(p1, doc);
+ assertEquals(LINE_TWO, doc.get(p2.getOffset(), p2.getLength()));
+ assertEquals(p1, PositionTracker.convertToLinePosition(p2, doc));
+
+ p1= new Position(0, 0);
+ p2= PositionTracker.convertToCharacterPosition(p1, doc);
+ assertEquals("", doc.get(p2.getOffset(), p2.getLength()));
+ assertEquals(p1, PositionTracker.convertToLinePosition(p2, doc));
+ }
+
+ public void testBogusLines() throws Exception {
+ IDE.openEditor(SearchPlugin.getActivePage(), fFile);
+ ITextFileBuffer fb= FileBuffers.getTextFileBufferManager().getTextFileBuffer(fFile.getLocation());
+ IDocument doc= fb.getDocument();
+
+ Position p1= new Position(2, 67);
+ try {
+ Position p2= PositionTracker.convertToCharacterPosition(p1, doc);
+ assertTrue("shouldn't happen", false);
+ } catch (BadLocationException e) {
+ }
+ }
+
+ public void atestLineOffsets() throws Exception {
+ IDE.openEditor(SearchPlugin.getActivePage(), fFile);
+ ITextFileBuffer fb= FileBuffers.getTextFileBufferManager().getTextFileBuffer(fFile.getLocation());
+ IDocument doc= fb.getDocument();
+
+ int offset= doc.getLineOffset(3);
+ int line= doc.getLineOfOffset(offset);
+ assertEquals(3, line);
+ }
+} \ No newline at end of file

Back to the top