/*******************************************************************************
* Copyright (c) 2007, 2017 Alphonse Van Assche 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:
* Alphonse Van Assche - initial API and implementation
*******************************************************************************/
package org.eclipse.linuxtools.rpm.ui.editor.tests;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.linuxtools.internal.rpm.ui.editor.SpecfileEditor;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
import org.junit.Before;
public abstract class AScannerTest extends FileTestCase {
protected RuleBasedScanner rulesBasedScanner;
protected abstract String getContents();
protected abstract RuleBasedScanner getScanner();
public SpecfileEditor editor;
@Override
@Before
public void setUp() throws CoreException {
super.setUp();
newFile(getContents());
testProject.refresh();
IEditorPart openEditor = IDE.openEditor(PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage(), testFile,
"org.eclipse.linuxtools.rpm.ui.editor.SpecfileEditor");
editor = (SpecfileEditor) openEditor;
editor.doRevertToSaved();
rulesBasedScanner = getScanner();
rulesBasedScanner.setRange(testDocument, 0, getContents().length());
}
protected IToken getNextToken() {
return rulesBasedScanner.nextToken();
}
protected IToken getToken(int nbrOfToken) {
for (int i = 0; i < nbrOfToken - 1; i++) {
rulesBasedScanner.nextToken();
}
return rulesBasedScanner.nextToken();
}
}