/******************************************************************************* * Copyright (c) 2012 Sierra Wireless 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: * Sierra Wireless - initial API and implementation *******************************************************************************/ package org.eclipse.koneki.ldt.ui.tests.internal.rules; import org.eclipse.jface.text.rules.IRule; import org.eclipse.jface.text.rules.IToken; import org.eclipse.jface.text.rules.Token; import org.eclipse.koneki.ldt.ui.internal.editor.text.LuaCodeScanner; import org.eclipse.koneki.ldt.ui.internal.editor.text.rules.LuaMultLineStringRule; import org.junit.Test; /** * Tests for {@link LuaCodeScanner.LuaNumberRule}. */ public class LuaMultLineStringRuleTest extends AbstractRuleTestCase { private static final IToken MULTI_LINE_STRING_TOKEN = new Token("multi_line"); //$NON-NLS-1$ @Test public void testMutiLineString() { assertTokenFound("[[string]]", 0, 10, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("--[[string]]", 2, 10, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("--[[-string]]", 2, 11, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[[\nstring\n]]", 0, 12, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound(" [[string]]", 1, 10, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[=[string]=]", 0, 12, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[===[string]===]", 0, 16, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[[string\nstring2\n]]", 0, 19, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[[string]][[string2]]", 0, 10, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[[string]][[string2]]", 10, 11, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[[string[[string2]]", 0, 19, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ } @Test public void testEndLessString() { assertTokenFound("[[string", 0, 8, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[[string]string2", 0, 16, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[[\nstring\nstring2", 0, 17, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[[string]=]string2", 0, 18, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[=[string]]string2", 0, 18, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[=[string]==]string2", 0, 20, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ } @Test public void testStringInCode() { assertTokenFound("print([[string]])", 6, 10, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("print([[\nstring\n]])", 6, 12, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("[[\nstring\n]]\nlocal var", 0, 12, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ assertTokenFound("local var = [[\nstring\n]]\nprint(var)", 12, 12, MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ } @Test public void testNoMutiLineString() { assertTokenNotFound("[string]]", MULTI_LINE_STRING_TOKEN); //$NON-NLS-1$ } @Override protected IRule createRule() { return new LuaMultLineStringRule(MULTI_LINE_STRING_TOKEN); } }