@Override protected DocumentFragment parseFragmentImpl(String source) throws GadgetException { try { MessageQueue mq = makeMessageQueue(); DomParser parser = getDomParser(source, mq); DocumentFragment fragment = parser.parseFragment(); if (mq.hasMessageAtLevel(MessageLevel.ERROR)) { StringBuilder err = new StringBuilder(); for (Message m : mq.getMessages()) { err.append(m.toString()).append('\n'); } throw new GadgetException(GadgetException.Code.HTML_PARSE_ERROR, err.toString(), HttpResponse.SC_BAD_REQUEST); } return fragment; } catch (ParseException e) { throw new GadgetException( GadgetException.Code.HTML_PARSE_ERROR, e.getCajaMessage().toString(), HttpResponse.SC_BAD_REQUEST); } }
private DomParser getDomParser(String source, final MessageQueue mq) throws ParseException { InputSource is = getInputSource(); HtmlLexer lexer = new HtmlLexer(CharProducer.Factory.fromString(source, is)); final Namespaces ns = Namespaces.HTML_DEFAULT; // Includes OpenSocial final boolean needsDebugData = needsDebugData(); DomParser parser = new DomParser(lexer, /* wantsComments */ true, is, ns, mq); parser.setDomImpl(documentFactory); parser.setNeedsDebugData(needsDebugData); return parser; } }
@Override protected Document parseDomImpl(String source) throws GadgetException { DocumentFragment fragment = parseFragmentImpl(source); } else { transferChildren(html, child); prependToNode(html, beforeHtml);
@Override protected GadgetHtmlParser makeParser() { return new CajaHtmlParser(new ParseModule.DOMImplementationProvider().get()); }
private void testImportsAndBackgroundUrlsInStyleTag(String html, String expected, String container) throws Exception { Document doc = htmlParser.parseDom(html); ContentRewriterFeature.Config config = injector.getInstance( ContentRewriterFeature.DefaultConfig.class); EasyMock.replay(); StyleTagProxyEmbeddedUrlsVisitor visitor = new StyleTagProxyEmbeddedUrlsVisitor( config, proxyUriManager, injector.getInstance(CssResponseRewriter.class)); Gadget gadget = DomWalker.makeGadget(new HttpRequest(Uri.parse("http://1.com/")).setContainer( container)); NodeList list = doc.getElementsByTagName("style"); visitor.revisit(gadget, ImmutableList.of(list.item(0))); EasyMock.verify(); assertEquals(StringUtils.deleteWhitespace(expected), StringUtils.deleteWhitespace(serializer.serialize(doc))); } }
@Override protected GadgetHtmlParser makeParser() { return new CajaHtmlParser(new ParseModule.DOMImplementationProvider().get()); }
private void testImportsAndBackgroundUrlsInStyleTag(String html, String expected, String container, Config config) throws Exception { // TODO: IMPORTANT! This test needs to not rely on the packaged shindig config, but rather // mock the config with expected values, so that tests do not fail when people set // alternative defaults. Document doc = htmlParser.parseDom(html); StyleTagProxyEmbeddedUrlsVisitor visitor = new StyleTagProxyEmbeddedUrlsVisitor( config, proxyUriManager, injector.getInstance(CssResponseRewriter.class)); Gadget gadget = DomWalker.makeGadget(new HttpRequest(Uri.parse("http://1.com/")).setContainer( container)); NodeList list = doc.getElementsByTagName("style"); visitor.revisit(gadget, ImmutableList.of(list.item(0))); EasyMock.verify(); assertEquals(StringUtils.deleteWhitespace(expected), StringUtils.deleteWhitespace(serializer.serialize(doc))); } }
@Override protected Document parseDomImpl(String source) throws GadgetException { DocumentFragment fragment = parseFragmentImpl(source); } else { transferChildren(html, child); prependToNode(html, beforeHtml);
@Override protected GadgetHtmlParser makeParser() { return new CajaHtmlParser(new ParseModule.DOMImplementationProvider().get()); }
private DomParser getDomParser(String source, final MessageQueue mq) throws ParseException { InputSource is = getInputSource(); HtmlLexer lexer = new HtmlLexer(CharProducer.Factory.fromString(source, is)); final Namespaces ns = Namespaces.HTML_DEFAULT; // Includes OpenSocial final boolean needsDebugData = needsDebugData(); DomParser parser = new DomParser(lexer, /* wantsComments */ true, is, ns, mq); parser.setDomImpl(documentFactory); parser.setNeedsDebugData(needsDebugData); return parser; } }
throws GadgetException { try { MessageQueue mq = makeMessageQueue(); DomParser parser = getDomParser(source + '\n', mq); DocumentFragment fragment = parser.parseFragment();
private void testImportsAndBackgroundUrlsInStyleTag(String html, String expected, String container, Config config) throws Exception { // TODO: IMPORTANT! This test needs to not rely on the packaged shindig config, but rather // mock the config with expected values, so that tests do not fail when people set // alternative defaults. Document doc = htmlParser.parseDom(html); StyleTagProxyEmbeddedUrlsVisitor visitor = new StyleTagProxyEmbeddedUrlsVisitor( config, proxyUriManager, injector.getInstance(CssResponseRewriter.class)); Gadget gadget = DomWalker.makeGadget(new HttpRequest(Uri.parse("http://1.com/")).setContainer( container)); NodeList list = doc.getElementsByTagName("style"); visitor.revisit(gadget, ImmutableList.of(list.item(0))); EasyMock.verify(); assertEquals(StringUtils.deleteWhitespace(expected), StringUtils.deleteWhitespace(serializer.serialize(doc))); } }
@Override protected Document parseDomImpl(String source) throws GadgetException { DocumentFragment fragment = parseFragmentImpl(source); } else { transferChildren(html, child); prependToNode(html, beforeHtml);
@Override protected GadgetHtmlParser makeParser() { return new CajaHtmlParser(new ParseModule.DOMImplementationProvider().get()); }
private DomParser getDomParser(String source, final MessageQueue mq) throws ParseException { InputSource is = getInputSource(); HtmlLexer lexer = new HtmlLexer(CharProducer.Factory.fromString(source, is)); TokenQueue<HtmlTokenType> tokenQueue = new TokenQueue<HtmlTokenType>(lexer, is); final Namespaces ns = Namespaces.HTML_DEFAULT; // Includes OpenSocial final boolean needsDebugData = needsDebugData(); // OpenSocial Tempates need to be parsed as XML since tags can be self-closing. final boolean asXml = (source.startsWith(OSML_DATA_START) || source.startsWith(OSML_TEMPLATE_START)); DomParser parser = new DomParser(tokenQueue, asXml, mq); parser.setDomImpl(documentFactory); parser.setNeedsDebugData(needsDebugData); return parser; } }
throws GadgetException { try { MessageQueue mq = makeMessageQueue(); DomParser parser = getDomParser(source + '\n', mq); DocumentFragment fragment = parser.parseFragment();
@Override protected GadgetHtmlParser makeParser() { return new CajaHtmlParser(new ParseModule.DOMImplementationProvider().get()); }
@Override protected GadgetHtmlParser makeParser() { return new CajaHtmlParser(new ParseModule.DOMImplementationProvider().get()); }
@Override protected GadgetHtmlParser makeParser() { return new CajaHtmlParser(new ParseModule.DOMImplementationProvider().get()); }
@Override protected GadgetHtmlParser makeParser() { return new CajaHtmlParser(new ParseModule.DOMImplementationProvider().get()); }