@Test public void reserveRootPrecludesAllElse() throws Exception { Gadget gadget = gadget(); // Visitor1 reserves root, visitor2 never gets anything. DomWalker.Visitor visitor1 = createMock(DomWalker.Visitor.class); expect(visitor1.visit(gadget, root)) .andReturn(DomWalker.Visitor.VisitStatus.RESERVE_TREE).once(); List<Node> allReserved = Lists.newArrayList(root); expect(visitor1.revisit(gadget, allReserved)) .andReturn(true).once(); DomWalker.Visitor visitor2 = createMock(DomWalker.Visitor.class); replay(visitor1, visitor2); MutableContent mc = getContent(1); // Mutated once by revisit. DomWalker.Rewriter rewriter = getRewriter(visitor1, visitor2); rewriter.rewrite(gadget, mc); // Verifying mutations on MutableContent completes the test. verify(mc); }
@Test public void reserveRootPrecludesAllElse() throws Exception { Gadget gadget = gadget(); // Visitor1 reserves root, visitor2 never gets anything. DomWalker.Visitor visitor1 = createMock(DomWalker.Visitor.class); expect(visitor1.visit(gadget, root)) .andReturn(DomWalker.Visitor.VisitStatus.RESERVE_TREE).once(); List<Node> allReserved = Lists.newArrayList(root); expect(visitor1.revisit(gadget, allReserved)) .andReturn(true).once(); DomWalker.Visitor visitor2 = createMock(DomWalker.Visitor.class); replay(visitor1, visitor2); MutableContent mc = getContent(1); // Mutated once by revisit. DomWalker.Rewriter rewriter = getRewriter(visitor1, visitor2); rewriter.rewrite(gadget, mc); // Verifying mutations on MutableContent completes the test. verify(mc); }
@Test public void reserveRootPrecludesAllElse() throws Exception { Gadget gadget = gadget(); // Visitor1 reserves root, visitor2 never gets anything. DomWalker.Visitor visitor1 = createMock(DomWalker.Visitor.class); expect(visitor1.visit(gadget, root)) .andReturn(DomWalker.Visitor.VisitStatus.RESERVE_TREE).once(); List<Node> allReserved = Lists.newArrayList(root); expect(visitor1.revisit(gadget, allReserved)) .andReturn(true).once(); DomWalker.Visitor visitor2 = createMock(DomWalker.Visitor.class); replay(visitor1, visitor2); MutableContent mc = getContent(1); // Mutated once by revisit. DomWalker.Rewriter rewriter = getRewriter(visitor1, visitor2); rewriter.rewrite(gadget, mc); // Verifying mutations on MutableContent completes the test. verify(mc); }
@Test public void allBypassDoesNothing() throws Exception { Gadget gadget = gadget(); // Visitor always bypasses nodes, never gets called with revisit(), // but visits every node in the document. DomWalker.Visitor visitor = createMock(DomWalker.Visitor.class); expect(visitor.visit(gadget, root)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); expect(visitor.visit(gadget, child1)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); expect(visitor.visit(gadget, child2)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); expect(visitor.visit(gadget, subchild1)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); expect(visitor.visit(gadget, text1)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); expect(visitor.visit(gadget, text2)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); replay(visitor); MutableContent mc = getContent(0); DomWalker.Rewriter rewriter = getRewriter(visitor); rewriter.rewrite(gadget, mc); // Verifying mutations on MutableContent completes the test. verify(mc); }
@Test public void allBypassDoesNothing() throws Exception { Gadget gadget = gadget(); // Visitor always bypasses nodes, never gets called with revisit(), // but visits every node in the document. DomWalker.Visitor visitor = createMock(DomWalker.Visitor.class); expect(visitor.visit(gadget, root)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); expect(visitor.visit(gadget, child1)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); expect(visitor.visit(gadget, child2)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); expect(visitor.visit(gadget, subchild1)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); expect(visitor.visit(gadget, text1)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); expect(visitor.visit(gadget, text2)) .andReturn(DomWalker.Visitor.VisitStatus.BYPASS).once(); replay(visitor); MutableContent mc = getContent(0); DomWalker.Rewriter rewriter = getRewriter(visitor); rewriter.rewrite(gadget, mc); // Verifying mutations on MutableContent completes the test. verify(mc); }
@Test public void allMutateMutatesEveryTime() throws Exception { Gadget gadget = gadget(); // Visitor mutates every node it sees immediately and inline. DomWalker.Visitor visitor = createMock(DomWalker.Visitor.class); expect(visitor.visit(gadget, root)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, child1)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, child2)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, subchild1)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, text1)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, text2)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); replay(visitor); MutableContent mc = getContent(6); DomWalker.Rewriter rewriter = getRewriter(visitor); rewriter.rewrite(gadget, mc); // Verifying mutations on MutableContent completes the test. verify(mc); }
@Test public void allMutateMutatesEveryTime() throws Exception { Gadget gadget = gadget(); // Visitor mutates every node it sees immediately and inline. DomWalker.Visitor visitor = createMock(DomWalker.Visitor.class); expect(visitor.visit(gadget, root)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, child1)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, child2)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, subchild1)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, text1)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, text2)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); replay(visitor); MutableContent mc = getContent(6); DomWalker.Rewriter rewriter = getRewriter(visitor); rewriter.rewrite(gadget, mc); // Verifying mutations on MutableContent completes the test. verify(mc); }
@Test public void allMutateMutatesEveryTime() throws Exception { Gadget gadget = gadget(); // Visitor mutates every node it sees immediately and inline. DomWalker.Visitor visitor = createMock(DomWalker.Visitor.class); expect(visitor.visit(gadget, root)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, child1)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, child2)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, subchild1)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, text1)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); expect(visitor.visit(gadget, text2)) .andReturn(DomWalker.Visitor.VisitStatus.MODIFY).once(); replay(visitor); MutableContent mc = getContent(6); DomWalker.Rewriter rewriter = getRewriter(visitor); rewriter.rewrite(gadget, mc); // Verifying mutations on MutableContent completes the test. verify(mc); }
@Test public void rewriteThrowsRewritingExceptionIfGetDocumentIsNull() throws Exception { DomWalker.Visitor visitor1 = createMock(DomWalker.Visitor.class); DomWalker.Rewriter rewriter = getRewriter(visitor1); MutableContent mc = createMock(MutableContent.class); expect(mc.getDocument()).andReturn(null); expect(mc.getContent()).andReturn("hello!"); replay(mc); Gadget gadget = gadget(); boolean exceptionCaught = false; try { rewriter.rewrite(gadget, mc); } catch (RewritingException e) { assertEquals(e.getHttpStatusCode(), HttpServletResponse.SC_INTERNAL_SERVER_ERROR); exceptionCaught = true; } assertTrue(exceptionCaught); }
@Test public void rewriteThrowsRewritingExceptionIfGetDocumentIsNull() throws Exception { DomWalker.Visitor visitor1 = createMock(DomWalker.Visitor.class); DomWalker.Rewriter rewriter = getRewriter(visitor1); MutableContent mc = createMock(MutableContent.class); expect(mc.getDocument()).andReturn(null); expect(mc.getContent()).andReturn("hello!"); replay(mc); Gadget gadget = gadget(); boolean exceptionCaught = false; try { rewriter.rewrite(gadget, mc); } catch (RewritingException e) { assertEquals(e.getHttpStatusCode(), HttpServletResponse.SC_INTERNAL_SERVER_ERROR); exceptionCaught = true; } assertTrue(exceptionCaught); }
@Test public void rewriteThrowsRewritingExceptionIfGetDocumentIsNull() throws Exception { DomWalker.Visitor visitor1 = createMock(DomWalker.Visitor.class); DomWalker.Rewriter rewriter = getRewriter(visitor1); MutableContent mc = createMock(MutableContent.class); expect(mc.getDocument()).andReturn(null); expect(mc.getContent()).andReturn("hello!"); replay(mc); Gadget gadget = gadget(); boolean exceptionCaught = false; try { rewriter.rewrite(gadget, mc); } catch (RewritingException e) { assertEquals(e.getHttpStatusCode(), HttpServletResponse.SC_INTERNAL_SERVER_ERROR); exceptionCaught = true; } assertTrue(exceptionCaught); }
@Override public void rewrite(Gadget gadget, MutableContent content) throws RewritingException { if (gadget.sanitizeOutput()) { boolean sanitized = false; try { super.rewrite(gadget, content); sanitized = true; } finally { // Defensively clean the content in case of failure if (!sanitized) { content.setContent(""); } } } }
@Override public void rewrite(Gadget gadget, MutableContent content) throws RewritingException { if (gadget.sanitizeOutput()) { boolean sanitized = false; try { super.rewrite(gadget, content); sanitized = true; } finally { // Defensively clean the content in case of failure if (!sanitized) { content.setContent(""); } } } }
@Override public void rewrite(Gadget gadget, MutableContent content) throws RewritingException { if (gadget.sanitizeOutput()) { boolean sanitized = false; try { super.rewrite(gadget, content); sanitized = true; } finally { // Defensively clean the content in case of failure if (!sanitized) { content.setContent(""); } } } }
/** * Performs the DomWalker rewrite operation described in class javadoc. */ public void rewrite(Gadget gadget, MutableContent content) throws RewritingException { rewrite(makeVisitors(gadget, gadget.getSpec().getUrl()), gadget, content); }
public void rewrite(HttpRequest request, HttpResponseBuilder builder) throws RewritingException { if (RewriterUtils.isHtml(request, builder)) { Gadget context = makeGadget(request); rewrite(makeVisitors(context, request.getGadget()), context, builder); } }
public void rewrite(HttpRequest request, HttpResponseBuilder builder, Gadget gadget) throws RewritingException { if (RewriterUtils.isHtml(request, builder)) { if(gadget == null) { gadget = makeGadget(request); } rewrite(makeVisitors(gadget, request.getGadget()), gadget, builder); } }
/** * Performs the DomWalker rewrite operation described in class javadoc. */ public void rewrite(Gadget gadget, MutableContent content) throws RewritingException { rewrite(makeVisitors(gadget, gadget.getSpec().getUrl()), gadget, content); }
/** * Performs the DomWalker rewrite operation described in class javadoc. */ public void rewrite(Gadget gadget, MutableContent content) throws RewritingException { rewrite(makeVisitors(gadget, gadget.getSpec().getUrl()), gadget, content); }
public void rewrite(HttpRequest request, HttpResponseBuilder builder) throws RewritingException { if (RewriterUtils.isHtml(request, builder)) { Gadget context = makeGadget(request); rewrite(makeVisitors(context, request.getGadget()), context, builder); } }