blob: af11fab22c45a6cf34bb11c002f69d9bd29afd74 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.text.tests;
import junit.framework.Assert;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.DefaultPositionUpdater;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IPositionUpdater;
import org.eclipse.jface.text.Position;
import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler;
import org.eclipse.wst.sse.core.internal.modelhandler.ModelHandlerRegistry;
import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
/**
* @since 3.3
*/
public class ExclusivePositionUpdaterTest extends TestCase {
public static Test suite() {
return new TestSuite(ExclusivePositionUpdaterTest.class);
}
private IPositionUpdater fUpdater;
private static final String CATEGORY= "testcategory";
private Position fPos;
private IDocument fDoc;
/*
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
fUpdater= new DefaultPositionUpdater(CATEGORY);
// fDoc = new Document("ccccccccccccccccccccccccccccccccccccccccccccc");
fDoc= createDocument("ccccccccccccccccccccccccccccccccccccccccccccc");
fPos= new Position(5, 5);
fDoc.addPositionUpdater(fUpdater);
fDoc.addPositionCategory(CATEGORY);
fDoc.addPosition(CATEGORY, fPos);
}
private IDocument createDocument(String contents) {
IModelHandler handler = ModelHandlerRegistry.getInstance().getHandlerForContentTypeId("org.eclipse.jst.jsp.jspsource");
BasicStructuredDocument document = (BasicStructuredDocument) handler.getDocumentLoader().createNewStructuredDocument();
document.set(contents);
return document;
}
/*
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
fDoc.removePositionUpdater(fUpdater);
fDoc.removePositionCategory(CATEGORY);
}
public void testDeleteAfter() throws BadLocationException {
fDoc.replace(20, 2, "");
Assert.assertEquals(5, fPos.offset);
Assert.assertEquals(5, fPos.length);
}
public void testAddAfter() throws BadLocationException {
fDoc.replace(20, 0, "yy");
Assert.assertEquals(5, fPos.offset);
Assert.assertEquals(5, fPos.length);
}
public void testDeleteBefore() throws BadLocationException {
fDoc.replace(2, 2, "");
Assert.assertEquals(3, fPos.offset);
Assert.assertEquals(5, fPos.length);
}
public void testAddBefore() throws BadLocationException {
fDoc.replace(2, 0, "yy");
Assert.assertEquals(7, fPos.offset);
Assert.assertEquals(5, fPos.length);
}
public void testAddRightBefore() throws BadLocationException {
fDoc.replace(5, 0, "yy");
Assert.assertEquals(7, fPos.offset);
Assert.assertEquals(5, fPos.length);
}
public void testDeleteAtOffset() throws BadLocationException {
fDoc.replace(5, 2, "");
Assert.assertEquals(5, fPos.offset);
Assert.assertEquals(3, fPos.length);
}
public void testDeleteRightBefore() throws BadLocationException {
fDoc.replace(3, 2, "");
Assert.assertEquals(3, fPos.offset);
Assert.assertEquals(5, fPos.length);
}
public void testAddRightAfter() throws BadLocationException {
fDoc.replace(10, 0, "yy");
Assert.assertEquals(5, fPos.offset);
Assert.assertEquals(5, fPos.length);
}
public void testDeleteRightAfter() throws BadLocationException {
fDoc.replace(10, 2, "");
Assert.assertEquals(5, fPos.offset);
Assert.assertEquals(5, fPos.length);
}
public void testAddWithin() throws BadLocationException {
fDoc.replace(6, 0, "yy");
Assert.assertEquals(5, fPos.offset);
Assert.assertEquals(7, fPos.length);
}
public void testDeleteWithin() throws BadLocationException {
fDoc.replace(6, 2, "");
Assert.assertEquals(5, fPos.offset);
Assert.assertEquals(3, fPos.length);
}
public void testReplaceLeftBorder() throws BadLocationException {
fDoc.replace(4, 2, "yy");
Assert.assertEquals(6, fPos.offset);
Assert.assertEquals(4, fPos.length);
}
public void testReplaceRightBorder() throws BadLocationException {
fDoc.replace(9, 2, "yy");
Assert.assertEquals(5, fPos.offset);
Assert.assertEquals(4, fPos.length);
}
public void testDeleteOverRightBorder() throws BadLocationException {
fDoc.replace(9, 2, "");
Assert.assertEquals(5, fPos.offset);
Assert.assertEquals(4, fPos.length);
}
public void testDeleted() throws BadLocationException {
fDoc.replace(4, 7, "");
Assert.assertTrue(fPos.isDeleted);
}
public void testReplaced() throws BadLocationException {
fDoc.replace(4, 7, "yyyyyyy");
Assert.assertTrue(fPos.isDeleted);
}
}