diff options
author | Thomas Maeder | 2004-05-24 14:57:28 +0000 |
---|---|---|
committer | Thomas Maeder | 2004-05-24 14:57:28 +0000 |
commit | eeec6b4cc7059f28eabcba0975ee67f5722cc679 (patch) | |
tree | 2f8ab7461516c297313b96d5407953c617a650f5 /org.eclipse.search.tests | |
parent | 5ed3f08fdf14ef09a9fda0b26690eb203a560aa4 (diff) | |
download | eclipse.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.java | 1 | ||||
-rw-r--r-- | org.eclipse.search.tests/src/org/eclipse/search/core/tests/LineConversionTest.java | 106 |
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 |