package de.neuland.jade4j.parser;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
import org.junit.Ignore;
import org.junit.Test;
import de.neuland.jade4j.parser.node.BlockNode;
import de.neuland.jade4j.parser.node.Node;
import de.neuland.jade4j.parser.node.TagNode;
@Ignore("Attribute Handling Changed, This is not working anymore")
public class CssClassAndIdParserTest extends ParserTest {
private Node tag1;
private Node tag2;
private Node tag3;
private Node block;
@Test
public void shouldReturnABlockWithTokens2() {
loadInParser("css_class_and_id.jade");
block = (BlockNode) root;
assertThat(block.getNodes(), notNullValue());
// .myclass
tag1 = block.pollNode();
assertThat(((TagNode) tag1).getAttribute("class"), equalTo("myclass"));
assertThat(block.hasNodes(), equalTo(true));
// #myid.c1.c2.c3
tag2 = block.pollNode();
assertThat(((TagNode) tag2).getAttribute("id"), equalTo("myid"));
assertThat(((TagNode) tag2).getAttribute("class"), equalTo("c1 c2 c3"));
assertThat(block.hasNodes(), equalTo(false));
// .c1.c2.c3
// #myid
block = ((TagNode) tag1).getBlock();
tag3 = block.pollNode();
assertThat(((TagNode) tag3).getAttribute("class"), equalTo("c1 c2 c3"));
assertThat(block.hasNodes(), equalTo(true));
tag3 = block.pollNode();
assertThat(((TagNode) tag3).getAttribute("id"), equalTo("myid"));
assertThat(block.hasNodes(), equalTo(false));
// div#id1
block = ((TagNode) tag2).getBlock();
tag1 = block.pollNode();
assertThat(((TagNode) tag1).getAttribute("id"), equalTo("id1"));
assertThat(block.hasNodes(), equalTo(false));
// span#id2.c1.c2.c3.c4
block = ((TagNode) tag1).getBlock();
tag1 = block.pollNode();
assertThat(((TagNode) tag1).getValue(), equalTo("span"));
assertThat(((TagNode) tag1).getAttribute("id"), equalTo("id2"));
assertThat(((TagNode) tag1).getAttribute("class"), equalTo("c1 c2 c3 c4"));
assertThat(block.hasNodes(), equalTo(false));
}
}