@Test public void dontVisitUnknown() throws Exception { assertEquals(VisitStatus.BYPASS, getVisitStatusJs(elem("div"), null, true, false)); assertEquals(VisitStatus.BYPASS, getVisitStatusJs(elem("div"), null, true, true)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(elem("div"), null, false)); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(elem("div"), 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 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 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 dontVisitCssSeperatedByNonEmptyTextNode() 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.BYPASS, getVisitStatusCss(node, null)); }
@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 dontVisitCssWithoutAttribs() throws Exception { Node node = elem("link", "href", CSS1_URL_STR); seqNodes(node, css1); assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null)); }
@Test public void dontVisitTypeCssWrongRelAttributes() throws Exception { Node node = elem("link", "rel", "alternate", "type", "text/css", "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 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)); }