1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (c) 2001-2003 World Wide Web Consortium,
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (Massachusetts Institute of Technology, Institut National de
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Recherche en Informatique et en Automatique, Keio University). All
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Rights Reserved. This program is distributed under the W3C's Software
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Intellectual Property License. This program is distributed in the
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * PURPOSE.
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.w3c.domts;
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.lang.reflect.Constructor;
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.lang.reflect.InvocationTargetException;
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.URI;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.URISyntaxException;
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Iterator;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.logging.Logger;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.DocumentBuilder;
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.NamedNodeMap;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Node;
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.NodeList;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class JUnitTestCaseAdapter extends TestCase implements DOMTestFramework {
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  private DOMTestCase test;
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  private static DOMTestDocumentBuilderFactory defaultFactory = null;
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public JUnitTestCaseAdapter(DOMTestCase test) {
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    super(test.getTargetURI());
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    test.setFramework(this);
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    this.test = test;
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//BEGIN android-added
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public JUnitTestCaseAdapter() {
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  private String errorMessage = null;
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  private boolean failed = false;
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  @Override
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setName(String name) {
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.setName(name);
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (test == null) {
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                URI uri = new URI(name);
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                String path = uri.getPath();
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                path = path.replaceAll("/", ".");
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Class<?> clazz = null;
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                int pos = path.indexOf('.');
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                while (pos != -1) {
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    try {
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        clazz = Class.forName("org.w3c.domts." + path);
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        break;
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    } catch (ClassNotFoundException e) {
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        // do nothing
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    path = path.substring(pos + 1);
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (clazz == null) {
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    errorMessage = "class not found for test: " + name;
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    failed = true;
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    return;
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (defaultFactory == null) {
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    defaultFactory = new JAXPDOMTestDocumentBuilderFactory(null,
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                            JAXPDOMTestDocumentBuilderFactory.getConfiguration1());
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Constructor<?> constructor = clazz.getConstructor(new Class<?>[] {
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    DOMTestDocumentBuilderFactory.class
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                });
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                test = (DOMTestCase)constructor.newInstance(new Object[] {
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    defaultFactory
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                });
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                test.setFramework(this);
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (URISyntaxException e) {
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                failed = true;
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                errorMessage = e.getMessage();
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (errorMessage == null) {
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    errorMessage = "" + e.toString();
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (IllegalAccessException e) {
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                failed = true;
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                errorMessage = e.getMessage();
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (errorMessage == null) {
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    errorMessage = "" + e.toString();
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (InstantiationException e) {
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                failed = true;
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                errorMessage = e.getMessage();
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (errorMessage == null) {
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    errorMessage = "" + e.toString();
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (DOMTestIncompatibleException e) {
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                failed = true;
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                errorMessage = e.getMessage();
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (errorMessage == null) {
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    errorMessage = "" + e.toString();
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (SecurityException e) {
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                failed = true;
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                errorMessage = e.getMessage();
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (errorMessage == null) {
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    errorMessage = "" + e.toString();
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (NoSuchMethodException e) {
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                failed = true;
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                errorMessage = e.getMessage();
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (errorMessage == null) {
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    errorMessage = "" + e.toString();
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (IllegalArgumentException e) {
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                failed = true;
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                errorMessage = e.getMessage();
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (errorMessage == null) {
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    errorMessage = "" + e.toString();
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (InvocationTargetException e) {
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                failed = true;
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Throwable t = e.getCause();
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (t != null) {
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    errorMessage = t.getMessage();
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    if (errorMessage == null) {
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        errorMessage = "" + t.toString();
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                } else {
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    errorMessage = e.getMessage();
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    if (errorMessage == null) {
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        errorMessage = "" + e.toString();
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//END android-added
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  protected void runTest() throws Throwable {
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      //BEGIN android-added
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      if (failed) {
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          if (errorMessage != null) {
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project              fail(errorMessage);
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          } else {
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project              fail("init failed");
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          }
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      //END android-added
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    test.runTest();
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    int mutationCount = test.getMutationCount();
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if (mutationCount != 0) {
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    	fail("Document loaded with willBeModified='false' was modified in course of test.");
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean hasFeature(DocumentBuilder docBuilder,
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String feature,
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String version)  {
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     return docBuilder.getDOMImplementation().hasFeature(feature,version);
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void wait(int millisecond) {
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void fail(DOMTestCase test, String assertID) {
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  	fail(assertID);
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertTrue(DOMTestCase test, String assertID, boolean actual) {
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertTrue(assertID,actual);
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertFalse(DOMTestCase test, String assertID, boolean actual) {
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(actual) {
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      assertEquals(assertID,String.valueOf(false), String.valueOf(actual));
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertNull(DOMTestCase test, String assertID, Object actual) {
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertNull(assertID,actual);
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertNotNull(DOMTestCase test, String assertID, Object actual) {
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertNotNull(assertID,actual);
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertSame(DOMTestCase test, String assertID, Object expected, Object actual) {
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    boolean same = (expected == actual);
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    //
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    //   if the not the same but both are not null
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    //      might still really be the same
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    //
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(!same) {
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      if(expected == null || actual == null ||
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project         !(expected instanceof Node) || !(actual instanceof Node)) {
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(assertID,expected,actual);
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      else {
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        //
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        //  could do something with isSame
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        //
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(assertID,expected,actual);
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertInstanceOf(DOMTestCase test, String assertID, Object obj, Class cls) {
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertTrue(assertID,cls.isInstance(obj));
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertSize(DOMTestCase test, String assertID, int expectedSize, NodeList collection) {
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertEquals(assertID,expectedSize, collection.getLength());
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertSize(DOMTestCase test, String assertID, int expectedSize, NamedNodeMap collection) {
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertEquals(assertID, expectedSize, collection.getLength());
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertSize(DOMTestCase test, String assertID, int expectedSize, Collection collection) {
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertEquals(assertID, expectedSize, collection.size());
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertEqualsIgnoreCase(DOMTestCase test, String assertID, String expected, String actual) {
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  	if (!expected.equalsIgnoreCase(actual)) {
240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  		assertEquals(assertID,expected, actual);
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  	}
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertEqualsIgnoreCase(DOMTestCase test, String assertID, Collection expected, Collection actual) {
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    int size = expected.size();
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertNotNull(assertID,expected);
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertNotNull(assertID,actual);
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertEquals(assertID,size, actual.size());
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    boolean equals = (expected != null && actual != null && size == actual.size());
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(equals) {
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      List expectedArray = new ArrayList(expected);
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String expectedString;
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String actualString;
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Iterator actualIter = actual.iterator();
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Iterator expectedIter;
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      while(actualIter.hasNext() && equals) {
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        actualString = (String) actualIter.next();
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        expectedIter = expectedArray.iterator();
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        equals = false;
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        while(expectedIter.hasNext() && !equals) {
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          expectedString = (String) expectedIter.next();
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          if(actualString.equalsIgnoreCase(expectedString)) {
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            equals = true;
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            expectedArray.remove(expectedString);
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          }
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertTrue(assertID,equals);
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertEqualsIgnoreCase(DOMTestCase test, String assertID, List expected, List actual) {
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    int size = expected.size();
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertNotNull(assertID,expected);
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertNotNull(assertID,actual);
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertEquals(assertID,size, actual.size());
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    boolean equals = (expected != null && actual != null && size == actual.size());
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(equals) {
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String expectedString;
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String actualString;
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      for(int i = 0; i < size; i++) {
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        expectedString = (String) expected.get(i);
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        actualString = (String) actual.get(i);
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if(!expectedString.equalsIgnoreCase(actualString)) {
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          assertEquals(assertID,expectedString,actualString);
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          break;
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertEquals(DOMTestCase test, String assertID, String expected, String actual) {
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertEquals(assertID,expected,actual);
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertEquals(DOMTestCase test, String assertID, int expected, int actual) {
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertEquals(assertID,expected,actual);
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertEquals(DOMTestCase test, String assertID, boolean expected, boolean actual) {
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertEquals(assertID,expected,actual);
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertEquals(DOMTestCase test, String assertID, double expected, double actual) {
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      assertEquals(assertID, expected, actual, 0.0);
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertEquals(DOMTestCase test, String assertID, Collection expected, Collection actual) {
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    int size = expected.size();
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertNotNull(assertID,expected);
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertNotNull(assertID,actual);
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertEquals(assertID,size, actual.size());
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    boolean equals = (expected != null && actual != null && size == actual.size());
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(equals) {
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      List expectedArray = new ArrayList(expected);
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Object expectedObj;
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Object actualObj;
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Iterator actualIter = actual.iterator();
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Iterator expectedIter;
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      while(actualIter.hasNext() && equals) {
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        actualObj = actualIter.next();
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        expectedIter = expectedArray.iterator();
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        equals = false;
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        while(expectedIter.hasNext() && !equals) {
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          expectedObj = expectedIter.next();
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          if(expectedObj == actualObj || expectedObj.equals(actualObj)) {
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            equals = true;
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            expectedArray.remove(expectedObj);
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          }
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertTrue(assertID,equals);
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertNotEqualsIgnoreCase(DOMTestCase test, String assertID, String expected, String actual) {
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(expected.equalsIgnoreCase(actual)) {
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      assertTrue(assertID, !expected.equalsIgnoreCase(actual));
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertNotEquals(DOMTestCase test, String assertID, String expected, String actual) {
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertTrue(assertID, !expected.equals(actual));
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertNotEquals(DOMTestCase test, String assertID, int expected, int actual) {
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertTrue(assertID,expected !=actual);
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertNotEquals(DOMTestCase test, String assertID, boolean expected, boolean actual) {
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    assertTrue(assertID,expected !=actual);
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertNotEquals(DOMTestCase test, String assertID, double expected, double actual) {
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(expected == actual) {
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      assertTrue(assertID,expected != actual);
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean same(Object expected, Object actual) {
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    boolean equals = (expected == actual);
364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(!equals && expected != null && expected instanceof Node &&
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      actual != null && actual instanceof Node) {
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      //
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      //  can use Node.isSame eventually
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return equals;
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean equalsIgnoreCase(String expected, String actual) {
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return expected.equalsIgnoreCase(actual);
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean equalsIgnoreCase(Collection expected, Collection actual) {
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    int size = expected.size();
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    boolean equals = (expected != null && actual != null && size == actual.size());
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(equals) {
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      List expectedArray = new ArrayList(expected);
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String expectedString;
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String actualString;
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Iterator actualIter = actual.iterator();
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Iterator expectedIter;
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      while(actualIter.hasNext() && equals) {
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        actualString = (String) actualIter.next();
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        expectedIter = expectedArray.iterator();
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        equals = false;
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        while(expectedIter.hasNext() && !equals) {
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          expectedString = (String) expectedIter.next();
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          if(actualString.equalsIgnoreCase(expectedString)) {
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            equals = true;
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            expectedArray.remove(expectedString);
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          }
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return equals;
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean equalsIgnoreCase(List expected, List actual) {
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    int size = expected.size();
403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    boolean equals = (expected != null && actual != null && size == actual.size());
404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(equals) {
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String expectedString;
406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String actualString;
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      for(int i = 0; i < size; i++) {
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        expectedString = (String) expected.get(i);
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        actualString = (String) actual.get(i);
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if(!expectedString.equalsIgnoreCase(actualString)) {
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          equals = false;
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          break;
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return equals;
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean equals(String expected, String actual) {
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return expected.equals(actual);
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean equals(int expected, int actual) {
424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return expected == actual;
425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean equals(boolean expected, boolean actual) {
428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return expected == actual;
429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean equals(double expected, double actual) {
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return expected == actual;
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean equals(Collection expected, Collection actual) {
436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    int size = expected.size();
437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    boolean equals = (expected != null && actual != null && size == actual.size());
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(equals) {
439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      List expectedArray = new ArrayList(expected);
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Object expectedObj;
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Object actualObj;
442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Iterator actualIter = actual.iterator();
443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Iterator expectedIter;
444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      while(actualIter.hasNext() && equals) {
445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        actualObj = actualIter.next();
446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        expectedIter = expectedArray.iterator();
447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        equals = false;
448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        while(expectedIter.hasNext() && !equals) {
449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          expectedObj = expectedIter.next();
450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          if(expectedObj != actualObj && expectedObj.equals(actualObj)) {
451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            equals = true;
452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            expectedArray.remove(expectedObj);
453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          }
454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return equals;
458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean equals(List expected, List actual) {
461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    int size = expected.size();
462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    boolean equals = (expected != null && actual != null && size == actual.size());
463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if(equals) {
464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Object expectedObj;
465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Object actualObj;
466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      for(int i = 0; i < size; i++) {
467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        expectedObj = expected.get(i);
468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        actualObj = actual.get(i);
469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if(!expectedObj.equals(actualObj)) {
470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          equals = false;
471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          break;
472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return equals;
476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public int size(Collection collection) {
479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return collection.size();
480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public int size(NamedNodeMap collection) {
483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return collection.getLength();
484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public int size(NodeList collection) {
487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return collection.getLength();
488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}