From 1a333fbd354df09daa73535b0ca3e0736babde1e Mon Sep 17 00:00:00 2001 From: Adam Miller Date: Fri, 16 Mar 2012 14:36:15 -0700 Subject: [PATCH] HER-1998 - ExtractorHTML modified to parse html inside conditional comments. Still ignores normal comments --- .../modules/extractor/ExtractorHTML.java | 2 +- .../modules/extractor/ExtractorHTMLTest.java | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/modules/src/main/java/org/archive/modules/extractor/ExtractorHTML.java b/modules/src/main/java/org/archive/modules/extractor/ExtractorHTML.java index 9122cf18..d0b339c4 100644 --- a/modules/src/main/java/org/archive/modules/extractor/ExtractorHTML.java +++ b/modules/src/main/java/org/archive/modules/extractor/ExtractorHTML.java @@ -114,7 +114,7 @@ public class ExtractorHTML extends ContentExtractor implements InitializingBean "(?is)<(?:((script[^>]*+)>.*?]*+)>.*?]*+)" + // 5, 6, 7 - "|(!--.*?--))>"; // 8 + "|(!--(?!\\[if).*?--))>"; // 8 // version w/ problems with unclosed script tags // static final String RELEVANT_TAG_EXTRACTOR = diff --git a/modules/src/test/java/org/archive/modules/extractor/ExtractorHTMLTest.java b/modules/src/test/java/org/archive/modules/extractor/ExtractorHTMLTest.java index fae65d52..5fc684e8 100644 --- a/modules/src/test/java/org/archive/modules/extractor/ExtractorHTMLTest.java +++ b/modules/src/test/java/org/archive/modules/extractor/ExtractorHTMLTest.java @@ -66,6 +66,7 @@ public class ExtractorHTMLTest extends StringExtractorTestBase { " IMG", "http://www.archive.org/start/foo.gif", + }; @@ -379,5 +380,32 @@ public class ExtractorHTMLTest extends StringExtractorTestBase { assertTrue("outlinks should contain: "+expected, CollectionUtils.exists(curi.getOutLinks(),destinationsIsPredicate(expected))); } + + /** + * HER-1998 + * @throws URIException + */ + public void testConditionalComment1() throws URIException { + CrawlURI curi = new CrawlURI(UURIFactory.getInstance("http://www.example.com/")); + + CharSequence cs = + "" + + ""; + + ExtractorHTML extractor = (ExtractorHTML)makeExtractor(); + extractor.extract(curi, cs); + + Link[] links = curi.getOutLinks().toArray(new Link[0]); + Arrays.sort(links); + + String dest1 = "http://www.example.com/foo.gif"; + String dest2 = "http://www.example.com/foo.js"; + + assertEquals("outlink1 from conditional comment img src",dest1, + links[0].getDestination().toString()); + assertEquals("outlink2 from conditional comment script src",dest2, + links[1].getDestination().toString()); + + } }