package test.parser.svg.parsers;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import java.text.ParseException;
import net.sf.latexdraw.parsers.svg.parsers.CSSStyleHandler;
import net.sf.latexdraw.parsers.svg.parsers.CSSStyleParser;
import org.junit.Before;
import org.junit.Test;
import test.parser.TestCodeParser;
public class TestCSSStyleParser extends TestCodeParser implements CSSStyleHandler {
protected String name;
protected String value;
@Before
public void setUp() {
parser = new CSSStyleParser("", this); //$NON-NLS-1$
parser2 = new CSSStyleParser("", this); //$NON-NLS-1$
}
@Test
@Override
public void testParse() throws ParseException {
name = null;
value = null;
parser.setCode(""); //$NON-NLS-1$
parser.parse();
assertNull(name);
assertNull(value);
name = null;
value = null;
parser.setCode("\t \n/**/ \n\r \t /* fldijfsd */ \n"); //$NON-NLS-1$
parser.parse();
assertNull(name);
assertNull(value);
parser.setCode("stroke\t \n/**/ :\n\r \t red/* fldijfsd */ \n"); //$NON-NLS-1$
parser.parse();
assertEquals(name, "stroke"); //$NON-NLS-1$
assertEquals(value, "red"); //$NON-NLS-1$
parser.setCode("stroke\t \n/**/ :\n\r \t red/* fldijfsd */ ;\nstroke-width : 2cm"); //$NON-NLS-1$
parser.parse();
assertEquals(name, "stroke-width"); //$NON-NLS-1$
assertEquals(value, "2cm"); //$NON-NLS-1$
}
@Test
@Override
public void testSkipComment() throws ParseException {
parser.setCode("fill:/*test*/green"); //$NON-NLS-1$
parser.parse();
assertEquals(name, "fill"); //$NON-NLS-1$
assertEquals(value, "green"); //$NON-NLS-1$
parser.setCode(" /* fksduh fdssd \n \t fdsf d */ stroke : blue"); //$NON-NLS-1$
parser.parse();
assertEquals(name, "stroke"); //$NON-NLS-1$
assertEquals(value, "blue"); //$NON-NLS-1$
parser.setCode("fill:green /* fkdhf fss */ "); //$NON-NLS-1$
parser.parse();
assertEquals(name, "fill"); //$NON-NLS-1$
assertEquals(value, "green"); //$NON-NLS-1$
parser.setCode("stroke: /**/ blue "); //$NON-NLS-1$
parser.parse();
assertEquals(name, "stroke"); //$NON-NLS-1$
assertEquals(value, "blue"); //$NON-NLS-1$
parser.setCode("stroke:/**/blue;"); //$NON-NLS-1$
parser.parse();
assertEquals(name, "stroke"); //$NON-NLS-1$
assertEquals(value, "blue"); //$NON-NLS-1$
parser.setCode("fill:green /* fkdhf fss */;/*f*/stroke/*fds fsd*/:/**/blue/*fgdds */"); //$NON-NLS-1$
parser.parse();
assertEquals(name, "stroke"); //$NON-NLS-1$
assertEquals(value, "blue"); //$NON-NLS-1$
}
@Test
@Override
public void testSkipWSP() throws ParseException {
parser.setCode("fill:green ;stroke:blue"); //$NON-NLS-1$
parser.parse();
assertEquals(name, "stroke"); //$NON-NLS-1$
assertEquals(value, "blue"); //$NON-NLS-1$
parser.setCode(" \n \t \r stroke\t\n \r: \r \t\n blue \r\t \n \t ;\t\t\n\r fill\t\r :\n green \r \t "); //$NON-NLS-1$
parser.parse();
assertEquals(name, "fill"); //$NON-NLS-1$
assertEquals(value, "green"); //$NON-NLS-1$
}
@Override
public void onCSSStyle(String n, String v) {
name = n;
value = v;
}
}