@Test public void dontVisitCssSeperatedByConditionalComment() throws Exception { Node commentNode = doc.createComment("[if IE]"); Node node = elem("link", "type", "text/css", "rel", "stylesheet", "href", CSS1_URL_STR); seqNodes(node, commentNode, css1); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false)); }
@Test public void visitCssSeperatedByConditionalCommentWhenSingleResourceConcatEnabled() throws Exception { Node commentNode = doc.createComment("[if IE]"); Node node = elem("link", "type", "text/css", "rel", "stylesheet", "href", CSS1_URL_STR); seqNodes(node, commentNode, css1); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null, true)); }
@Test public void dontVisitCssSeperatedByConditionalComment() throws Exception { Node commentNode = doc.createComment("[if IE]"); Node node = elem("link", "type", "text/css", "rel", "stylesheet", "href", CSS1_URL_STR); seqNodes(node, commentNode, css1); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false)); }
@Test public void visitValidCss() throws Exception { Node textNode = doc.createTextNode(""); Node node = elem("link", "type", "text/css", "rel", "stylesheet", "href", CSS1_URL_STR); seqNodes(node, textNode, css1); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null)); }
@Test public void dontVisitCssWithoutAttribs() throws Exception { Node node = elem("link", "href", CSS1_URL_STR); seqNodes(node, css1); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null)); }
@Test public void visitCssSeperatedByTextNode() throws Exception { Node textNode = doc.createTextNode("Data\n"); Node node = elem("link", "type", "text/css", "rel", "stylesheet", "href", CSS1_URL_STR); seqNodes(node, textNode, css1); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null, true)); }
@Test public void dontVisitCssWithoutRelAttrib() throws Exception { Node node = elem("link", "type", "text/css", "href", CSS1_URL_STR); seqNodes(node, css1); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, true)); }
@Test public void dontVisitCssWithoutAttribs() throws Exception { Node node = elem("link", "href", CSS1_URL_STR); seqNodes(node, css1); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, true)); }
@Test public void dontVisitCssWithoutTypeAttribAsCss() throws Exception { Node node = elem("link", "rel", "stylesheet", "href", CSS1_URL_STR); seqNodes(node, css1); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, true)); }
@Test public void dontVisitCssWithoutAttribs() throws Exception { Node node = elem("link", "href", CSS1_URL_STR); seqNodes(node, css1); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, true)); }
@Test public void visitContigJs() throws Exception { seqNodes(js1, js2, js3); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js2, null, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js3, null, false)); }
@Test public void visitContigCss() throws Exception { seqNodes(css1, css2, css3); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(css1, null, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(css2, null, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(css3, null, false)); }
@Test public void visitSplitJsContiguous() throws Exception { seqNodes(js1, js2, js3); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, true, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js2, null, true, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js3, null, true, false)); }
@Test public void visitContigJs() throws Exception { seqNodes(js1, js2, js3); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, false, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js2, null, false, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js3, null, false, false)); }
@Test public void visitCssButNotMiddleWhenNotRewritable() throws Exception { ContentRewriterFeature.Config config = config(".*two.*", true, true); seqNodes(css1, css2, css3); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(config, css1)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(config, css2)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(config, css3)); }
@Test public void dontVisitContigCssMiddleNotRewritable() throws Exception { ContentRewriterFeature.Config config = config(".*two.*", true, false); seqNodes(css1, css2, css3); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(config, css1)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(config, css2)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(config, css3)); }
@Test public void dontVisitContigCssMiddleNotRewritable() throws Exception { ContentRewriterFeature.Config config = config(".*two.*", true, false); seqNodes(css1, css2, css3); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(config, css1)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(config, css2)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(config, css3)); }
@Test public void visitSplitJsSeparated() throws Exception { seqNodes(js1, elem("span"), js2, elem("div"), js3); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, true, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js2, null, true, false)); assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js3, null, true, false)); }
@Test public void dontVisitSeparatedJsNotSplit() throws Exception { ContentRewriterFeature.Config config = config(null, false, false); Node sep1 = elem("div"); Node sep2 = elem("span"); seqNodes(js1, sep1, js2, sep2, js3); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, js1)); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, sep1)); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, js2)); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, sep2)); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, js3)); }
@Test public void dontVisitSeparatedJsNotSplit() throws Exception { ContentRewriterFeature.Config config = config(null, false, false); Node sep1 = elem("div"); Node sep2 = elem("span"); seqNodes(js1, sep1, js2, sep2, js3); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, js1)); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, sep1)); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, js2)); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, sep2)); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, js3)); }