/******************************************************************************* * 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"; }