/*******************************************************************************
* Copyright (c) 2012 Marc-Andre Laperle 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:
* Marc-Andre Laperle - initial API and implementation
*******************************************************************************/
package org.eclipse.koneki.ldt.ui.tests.internal;
import junit.framework.TestCase;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
import org.eclipse.koneki.ldt.ui.internal.editor.text.LuaWordFinder;
import org.junit.Test;
/**
* Tests for LuaWordFinder.
*/
public class LuaWordFinderTest extends TestCase {
@Test
public void testBasic() {
IDocument doc = new Document(" foo:bar(arg1, arg2)"); //$NON-NLS-1$
// | foo:bar(arg1, arg2)
IRegion region = LuaWordFinder.findWord(doc, 0);
assertEquals(0, region.getOffset());
assertEquals(0, region.getLength());
// |foo:bar(arg1, arg2)
region = LuaWordFinder.findWord(doc, 1);
assertEquals(1, region.getOffset());
assertEquals(3, region.getLength());
// fo|o:bar(arg1, arg2)
region = LuaWordFinder.findWord(doc, 3);
assertEquals(1, region.getOffset());
assertEquals(3, region.getLength());
// foo|:bar(arg1, arg2)
region = LuaWordFinder.findWord(doc, 4);
assertEquals(4, region.getOffset());
assertEquals(0, region.getLength());
// foo:|bar(arg1, arg2)
region = LuaWordFinder.findWord(doc, 5);
assertEquals(5, region.getOffset());
assertEquals(3, region.getLength());
// foo:bar|(arg1, arg2)
region = LuaWordFinder.findWord(doc, 8);
assertEquals(8, region.getOffset());
assertEquals(0, region.getLength());
// foo:bar(|arg1, arg2)
region = LuaWordFinder.findWord(doc, 9);
assertEquals(9, region.getOffset());
assertEquals(4, region.getLength());
// foo:bar(arg1|, arg2)
region = LuaWordFinder.findWord(doc, 13);
assertEquals(13, region.getOffset());
assertEquals(0, region.getLength());
// foo:bar(arg1, |arg2)
region = LuaWordFinder.findWord(doc, 15);
assertEquals(15, region.getOffset());
assertEquals(4, region.getLength());
}
@Test
public void testWordAtEnd() {
IDocument doc = new Document(" foo"); //$NON-NLS-1$
// |foo
IRegion region = LuaWordFinder.findWord(doc, 4);
assertEquals(4, region.getOffset());
assertEquals(3, region.getLength());
// fo|o
region = LuaWordFinder.findWord(doc, 6);
assertEquals(4, region.getOffset());
assertEquals(3, region.getLength());
// foo|
region = LuaWordFinder.findWord(doc, 7);
assertEquals(7, region.getOffset());
assertEquals(0, region.getLength());
}
@Test
public void testWordAtStart() {
IDocument doc = new Document("foo "); //$NON-NLS-1$
// |foo
IRegion region = LuaWordFinder.findWord(doc, 0);
assertEquals(0, region.getOffset());
assertEquals(3, region.getLength());
// f|oo
region = LuaWordFinder.findWord(doc, 1);
assertEquals(0, region.getOffset());
assertEquals(3, region.getLength());
}
}