Clover coverage report - Dependency Finder
Coverage timestamp: Mon Nov 29 2010 15:00:50 PST
file stats: LOC: 427   Methods: 14
NCLOC: 328   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
TestListDiffPrinter.java - 92.2% 78.6% 91.5%
coverage coverage
 1    /*
 2    * Copyright (c) 2001-2009, Jean Tessier
 3    * All rights reserved.
 4    *
 5    * Redistribution and use in source and binary forms, with or without
 6    * modification, are permitted provided that the following conditions
 7    * are met:
 8    *
 9    * * Redistributions of source code must retain the above copyright
 10    * notice, this list of conditions and the following disclaimer.
 11    *
 12    * * Redistributions in binary form must reproduce the above copyright
 13    * notice, this list of conditions and the following disclaimer in the
 14    * documentation and/or other materials provided with the distribution.
 15    *
 16    * * Neither the name of Jean Tessier nor the names of his contributors
 17    * may be used to endorse or promote products derived from this software
 18    * without specific prior written permission.
 19    *
 20    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 21    * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 22    * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 23    * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
 24    * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 25    * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 26    * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 27    * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 28    * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 29    * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 30    * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 31    */
 32   
 33    package com.jeantessier.diff;
 34   
 35    import java.io.*;
 36    import javax.xml.parsers.*;
 37   
 38    import junit.framework.*;
 39    import org.apache.oro.text.perl.*;
 40    import org.xml.sax.*;
 41   
 42    public class TestListDiffPrinter extends TestCase implements ErrorHandler {
 43    private static final String SPECIFIC_ENCODING = "iso-latin-1";
 44    private static final String SPECIFIC_DTD_PREFIX = "./etc";
 45   
 46    private XMLReader reader;
 47    private Perl5Util perl;
 48   
 49  10 protected void setUp() throws Exception {
 50  10 boolean validate = Boolean.getBoolean("DEPENDENCYFINDER_TESTS_VALIDATE");
 51   
 52  10 reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
 53  10 reader.setFeature("http://xml.org/sax/features/validation", validate);
 54  10 reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", validate);
 55  10 reader.setErrorHandler(this);
 56   
 57  10 perl = new Perl5Util();
 58    }
 59   
 60  1 public void testDefaultDTDPrefix() {
 61  1 ListDiffPrinter printer = new ListDiffPrinter();
 62   
 63  1 String xmlDocument = printer.toString();
 64  1 assertTrue(xmlDocument + "Missing DTD", perl.match("/DOCTYPE \\S+ SYSTEM \"(.*)\"/", xmlDocument));
 65  1 assertTrue("DTD \"" + perl.group(1) + "\" does not have prefix \"" + ListDiffPrinter.DEFAULT_DTD_PREFIX + "\"", perl.group(1).startsWith(ListDiffPrinter.DEFAULT_DTD_PREFIX));
 66   
 67  1 try {
 68  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 69    } catch (SAXException ex) {
 70  0 fail("Could not parse XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 71    } catch (IOException ex) {
 72  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 73    }
 74    }
 75   
 76  1 public void testSpecificDTDPrefix() {
 77  1 ListDiffPrinter printer = new ListDiffPrinter(ListDiffPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 78   
 79  1 String xmlDocument = printer.toString();
 80  1 assertTrue(xmlDocument + "Missing DTD", perl.match("/DOCTYPE \\S+ SYSTEM \"(.*)\"/", xmlDocument));
 81  1 assertTrue("DTD \"" + perl.group(1) + "\" does not have prefix \"./etc\"", perl.group(1).startsWith(SPECIFIC_DTD_PREFIX));
 82   
 83  1 try {
 84  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 85    } catch (SAXException ex) {
 86  0 fail("Could not parse XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 87    } catch (IOException ex) {
 88  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 89    }
 90    }
 91   
 92  1 public void testDefaultEncoding() {
 93  1 ListDiffPrinter printer = new ListDiffPrinter();
 94   
 95  1 String xmlDocument = printer.toString();
 96  1 assertTrue(xmlDocument + "Missing encoding", perl.match("/encoding=\"([^\"]*)\"/", xmlDocument));
 97  1 assertEquals("Encoding", ListDiffPrinter.DEFAULT_ENCODING, perl.group(1));
 98   
 99  1 try {
 100  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 101    } catch (SAXException ex) {
 102  0 fail("Could not parse XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 103    } catch (IOException ex) {
 104  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 105    }
 106    }
 107   
 108  1 public void testSpecificEncoding() {
 109  1 ListDiffPrinter printer = new ListDiffPrinter(SPECIFIC_ENCODING, ListDiffPrinter.DEFAULT_DTD_PREFIX);
 110   
 111  1 String xmlDocument = printer.toString();
 112  1 assertTrue(xmlDocument + "Missing encoding", perl.match("/encoding=\"([^\"]*)\"/", xmlDocument));
 113  1 assertEquals("Encoding", SPECIFIC_ENCODING, perl.group(1));
 114   
 115  1 try {
 116  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 117    } catch (SAXException ex) {
 118  0 fail("Could not parse XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 119    } catch (IOException ex) {
 120  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 121    }
 122    }
 123   
 124  1 public void testDefault() {
 125  1 ListDiffPrinter printer = new ListDiffPrinter(ListDiffPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 126   
 127  1 printer.remove("java.lang.Object");
 128  1 printer.remove("java.lang.Object.Object()");
 129  1 printer.remove("java.lang.String");
 130  1 printer.remove("java.util");
 131  1 printer.remove("java.util.Collection.add(java.lang.Object)");
 132  1 printer.remove("java.util.Collection.addAll(java.util.Collection)");
 133   
 134  1 printer.add("java.lang.Thread");
 135  1 printer.add("java.lang.Thread.Thread()");
 136  1 printer.add("java.lang.System");
 137  1 printer.add("java.io");
 138  1 printer.add("java.io.PrintStream.println(java.lang.Object)");
 139  1 printer.add("java.io.PrintWriter.println(java.lang.Object)");
 140   
 141  1 String xmlDocument = printer.toString();
 142   
 143  1 try {
 144  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 145    } catch (SAXException ex) {
 146  0 fail("Could not parse XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 147    } catch (IOException ex) {
 148  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 149    }
 150   
 151  1 assertTrue("java.lang.Object not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Object</line>") != -1);
 152  1 assertTrue("java.lang.Object.Object() not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Object.Object()</line>") != -1);
 153  1 assertTrue("java.lang.String not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.String</line>") != -1);
 154  1 assertTrue("java.util not in " + xmlDocument, xmlDocument.indexOf("<line>java.util</line>") != -1);
 155  1 assertTrue("java.util.Collection.add(java.lang.Object) not in " + xmlDocument, xmlDocument.indexOf("<line>java.util.Collection.add(java.lang.Object)</line>") != -1);
 156  1 assertTrue("java.util.Collection.addAll(java.util.Collection) not in " + xmlDocument, xmlDocument.indexOf("<line>java.util.Collection.add(java.lang.Object)</line>") != -1);
 157   
 158  1 assertTrue("java.lang.Thread not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Thread</line>") != -1);
 159  1 assertTrue("java.lang.Thread.Thread() not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Thread.Thread()</line>") != -1);
 160  1 assertTrue("java.lang.System not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.System</line>") != -1);
 161  1 assertTrue("java.io not in " + xmlDocument, xmlDocument.indexOf("<line>java.io</line>") != -1);
 162  1 assertTrue("java.io.PrintStream.println(java.lang.Object) not in " + xmlDocument, xmlDocument.indexOf("<line>java.io.PrintStream.println(java.lang.Object)</line>") != -1);
 163  1 assertTrue("java.io.PrintWriter.println(java.lang.Object) not in " + xmlDocument, xmlDocument.indexOf("<line>java.io.PrintStream.println(java.lang.Object)</line>") != -1);
 164    }
 165   
 166  1 public void testFullList() {
 167  1 ListDiffPrinter printer = new ListDiffPrinter(false, ListDiffPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 168   
 169  1 printer.remove("java.lang.Object");
 170  1 printer.remove("java.lang.Object.Object()");
 171  1 printer.remove("java.lang.String");
 172  1 printer.remove("java.util");
 173  1 printer.remove("java.util.Collection.add(java.lang.Object)");
 174  1 printer.remove("java.util.Collection.addAll(java.util.Collection)");
 175   
 176  1 printer.add("java.lang.Thread");
 177  1 printer.add("java.lang.Thread.Thread()");
 178  1 printer.add("java.lang.System");
 179  1 printer.add("java.io");
 180  1 printer.add("java.io.PrintStream.println(java.lang.Object)");
 181  1 printer.add("java.io.PrintWriter.println(java.lang.Object)");
 182   
 183  1 String xmlDocument = printer.toString();
 184   
 185  1 try {
 186  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 187    } catch (SAXException ex) {
 188  0 fail("Could not parse XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 189    } catch (IOException ex) {
 190  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 191    }
 192   
 193  1 assertTrue("java.lang.Object not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Object</line>") != -1);
 194  1 assertTrue("java.lang.Object.Object() not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Object.Object()</line>") != -1);
 195  1 assertTrue("java.lang.String not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.String</line>") != -1);
 196  1 assertTrue("java.util not in " + xmlDocument, xmlDocument.indexOf("<line>java.util</line>") != -1);
 197  1 assertTrue("java.util.Collection.add(java.lang.Object) not in " + xmlDocument, xmlDocument.indexOf("<line>java.util.Collection.add(java.lang.Object)</line>") != -1);
 198  1 assertTrue("java.util.Collection.addAll(java.util.Collection) not in " + xmlDocument, xmlDocument.indexOf("<line>java.util.Collection.add(java.lang.Object)</line>") != -1);
 199   
 200  1 assertTrue("java.lang.Thread not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Thread</line>") != -1);
 201  1 assertTrue("java.lang.Thread.Thread() not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Thread.Thread()</line>") != -1);
 202  1 assertTrue("java.lang.System not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.System</line>") != -1);
 203  1 assertTrue("java.io not in " + xmlDocument, xmlDocument.indexOf("<line>java.io</line>") != -1);
 204  1 assertTrue("java.io.PrintStream.println(java.lang.Object) not in " + xmlDocument, xmlDocument.indexOf("<line>java.io.PrintStream.println(java.lang.Object)</line>") != -1);
 205  1 assertTrue("java.io.PrintWriter.println(java.lang.Object) not in " + xmlDocument, xmlDocument.indexOf("<line>java.io.PrintStream.println(java.lang.Object)</line>") != -1);
 206    }
 207   
 208  1 public void testCompressedList() {
 209  1 ListDiffPrinter printer = new ListDiffPrinter(true, ListDiffPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 210   
 211  1 printer.remove("java.lang.Object [C]");
 212  1 printer.remove("java.lang.Object.Object() [F]");
 213  1 printer.remove("java.lang.String [C]");
 214  1 printer.remove("java.util [P]");
 215  1 printer.remove("java.util.Collection.add(java.lang.Object) [F]");
 216  1 printer.remove("java.util.Collection.addAll(java.util.Collection) [F]");
 217   
 218  1 printer.add("java.lang.Thread [C]");
 219  1 printer.add("java.lang.Thread.Thread() [F]");
 220  1 printer.add("java.lang.System [C]");
 221  1 printer.add("java.io [P]");
 222  1 printer.add("java.io.PrintStream.println(java.lang.Object) [F]");
 223  1 printer.add("java.io.PrintWriter.println(java.lang.Object) [F]");
 224   
 225  1 String xmlDocument = printer.toString();
 226   
 227  1 try {
 228  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 229    } catch (SAXException ex) {
 230  0 fail("Could not parse XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 231    } catch (IOException ex) {
 232  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 233    }
 234   
 235  1 assertTrue("java.lang.Object not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Object</line>") != -1);
 236  1 assertTrue("java.lang.Object.Object() in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Object.Object()</line>") == -1);
 237  1 assertTrue("java.lang.String not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.String</line>") != -1);
 238  1 assertTrue("java.util not in " + xmlDocument, xmlDocument.indexOf("<line>java.util</line>") != -1);
 239  1 assertTrue("java.util.Collection.add(java.lang.Object) in " + xmlDocument, xmlDocument.indexOf("<line>java.util.Collection.add(java.lang.Object)</line>") == -1);
 240  1 assertTrue("java.util.Collection.addAll(java.util.Collection) in " + xmlDocument, xmlDocument.indexOf("<line>java.util.Collection.add(java.lang.Object)</line>") == -1);
 241   
 242  1 assertTrue("java.lang.Thread not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Thread</line>") != -1);
 243  1 assertTrue("java.lang.Thread.Thread() in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Thread.Thread()</line>") == -1);
 244  1 assertTrue("java.lang.System not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.System</line>") != -1);
 245  1 assertTrue("java.io not in " + xmlDocument, xmlDocument.indexOf("<line>java.io</line>") != -1);
 246  1 assertTrue("java.io.PrintStream.println(java.lang.Object) not in " + xmlDocument, xmlDocument.indexOf("<line>java.io.PrintStream.println(java.lang.Object)</line>") == -1);
 247  1 assertTrue("java.io.PrintWriter.println(java.lang.Object) in " + xmlDocument, xmlDocument.indexOf("<line>java.io.PrintStream.println(java.lang.Object)</line>") == -1);
 248    }
 249   
 250  1 public void testCompressedListWithoutSuffixes() {
 251  1 ListDiffPrinter printer = new ListDiffPrinter(true, ListDiffPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 252   
 253  1 printer.remove("java.lang.Object");
 254  1 printer.remove("java.lang.Object.Object()");
 255  1 printer.remove("java.lang.String");
 256  1 printer.remove("java.util");
 257  1 printer.remove("java.util.Collection.add(java.lang.Object)");
 258  1 printer.remove("java.util.Collection.addAll(java.util.Collection)");
 259   
 260  1 printer.add("java.lang.Thread");
 261  1 printer.add("java.lang.Thread.Thread()");
 262  1 printer.add("java.lang.System");
 263  1 printer.add("java.io");
 264  1 printer.add("java.io.PrintStream.println(java.lang.Object)");
 265  1 printer.add("java.io.PrintWriter.println(java.lang.Object)");
 266   
 267  1 String xmlDocument = printer.toString();
 268   
 269  1 try {
 270  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 271    } catch (SAXException ex) {
 272  0 fail("Could not parse XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 273    } catch (IOException ex) {
 274  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 275    }
 276   
 277  1 assertTrue("java.lang.Object not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Object</line>") != -1);
 278  1 assertTrue("java.lang.Object.Object() not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Object.Object()</line>") != -1);
 279  1 assertTrue("java.lang.String not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.String</line>") != -1);
 280  1 assertTrue("java.util not in " + xmlDocument, xmlDocument.indexOf("<line>java.util</line>") != -1);
 281  1 assertTrue("java.util.Collection.add(java.lang.Object) not in " + xmlDocument, xmlDocument.indexOf("<line>java.util.Collection.add(java.lang.Object)</line>") != -1);
 282  1 assertTrue("java.util.Collection.addAll(java.util.Collection) not in " + xmlDocument, xmlDocument.indexOf("<line>java.util.Collection.add(java.lang.Object)</line>") != -1);
 283   
 284  1 assertTrue("java.lang.Thread not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Thread</line>") != -1);
 285  1 assertTrue("java.lang.Thread.Thread() not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.Thread.Thread()</line>") != -1);
 286  1 assertTrue("java.lang.System not in " + xmlDocument, xmlDocument.indexOf("<line>java.lang.System</line>") != -1);
 287  1 assertTrue("java.io not in " + xmlDocument, xmlDocument.indexOf("<line>java.io</line>") != -1);
 288  1 assertTrue("java.io.PrintStream.println(java.lang.Object) not in " + xmlDocument, xmlDocument.indexOf("<line>java.io.PrintStream.println(java.lang.Object)</line>") != -1);
 289  1 assertTrue("java.io.PrintWriter.println(java.lang.Object) not in " + xmlDocument, xmlDocument.indexOf("<line>java.io.PrintStream.println(java.lang.Object)</line>") != -1);
 290    }
 291   
 292  1 public void testLegitimateSuffixes() {
 293  1 ListDiffPrinter printer = new ListDiffPrinter(true, ListDiffPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 294   
 295  1 printer.remove("removed [P]"); // not compressed
 296  1 printer.remove("removed.Removed [C]"); // compressed
 297  1 printer.remove("removed.Removed.Removed() [F]"); // compressed
 298  1 printer.remove("removed.Removed.removed [F]"); // compressed
 299  1 printer.remove("removed.OtherRemoved.OtherRemoved() [F]"); // compressed
 300  1 printer.remove("removed.OtherRemoved.other_removed [F]"); // compressed
 301  1 printer.remove("removedpackage [P]"); // not compressed
 302  1 printer.remove("removed.package.internal [P]"); // not compressed
 303  1 printer.remove("other.removed.Removed [C]"); // not compressed
 304  1 printer.remove("other.removed.Removed.Removed() [F]"); // compressed
 305  1 printer.remove("other.removed.OtherRemoved.OtherRemoved() [F]"); // not compressed
 306   
 307  1 printer.add("add [P]"); // not compressed
 308  1 printer.add("add.Add [C]"); // compressed
 309  1 printer.add("add.Add.Add() [F]"); // compressed
 310  1 printer.add("add.Add.add [F]"); // compressed
 311  1 printer.add("add.OtherAdd.OtherAdd() [F]"); // compressed
 312  1 printer.add("add.OtherAdd.add [F]"); // compressed
 313  1 printer.add("addpackage [P]"); // not compressed
 314  1 printer.add("add.package.internal [P]"); // not compressed
 315  1 printer.add("other.add.Add [C]"); // not compressed
 316  1 printer.add("other.add.Add.Add() [F]"); // compressed
 317  1 printer.add("other.add.OtherAdd.OtherAdd() [F]"); // not compressed
 318   
 319  1 String xmlDocument = printer.toString();
 320   
 321  1 try {
 322  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 323    } catch (SAXException ex) {
 324  0 fail("Could not parse XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 325    } catch (IOException ex) {
 326  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 327    }
 328   
 329  1 assertTrue("removed not in " + xmlDocument, xmlDocument.indexOf("<line>removed</line>") != -1);
 330  1 assertTrue("removed.Removed in " + xmlDocument, xmlDocument.indexOf("<line>removed.Removed</line>") == -1);
 331  1 assertTrue("removed.Removed.Removed() in " + xmlDocument, xmlDocument.indexOf("<line>removed.Removed.Removed()</line>") == -1);
 332  1 assertTrue("removed.Removed.removed in " + xmlDocument, xmlDocument.indexOf("<line>removed.Removed.removed</line>") == -1);
 333  1 assertTrue("removed.OtherRemoved.OtherRemoved() in " + xmlDocument, xmlDocument.indexOf("<line>removed.OtherRemoved.OtherRemoved()</line>") == -1);
 334  1 assertTrue("removed.OtherRemoved.other_removed in " + xmlDocument, xmlDocument.indexOf("<line>removed.OtherRemoved.other_removed</line>") == -1);
 335  1 assertTrue("removedpackage not in " + xmlDocument, xmlDocument.indexOf("<line>removedpackage</line>") != -1);
 336  1 assertTrue("removed.package.internal not in " + xmlDocument, xmlDocument.indexOf("<line>removed.package.internal</line>") != -1);
 337  1 assertTrue("other.removed.Removed not in " + xmlDocument, xmlDocument.indexOf("<line>other.removed.Removed</line>") != -1);
 338  1 assertTrue("other.removed.Removed.Removed() in " + xmlDocument, xmlDocument.indexOf("<line>other.removed.Removed.Removed()</line>") == -1);
 339  1 assertTrue("other.removed.OtherRemoved.OtherRemoved() not in " + xmlDocument, xmlDocument.indexOf("<line>other.removed.OtherRemoved.OtherRemoved()</line>") != -1);
 340   
 341  1 assertTrue("add not in " + xmlDocument, xmlDocument.indexOf("<line>add</line>") != -1);
 342  1 assertTrue("add.Add in " + xmlDocument, xmlDocument.indexOf("<line>add.Add</line>") == -1);
 343  1 assertTrue("add.Add.Add() in " + xmlDocument, xmlDocument.indexOf("<line>add.Add.Add()</line>") == -1);
 344  1 assertTrue("add.Add.add in " + xmlDocument, xmlDocument.indexOf("<line>add.Add.add</line>") == -1);
 345  1 assertTrue("add.OtherAdd.OtherAdd() in " + xmlDocument, xmlDocument.indexOf("<line>add.OtherAdd.OtherAdd()</line>") == -1);
 346  1 assertTrue("add.OtherAdd.other_add in " + xmlDocument, xmlDocument.indexOf("<line>add.OtherAdd.other_add</line>") == -1);
 347  1 assertTrue("addpackage not in " + xmlDocument, xmlDocument.indexOf("<line>addpackage</line>") != -1);
 348  1 assertTrue("add.package.internal not in " + xmlDocument, xmlDocument.indexOf("<line>add.package.internal</line>") != -1);
 349  1 assertTrue("other.add.Add not in " + xmlDocument, xmlDocument.indexOf("<line>other.add.Add</line>") != -1);
 350  1 assertTrue("other.add.Add.Add() in " + xmlDocument, xmlDocument.indexOf("<line>other.add.Add.Add()</line>") == -1);
 351  1 assertTrue("other.add.OtherAdd.OtherAdd() not in " + xmlDocument, xmlDocument.indexOf("<line>other.add.OtherAdd.OtherAdd()</line>") != -1);
 352    }
 353   
 354  1 public void testNoSuffixes() {
 355  1 ListDiffPrinter printer = new ListDiffPrinter(true, ListDiffPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 356   
 357  1 printer.remove("removed"); // not compressed
 358  1 printer.remove("removed.Removed"); // not compressed
 359  1 printer.remove("removed.Removed.Removed()"); // not compressed
 360  1 printer.remove("removed.Removed.removed"); // not compressed
 361  1 printer.remove("removed.OtherRemoved.OtherRemoved()"); // not compressed
 362  1 printer.remove("removed.OtherRemoved.other_removed"); // not compressed
 363  1 printer.remove("removedpackage"); // not compressed
 364  1 printer.remove("removed.package.internal"); // not compressed
 365  1 printer.remove("other.removed.Removed"); // not compressed
 366  1 printer.remove("other.removed.Removed.Removed()"); // not compressed
 367  1 printer.remove("other.removed.OtherRemoved.OtherRemoved()"); // not compressed
 368   
 369  1 printer.add("add"); // not compressed
 370  1 printer.add("add.Add"); // not compressed
 371  1 printer.add("add.Add.Add()"); // not compressed
 372  1 printer.add("add.Add.add"); // not compressed
 373  1 printer.add("add.OtherAdd.OtherAdd()"); // not compressed
 374  1 printer.add("add.OtherAdd.other_add"); // not compressed
 375  1 printer.add("addpackage"); // not compressed
 376  1 printer.add("add.package.internal"); // not compressed
 377  1 printer.add("other.add.Add"); // not compressed
 378  1 printer.add("other.add.Add.Add()"); // not compressed
 379  1 printer.add("other.add.OtherAdd.OtherAdd()"); // not compressed
 380   
 381  1 String xmlDocument = printer.toString();
 382   
 383  1 try {
 384  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 385    } catch (SAXException ex) {
 386  0 fail("Could not parse XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 387    } catch (IOException ex) {
 388  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 389    }
 390   
 391  1 assertTrue("removed not in " + xmlDocument, xmlDocument.indexOf("<line>removed</line>") != -1);
 392  1 assertTrue("removed.Removed in " + xmlDocument, xmlDocument.indexOf("<line>removed.Removed</line>") != -1);
 393  1 assertTrue("removed.Removed.Removed() in " + xmlDocument, xmlDocument.indexOf("<line>removed.Removed.Removed()</line>") != -1);
 394  1 assertTrue("removed.Removed.removed in " + xmlDocument, xmlDocument.indexOf("<line>removed.Removed.removed</line>") != -1);
 395  1 assertTrue("removed.OtherRemoved.OtherRemoved() in " + xmlDocument, xmlDocument.indexOf("<line>removed.OtherRemoved.OtherRemoved()</line>") != -1);
 396  1 assertTrue("removed.OtherRemoved.other_removed in " + xmlDocument, xmlDocument.indexOf("<line>removed.OtherRemoved.other_removed</line>") != -1);
 397  1 assertTrue("removedpackage not in " + xmlDocument, xmlDocument.indexOf("<line>removedpackage</line>") != -1);
 398  1 assertTrue("removed.package.internal not in " + xmlDocument, xmlDocument.indexOf("<line>removed.package.internal</line>") != -1);
 399  1 assertTrue("other.removed.Removed not in " + xmlDocument, xmlDocument.indexOf("<line>other.removed.Removed</line>") != -1);
 400  1 assertTrue("other.removed.Removed.Removed() in " + xmlDocument, xmlDocument.indexOf("<line>other.removed.Removed.Removed()</line>") != -1);
 401  1 assertTrue("other.removed.OtherRemoved.OtherRemoved() not in " + xmlDocument, xmlDocument.indexOf("<line>other.removed.OtherRemoved.OtherRemoved()</line>") != -1);
 402   
 403  1 assertTrue("add not in " + xmlDocument, xmlDocument.indexOf("<line>add</line>") != -1);
 404  1 assertTrue("add.Add in " + xmlDocument, xmlDocument.indexOf("<line>add.Add</line>") != -1);
 405  1 assertTrue("add.Add.Add() in " + xmlDocument, xmlDocument.indexOf("<line>add.Add.Add()</line>") != -1);
 406  1 assertTrue("add.Add.add in " + xmlDocument, xmlDocument.indexOf("<line>add.Add.add</line>") != -1);
 407  1 assertTrue("add.OtherAdd.OtherAdd() in " + xmlDocument, xmlDocument.indexOf("<line>add.OtherAdd.OtherAdd()</line>") != -1);
 408  1 assertTrue("add.OtherAdd.other_add in " + xmlDocument, xmlDocument.indexOf("<line>add.OtherAdd.other_add</line>") != -1);
 409  1 assertTrue("addpackage not in " + xmlDocument, xmlDocument.indexOf("<line>addpackage</line>") != -1);
 410  1 assertTrue("add.package.internal not in " + xmlDocument, xmlDocument.indexOf("<line>add.package.internal</line>") != -1);
 411  1 assertTrue("other.add.Add not in " + xmlDocument, xmlDocument.indexOf("<line>other.add.Add</line>") != -1);
 412  1 assertTrue("other.add.Add.Add() in " + xmlDocument, xmlDocument.indexOf("<line>other.add.Add.Add()</line>") != -1);
 413  1 assertTrue("other.add.OtherAdd.OtherAdd() not in " + xmlDocument, xmlDocument.indexOf("<line>other.add.OtherAdd.OtherAdd()</line>") != -1);
 414    }
 415   
 416  0 public void error(SAXParseException ex) {
 417    // Ignore
 418    }
 419   
 420  0 public void fatalError(SAXParseException ex) {
 421    // Ignore
 422    }
 423   
 424  0 public void warning(SAXParseException ex) {
 425    // Ignore
 426    }
 427    }