blob: 019546f245f39c37aa8f5a2b9e5392a1a6e43f01 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 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.wst.css.core.tests.source;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.wst.css.core.internal.parserz.CSSTextParser;
import org.eclipse.wst.css.core.internal.parserz.CSSTextToken;
import org.eclipse.wst.css.core.tests.util.FileUtil;
public class CSSTextParserTest extends TestCase {
public void testText1() throws IOException {
textParserTest("sample01.css"); //$NON-NLS-1$
}
public void testText2() throws IOException {
textParserTest("sample02.css"); //$NON-NLS-1$
}
public void testText3() throws IOException {
textParserTest("sample03.css"); //$NON-NLS-1$
}
public void testText4() throws IOException {
textParserTest("sample04.css"); //$NON-NLS-1$
}
public void testText5() throws IOException {
textParserTest("sample05.css"); //$NON-NLS-1$
}
public void testText6() throws IOException {
textParserTest("sample06.css"); //$NON-NLS-1$
}
public void testText7() throws IOException {
textParserTest("sample07.css"); //$NON-NLS-1$
}
public void testText8() throws IOException {
textParserTest("sample08.css"); //$NON-NLS-1$
}
private void textParserTest(String filename) throws IOException {
String source = createString(filename); //$NON-NLS-1$
CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_STYLESHEET, source);
String result = dumpRegions(parser.getTokenList());
compareResult(result, "CSSTextParserTest-" + filename); //$NON-NLS-1$
}
private String createString(String filename) throws FileNotFoundException, IOException {
return FileUtil.createString(FILES_DIR, filename);
}
private String dumpRegions(List tokens) {
StringBuffer buf = new StringBuffer();
Iterator i = tokens.iterator();
while (i.hasNext()) {
buf.append(dumpOneRegion((CSSTextToken) i.next()));
}
buf.append(FileUtil.commonEOL + "-------" + FileUtil.commonEOL); //$NON-NLS-1$
return buf.toString();
}
private String dumpOneRegion(CSSTextToken token) {
StringBuffer buf = new StringBuffer();
buf.append("["); //$NON-NLS-1$
buf.append(token.image);
buf.append("] "); //$NON-NLS-1$
buf.append(token.kind);
buf.append(" - "); //$NON-NLS-1$
buf.append(token.start);
buf.append(", "); //$NON-NLS-1$
buf.append(token.length);
buf.append(FileUtil.commonEOL); //$NON-NLS-1$
return buf.toString();
}
private boolean fDump = false;
private void compareResult(String actual, String filename) throws IOException {
if (fDump) {
FileUtil.dumpString(actual, RESULTS_DIR, filename);
}
else {
String result = FileUtil.createString(RESULTS_DIR, filename);
assertEquals(result, actual);
}
}
private static final String FILES_DIR = "src/org/eclipse/wst/css/core/tests/testfiles"; //$NON-NLS-1$
private static final String RESULTS_DIR = "src/org/eclipse/wst/css/core/tests/testfiles/results";
}