[DOXIA-616] Fix site integration tests

* Fix integration tests for **doxia-formats** wrt fenced code blocks
* Remove Doxia-specific integration tests
* Add integration tests on the various document formats
* Add integration tests on macro processing

Closes #34
diff --git a/src/it/projects/doxia-formats/src/main/java/org/apache/maven/plugins/site/it/CustomVelocityTool.java b/src/it/projects/doxia-formats/src/main/java/org/apache/maven/plugins/site/it/CustomVelocityTool.java
index ccb5e48..2e0dbec 100644
--- a/src/it/projects/doxia-formats/src/main/java/org/apache/maven/plugins/site/it/CustomVelocityTool.java
+++ b/src/it/projects/doxia-formats/src/main/java/org/apache/maven/plugins/site/it/CustomVelocityTool.java
@@ -21,6 +21,7 @@
 
 import org.apache.velocity.tools.config.DefaultKey;
 
+// START SNIPPET: macros
 @DefaultKey("custom")
 public class CustomVelocityTool
 {
@@ -28,4 +29,5 @@
     {
         return "ok";
     }
-}
\ No newline at end of file
+}
+// END SNIPPET: macros
diff --git a/src/it/projects/doxia-formats/src/site/apt/apt-macro.apt b/src/it/projects/doxia-formats/src/site/apt/apt-macro.apt
index 1424ecd..e31f8c1 100644
--- a/src/it/projects/doxia-formats/src/site/apt/apt-macro.apt
+++ b/src/it/projects/doxia-formats/src/site/apt/apt-macro.apt
@@ -28,7 +28,6 @@
 
 Macros in APT
 
-~~ START SNIPPET: macros
 * TOC Macro
 
 %{toc}
@@ -39,5 +38,6 @@
 
 * Snippet Macro
 
-%{snippet|id=macros|file=src/site/apt/apt-macro.apt}
-~~ END SNIPPET: macros
+%{snippet|id=macros|file=src/main/java/org/apache/maven/plugins/site/it/CustomVelocityTool.java}
+
+Content for verify.groovy
diff --git a/src/it/projects/doxia-formats/src/site/apt/index.apt b/src/it/projects/doxia-formats/src/site/apt/index.apt
index eefc226..ab679c8 100644
--- a/src/it/projects/doxia-formats/src/site/apt/index.apt
+++ b/src/it/projects/doxia-formats/src/site/apt/index.apt
@@ -69,4 +69,6 @@
 Java version: 1.8.0_232, vendor: AdoptOpenJDK, runtime: C:\Program Files\AdoptOpenJDK\jdk-8.0.232.09-hotspot\jre
 Default locale: en_US, platform encoding: Cp1250
 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
-+--------+
\ No newline at end of file
++--------+
+
+Content for verify.groovy
diff --git a/src/it/projects/doxia-formats/src/site/apt/velocity-context.apt.vm b/src/it/projects/doxia-formats/src/site/apt/velocity-context.apt.vm
index 5d07fed..122a931 100644
--- a/src/it/projects/doxia-formats/src/site/apt/velocity-context.apt.vm
+++ b/src/it/projects/doxia-formats/src/site/apt/velocity-context.apt.vm
@@ -37,7 +37,7 @@
 *-----------------------+-------------------------------------------------------+-----+
 #foreach( $key in $sorter.sort( $context.keys ) )
 #set( $value = $context.get($key) )
-| <<<$key>>>            | <<<#if ($value)$value.class.name#else?#end>>> | #if ($key != "decoration")<<<$value>>>#end |  
+| <<<$key>>>            | <<<#if ($value)$value.class.name#else?#end>>> | #if ($key != "decoration")<<<$value>>>#end |
 *-----------------------+-------------------------------------------------------+-----+
 #end
 
@@ -150,3 +150,5 @@
  <<<custom>>> = <<<$custom>>>
 
  <<<custom.test()>>> = <<<$custom.test()>>>
