diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java
index 1509e1f..511dd8a 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java
@@ -172,18 +172,18 @@
         }
 
         String actual = writer.toString();
-        assertTrue( actual.indexOf( "<table align=\"center\" border=\"0\" class=\"bodyTable\">"
-            + "<caption>caption1</caption>" ) != 1 );
-        assertTrue( actual.indexOf( "<table border=\"0\" class=\"bodyTable\" align=\"left\">"
-            + "<caption>caption2</caption>" ) != 1 );
-        assertTrue( actual.indexOf( "<table align=\"center\" border=\"0\" class=\"bodyTable\">"
-            + "<caption>caption3</caption>" ) != 1 );
+        assertTrue( actual.contains( "<table border=\"0\" class=\"bodyTable\">"
+            + "<caption>caption1</caption>" ) );
+        assertTrue( actual.contains( "<table border=\"0\" class=\"bodyTable\" align=\"left\">"
+            + "<caption>caption2</caption>" ) );
+        assertTrue( actual.contains( "<table border=\"0\" class=\"bodyTable\" align=\"right\">"
+            + "<caption>caption3</caption>" ) );
 
-        assertTrue( actual.indexOf( "<td align=\"center\">cell11</td>" ) != 1 );
-        assertTrue( actual.indexOf( "<td align=\"left\">nestedTable1Cell11</td>" ) != 1 );
-        assertTrue( actual.indexOf( "<td align=\"right\">nestedTable2Cell11</td>" ) != 1 );
-        assertTrue( actual.indexOf( "<td align=\"left\">nestedTable1Cell22</td>" ) != 1 );
-        assertTrue( actual.indexOf( "<td align=\"center\">cell22</td>" ) != 1 );
+        assertTrue( actual.contains( "<td>cell11</td>" ) );
+        assertTrue( actual.contains( "<td>nestedTable1Cell11</td>" ) );
+        assertTrue( actual.contains( "<td>nestedTable2Cell11</td>" ) );
+        assertTrue( actual.contains( "<td>nestedTable1Cell22</td>" ) );
+        assertTrue( actual.contains( "<td>cell22</td>" ) );
     }
 
     /**
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java
index 26151eb..39e47a4 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java
@@ -174,18 +174,18 @@
         }
 
         String actual = writer.toString();
-        assertTrue( actual.indexOf( "<table align=\"center\" border=\"0\" class=\"bodyTable\">"
-            + "<caption>caption1</caption>" ) != 1 );
-        assertTrue( actual.indexOf( "<table border=\"0\" class=\"bodyTable\" align=\"left\">"
-            + "<caption>caption2</caption>" ) != 1 );
-        assertTrue( actual.indexOf( "<table align=\"center\" border=\"0\" class=\"bodyTable\">"
-            + "<caption>caption3</caption>" ) != 1 );
+        assertTrue( actual.contains( "<table border=\"0\" class=\"bodyTable\">"
+            + "<caption>caption1</caption>" ) );
+        assertTrue( actual.contains( "<table border=\"0\" class=\"bodyTable\" align=\"left\">"
+            + "<caption>caption2</caption>" ) );
+        assertTrue( actual.contains( "<table border=\"0\" class=\"bodyTable\" align=\"right\">"
+            + "<caption>caption3</caption>" ) );
 
-        assertTrue( actual.indexOf( "<td align=\"center\">cell11</td>" ) != 1 );
-        assertTrue( actual.indexOf( "<td align=\"left\">nestedTable1Cell11</td>" ) != 1 );
-        assertTrue( actual.indexOf( "<td align=\"right\">nestedTable2Cell11</td>" ) != 1 );
-        assertTrue( actual.indexOf( "<td align=\"left\">nestedTable1Cell22</td>" ) != 1 );
-        assertTrue( actual.indexOf( "<td align=\"center\">cell22</td>" ) != 1 );
+        assertTrue( actual.contains( "<td>cell11</td>" ) );
+        assertTrue( actual.contains( "<td>nestedTable1Cell11</td>" ) );
+        assertTrue( actual.contains( "<td>nestedTable2Cell11</td>" ) );
+        assertTrue( actual.contains( "<td>nestedTable1Cell22</td>" ) );
+        assertTrue( actual.contains( "<td>cell22</td>" ) );
     }
 
     /**
