package com.opensymphony.module.sitemesh.multipass;
import com.opensymphony.module.sitemesh.DefaultSitemeshBuffer;
import com.opensymphony.module.sitemesh.Page;
import com.opensymphony.module.sitemesh.PageParser;
import com.opensymphony.module.sitemesh.multipass.DivExtractingPageParser;
import junit.framework.TestCase;
import java.io.IOException;
/**
* @author Joe Walnes
*/
public class DivExtractingPageParserTest extends TestCase {
public void testReplacesTopLevelDivsWithPlaceHolders() throws IOException {
String input = "" +
"<html>\n" +
" <head><title>Title</title></head>\n" +
" <body>\n" +
" <div id='one'>Hello</div>\n" +
" Blah\n" +
" <div id='two'>World<br><div id=inner>Great</div></div>\n" +
" <div>Bye</div>\n" +
" </body>\n" +
"</html>";
PageParser parser = new DivExtractingPageParser();
Page page = parser.parse(new DefaultSitemeshBuffer(input.toCharArray()));
String expectedBody = "" +
" <sitemesh:multipass id=\"div.one\"/>\n" +
" Blah\n" +
" <sitemesh:multipass id=\"div.two\"/>\n" +
" <div>Bye</div>\n";
assertEquals("Title", page.getTitle());
assertEquals(expectedBody.trim(), page.getBody().trim());
assertEquals("<div id='one'>Hello</div>", page.getProperty("div.one"));
assertEquals("<div id='two'>World<br><div id=inner>Great</div></div>", page.getProperty("div.two"));
}
}