+
+Content for verify.groovy
diff --git a/src/it/projects/doxia-formats/src/site/apt/velocity-include-parse.apt.vm b/src/it/projects/doxia-formats/src/site/apt/velocity-include-parse.apt.vm
index e2f9076..29816fa 100644
--- a/src/it/projects/doxia-formats/src/site/apt/velocity-include-parse.apt.vm
+++ b/src/it/projects/doxia-formats/src/site/apt/velocity-include-parse.apt.vm
@@ -41,3 +41,5 @@
 +---------------+
 #include( "../../../pom.xml" )
 +---------------+
+
+Content for verify.groovy
diff --git a/src/it/projects/doxia-formats/src/site/confluence/confluence.confluence b/src/it/projects/doxia-formats/src/site/confluence/confluence.confluence
index d3ba5ec..89c3f06 100644
--- a/src/it/projects/doxia-formats/src/site/confluence/confluence.confluence
+++ b/src/it/projects/doxia-formats/src/site/confluence/confluence.confluence
@@ -31,3 +31,5 @@
 ** Other
 
 Example from [https://confluence.atlassian.com/display/CONF25/Confluence+Notation+Guide+Overview]
+
+Content for verify.groovy
diff --git a/src/it/projects/doxia-formats/src/site/docbook/docbook.xml b/src/it/projects/doxia-formats/src/site/docbook/docbook.xml
index 43c7b1c..a5d77f2 100644
--- a/src/it/projects/doxia-formats/src/site/docbook/docbook.xml
+++ b/src/it/projects/doxia-formats/src/site/docbook/docbook.xml
@@ -50,7 +50,7 @@
 
   <sect1><title>Section 2</title>
     <para>
-      blah blah blah
+      Content for verify.groovy
     </para>
   </sect1>
 </article>
diff --git a/src/it/projects/doxia-formats/src/site/fml/faq-macro.fml b/src/it/projects/doxia-formats/src/site/fml/faq-macro.fml
index 6c23728..b872133 100644
--- a/src/it/projects/doxia-formats/src/site/fml/faq-macro.fml
+++ b/src/it/projects/doxia-formats/src/site/fml/faq-macro.fml
@@ -25,7 +25,6 @@
   <part id="Macros in FML">
     <title>Macros in FML</title>
 
-    <!-- START SNIPPET: macros -->
     <faq id="TOC">
       <question>Is TOC Macro supported?</question>
       <answer>
@@ -49,12 +48,11 @@
       <answer>
         <macro name="snippet">
           <param name="id" value="macros"/>
-          <param name="file" value="src/site/fml/faq-macro.fml"/>
+          <param name="file" value="src/main/java/org/apache/maven/plugins/site/it/CustomVelocityTool.java" />
         </macro>
+        <p>Content for verify.groovy</p>
       </answer>
     </faq>
-    <!-- END SNIPPET: macros -->
   </part>
 
 </faqs>
-
diff --git a/src/it/projects/doxia-formats/src/site/fml/faq.fml b/src/it/projects/doxia-formats/src/site/fml/faq.fml
index de6bb49..8eefc97 100644
--- a/src/it/projects/doxia-formats/src/site/fml/faq.fml
+++ b/src/it/projects/doxia-formats/src/site/fml/faq.fml
@@ -50,10 +50,10 @@
           Test nested <code>&lt;source&gt;&lt;/source&gt;</code> tags (DOXIA-16):
         </p>
         <source><![CDATA[<source>1.5</source>]]></source>
+        <p>Content for verify.groovy</p>
       </answer>
     </faq>
 
   </part>
 
 </faqs>
-
diff --git a/src/it/projects/doxia-formats/src/site/markdown/markdown-macro.md b/src/it/projects/doxia-formats/src/site/markdown/markdown-macro.md
index 561cd46..20c12a7 100644
--- a/src/it/projects/doxia-formats/src/site/markdown/markdown-macro.md
+++ b/src/it/projects/doxia-formats/src/site/markdown/markdown-macro.md
@@ -20,7 +20,6 @@
 Macros in Markdown
 ----------------
 
-<!-- START SNIPPET: macros -->
 ### TOC Macro
 
 <!-- MACRO{toc} -->
@@ -31,5 +30,6 @@
 
 ### Snippet Macro
 
-<!-- MACRO{snippet|id=macros|file=src/site/markdown/markdown-macro.md} -->
-<!-- END SNIPPET: macros -->
+<!-- MACRO{snippet|id=macros|file=src/main/java/org/apache/maven/plugins/site/it/CustomVelocityTool.java} -->
+
+Content for verify.groovy
diff --git a/src/it/projects/doxia-formats/src/site/markdown/markdown.md b/src/it/projects/doxia-formats/src/site/markdown/markdown.md
index a40978c..21c9d60 100644
--- a/src/it/projects/doxia-formats/src/site/markdown/markdown.md
+++ b/src/it/projects/doxia-formats/src/site/markdown/markdown.md
@@ -17,26 +17,14 @@
 under the License.
 -->
 
-
 Markdown Format works
----------------
-
-But 'quotes' and "double quotes" were stripped from HTML result with DOXIA 1.3:
-see [DOXIA-473](https://issues.apache.org/jira/browse/DOXIA-473).
+=====================
 
 <!-- MACRO{toc|fromDepth=1|toDepth=2} -->
 
-### Subsection
+Subsection
+----------
 
-Missing `monospaced` support [DOXIA-597](https://issues.apache.org/jira/browse/DOXIA-597)
+This is a subsection.
 
-Missing code block color [DOXIA-571](https://issues.apache.org/jira/browse/DOXIA-571):
-
-```
-code block
-Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
-Maven home: D:\apache-maven-3.6.3\apache-maven\bin\..
-Java version: 1.8.0_232, vendor: AdoptOpenJDK, runtime: C:\Program Files\AdoptOpenJDK\jdk-8.0.232.09-hotspot\jre
-Default locale: en_US, platform encoding: Cp1250
-OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
-```
+Content for verify.groovy
diff --git a/src/it/projects/doxia-formats/src/site/markdown/markdown2-macro.markdown b/src/it/projects/doxia-formats/src/site/markdown/markdown2-macro.markdown
deleted file mode 100644
index 561cd46..0000000
--- a/src/it/projects/doxia-formats/src/site/markdown/markdown2-macro.markdown
+++ /dev/null
@@ -1,35 +0,0 @@
-<!---
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-Macros in Markdown
-----------------
-
-<!-- START SNIPPET: macros -->
-### TOC Macro
-
-<!-- MACRO{toc} -->
-
-### Echo Macro
-
-<!-- MACRO{echo|param1=value1|param2=value2} -->
-
-### Snippet Macro
-
-<!-- MACRO{snippet|id=macros|file=src/site/markdown/markdown-macro.md} -->
-<!-- END SNIPPET: macros -->
diff --git a/src/it/projects/doxia-formats/src/site/markdown/markdown2.markdown b/src/it/projects/doxia-formats/src/site/markdown/markdown2.markdown
index 7f25ec4..053216a 100644
--- a/src/it/projects/doxia-formats/src/site/markdown/markdown2.markdown
+++ b/src/it/projects/doxia-formats/src/site/markdown/markdown2.markdown
@@ -17,13 +17,12 @@
 under the License.
 -->
 
-
-Markdown Format works
----------------
-
-But 'quotes' and "double quotes" were stripped from HTML result with DOXIA 1.3:
-see [DOXIA-473](https://issues.apache.org/jira/browse/DOXIA-473).
+# Markdown Format works
 
 <!-- MACRO{toc|fromDepth=1|toDepth=2} -->
 
-### Subsection
+## Subsection
+
+This is the subsection.
+
+Content for verify.groovy
diff --git a/src/it/projects/doxia-formats/src/site/twiki/twiki.twiki b/src/it/projects/doxia-formats/src/site/twiki/twiki.twiki
index d235934..1c9876d 100644
--- a/src/it/projects/doxia-formats/src/site/twiki/twiki.twiki
+++ b/src/it/projects/doxia-formats/src/site/twiki/twiki.twiki
@@ -20,4 +20,6 @@
    * level 1
       * level 2
    * back on 1
-   * last bullet
\ No newline at end of file
+   * last bullet
+
+Content for verify.groovy
diff --git a/src/it/projects/doxia-formats/src/site/xdoc/xdoc-macro.xml b/src/it/projects/doxia-formats/src/site/xdoc/xdoc-macro.xml
index 711dd89..e2bfef2 100644
--- a/src/it/projects/doxia-formats/src/site/xdoc/xdoc-macro.xml
+++ b/src/it/projects/doxia-formats/src/site/xdoc/xdoc-macro.xml
@@ -27,7 +27,6 @@
   </properties>
   <body>
     <section name="Macros in Xdoc">
-    <!-- START SNIPPET: macros -->
     <subsection name="TOC">
       <macro name="toc">
       </macro>
@@ -41,10 +40,10 @@
     <subsection name="Snippet">
       <macro name="snippet">
         <param name="id" value="macros"/>
-        <param name="file" value="src/site/xdoc/xdoc-macro.xml"/>
+        <param name="file" value="src/main/java/org/apache/maven/plugins/site/it/CustomVelocityTool.java" />
       </macro>
+      <p>Content for verify.groovy</p>
     </subsection>
-    <!-- END SNIPPET: macros -->
     </section>
   </body>
 </document>
diff --git a/src/it/projects/doxia-formats/src/site/xdoc/xdoc.xml b/src/it/projects/doxia-formats/src/site/xdoc/xdoc.xml
index 230293f..0cdec6d 100644
--- a/src/it/projects/doxia-formats/src/site/xdoc/xdoc.xml
+++ b/src/it/projects/doxia-formats/src/site/xdoc/xdoc.xml
@@ -129,6 +129,8 @@
 
         <p>Copyright symbol: &#169; &#169; &#169;.</p>
 
+        <p>Content for verify.groovy</p>
+
       </subsection>
     </section>
 
diff --git a/src/it/projects/doxia-formats/src/site/xhtml/xhtml-macro.xhtml b/src/it/projects/doxia-formats/src/site/xhtml/xhtml-macro.xhtml
index eaf8e78..48c8480 100644
--- a/src/it/projects/doxia-formats/src/site/xhtml/xhtml-macro.xhtml
+++ b/src/it/projects/doxia-formats/src/site/xhtml/xhtml-macro.xhtml
@@ -31,7 +31,6 @@
 
 <h2>Macros in XHTML</h2>
 
-<!-- START SNIPPET: macros -->
 <h3>TOC Macro</h3>
 
 <!-- MACRO{toc} -->
@@ -42,8 +41,9 @@
 
 <h3>Snippet Macro</h3>
 
-<!-- MACRO{snippet|id=macros|file=src/site/xhtml/xhtml-macro.xhtml} -->
-<!-- END SNIPPET: macros -->
+<!-- MACRO{snippet|id=macros|file=src/main/java/org/apache/maven/plugins/site/it/CustomVelocityTool.java} -->
+
+<p>Content for verify.groovy</p>
 
 </body>
 
diff --git a/src/it/projects/doxia-formats/src/site/xhtml/xhtml.xhtml b/src/it/projects/doxia-formats/src/site/xhtml/xhtml.xhtml
index 886672c..c2c0131 100644
--- a/src/it/projects/doxia-formats/src/site/xhtml/xhtml.xhtml
+++ b/src/it/projects/doxia-formats/src/site/xhtml/xhtml.xhtml
@@ -145,6 +145,8 @@
 
 </div></div></div></div></div>
 
+<p>Content for verify.groovy</p>
+
 </body>
 
 </html>
diff --git a/src/it/projects/doxia-formats/verify.groovy b/src/it/projects/doxia-formats/verify.groovy
index fd5299b..6b2f273 100644
--- a/src/it/projects/doxia-formats/verify.groovy
+++ b/src/it/projects/doxia-formats/verify.groovy
@@ -18,32 +18,55 @@
  * under the License.
  */
 
-content = new File( basedir, 'target/site/markdown.html' ).text;
+// These files must have been generated
+[
+  'apt-macro.html',
+  'index.html',
+  'velocity-context.html',
+  'velocity-include-parse.html',
+  'confluence.html',
+  'docbook.html',
+  'faq-macro.html',
+  'faq.html',
+  'markdown-macro.html',
+  'markdown.html',
+  'markdown2.html',
+  'twiki.html',
+  'xdoc.html',
+  'xdoc-macro.html',
+  'xhtml.html',
+  'xhtml-macro.html'
+].each {
 
-assert content.contains( 'Markdown Format works' );
+  // File exists
+  def verifiedFile = new File( basedir, "target/site/$it" )
+  assert verifiedFile.exists() : "$it must have been generated"
 
-assert !content.contains( ' quotes and double quotes were stripped' ); // DOXIA-473
-assert content.contains( '<code>monospaced</code> support' ); // DOXIA-597
-assert content.contains( '<div class="source"><pre class="prettyprint linenums">code block' ); // DOXIA-571
+  // File contains the content marker 'Content for verify.groovy'
+  def verifiedContent = verifiedFile.text
+  assert verifiedContent.contains( 'Content for verify.groovy' ) :
+    "$it must have content from the source ('Content for verify.groovy')"
 
-assert !content.contains( 'MACRO' );
-assert content.contains( 'href="#Subsection"' );
+  // File does NOT contain the path to the source file referenced by the SNIPPET macro.
+  // This means that the SNIPPET macro has been properly processed.
+  // This test can be run in all files produced, even those with no macros.
+  assert !verifiedContent.contains( 'src/main/java/org/apache/maven/plugins/site/it/CustomVelocityTool.java' ) :
+    "Macros must have been processed in $it and SNIPPET source file path removed"
 
-ignore = new File( basedir, 'target/site/ignore.txt' );
-assert !ignore.exists();
+}
 
-velocity = new File( basedir, 'target/generated-site/processed/velocity-context.apt' );
-assert velocity.exists();
-content = velocity.text;
+// ignore.txt must NOT have been generated
+assert !( new File( basedir, 'target/site/ignore.txt' ).exists() ) :
+  "ignore.txt does not end up in the generated content"
+assert !( new File( basedir, 'target/site/ignore.html' ).exists() ) :
+  "ignore.txt does not produce ignore.html"
 
-assert content.contains( '= <<<val1>>>' ); // MSITE-550
+// .vm files must have been processed with Velocity
+def velocity = new File( basedir, 'target/generated-site/processed/velocity-context.apt' )
+assert velocity.exists() : "*.vm files must be processed with Velocity and stored in target/generated-site"
 
-assert !content.replace('<<<$value', '').contains( '<<<$' );
+def content = velocity.text
+assert content.contains( '= <<<val1>>>' ) : "Velocity-processed content must conform to MSITE-550"
 
-assert new File( basedir, 'target/site/markdown2.html' ).exists(); // DOXIA-535
-
-assert new File( basedir, 'target/site/confluence.html' ).exists(); // MSITE-838
-assert new File( basedir, 'target/site/docbook.html' ).exists(); //MSITE-838
-assert new File( basedir, 'target/site/twiki.html' ).exists(); //MSITE-838
-
-return true;
+assert !( content.replace('<<<$value', '').contains( '<<<$' ) ) :
+  'Velocity-processed content must not contain any veloci-macro reference'