blob: bff4668e9871f94b886904e0e30d72f72aae4b73 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014, 2018 Obeo and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Obeo - initial API and implementation
* E.D.Willink (Obeo) - 425799 Validity View Integration
*******************************************************************************/
package org.eclipse.ocl.examples.validity.test;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringReader;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.ocl.examples.emf.validation.validity.Result;
import org.eclipse.ocl.examples.emf.validation.validity.Severity;
import org.eclipse.ocl.examples.emf.validation.validity.export.HTMLExporter;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.xml.sax.InputSource;
/**
* Class testing the HTMLExport class.
*/
public class HTMLExportOCLValidationResultTests extends AbstractExportOCLValidationResultTests
{
private static final String WARNING_NUMBER_XPATH_LOCATION = "//table[2]/tr[4]/td[2]"; //$NON-NLS-1$
private static final String INFO_NUMBER_XPATH_LOCATION = "//table[2]/tr[3]/td[2]"; //$NON-NLS-1$
private static final String ERROR_NUMBER_XPATH_LOCATION = "//table[2]/tr[5]/td[2]"; //$NON-NLS-1$
private static final String FAILURE_NUMBER_XPATH_LOCATION = "//table[2]/tr[6]/td[2]"; //$NON-NLS-1$
private static final String SUCCESS_NUMBER_XPATH_LOCATION = "//table[2]/tr[2]/td[2]"; //$NON-NLS-1$
private String exportedFileName = null;
private XPath xPathEngine = null;
protected void assertXPathTrue( @NonNull String contents, String expression) throws XPathExpressionException, CoreException, IOException {
InputSource stream = new InputSource(new StringReader(contents));
xPathEngine.compile(expression);
Object xPathResult = xPathEngine.evaluate(expression, stream, XPathConstants.BOOLEAN);
assertTrue("Expected \"" + expression + "\" to be true", (Boolean) xPathResult);
}
protected @NonNull String doTest() throws IOException {
String exported = exporter.export(rootNode, exportedFileName);
FileWriter writer = new FileWriter(exportedFileName);
writer.append(exported);
writer.close();
TEST_PROGRESS.println("exported " + ecoreResource.getURI());
return exported;
}
@Override
@Before
public void setUp() throws Exception {
super.setUp();
exportedFileName = getProjectFileName(getTestName() + ".html");
initExporter(HTMLExporter.EXPORTER_TYPE);
XPathFactory factory = XPathFactory.newInstance();
xPathEngine = factory.newXPath();
TEST_PROGRESS.println("xPathEngine = " + xPathEngine);
}
@Override
@After
public void tearDown() throws Exception {
super.tearDown();
}
/**
* Tests that the exported file contains the expected log for metrics
* section.
*
* @throws IOException
* @throws XPathExpressionException
* @throws CoreException
*/
@Test
public void testHTMLExport_LoggingMetricsWithNoSeverity()
throws XPathExpressionException, CoreException, IOException {
// initiate the test case
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE5_E_STRING)
.setSeverity(Severity.OK);
// launch the exporter
String exported = doTest();
// test the exported content
assertXPathTrue(exported, SUCCESS_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, INFO_NUMBER_XPATH_LOCATION + "=0"); //$NON-NLS-1$
assertXPathTrue(exported, WARNING_NUMBER_XPATH_LOCATION + "=0"); //$NON-NLS-1$
assertXPathTrue(exported, ERROR_NUMBER_XPATH_LOCATION + "=0"); //$NON-NLS-1$
assertXPathTrue(exported, FAILURE_NUMBER_XPATH_LOCATION + "=0"); //$NON-NLS-1$
}
/**
* Tests that the exported file contains the expected log for metrics
* section.
*
* @throws IOException
* @throws XPathExpressionException
* @throws CoreException
*/
@Test
public void testHTMLExport_LoggingMetricsWithInformationSeverity()
throws IOException, XPathExpressionException, CoreException {
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE5_E_STRING)
.setSeverity(Severity.OK);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE3_E_SHORT)
.setSeverity(Severity.INFO);
// launch the exporter
String exported = doTest();
assertXPathTrue(exported, SUCCESS_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, INFO_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, WARNING_NUMBER_XPATH_LOCATION + "=0"); //$NON-NLS-1$
assertXPathTrue(exported, ERROR_NUMBER_XPATH_LOCATION + "=0"); //$NON-NLS-1$
assertXPathTrue(exported, FAILURE_NUMBER_XPATH_LOCATION + "=0"); //$NON-NLS-1$
}
/**
* Tests that the exported file contains the expected log for metrics
* section.
*
* @throws IOException
* @throws XPathExpressionException
* @throws CoreException
*/
@Test
public void testHTMLExport_LoggingMetricsWithWarningSeverity()
throws IOException, XPathExpressionException, CoreException {
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE5_E_STRING)
.setSeverity(Severity.OK);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE3_E_SHORT)
.setSeverity(Severity.INFO);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE1_E_STRING)
.setSeverity(Severity.WARNING);
// launch the exporter
String exported = doTest();
assertXPathTrue(exported, SUCCESS_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, INFO_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, WARNING_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, ERROR_NUMBER_XPATH_LOCATION + "=0"); //$NON-NLS-1$
assertXPathTrue(exported, FAILURE_NUMBER_XPATH_LOCATION + "=0"); //$NON-NLS-1$
}
/**
* Tests that the exported file contains the expected log for metrics
* section.
*
* @throws IOException
* @throws XPathExpressionException
* @throws CoreException
*/
@Test
public void testHTMLExport_LoggingMetricsWithErrorSeverity()
throws IOException, XPathExpressionException, CoreException {
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE5_E_STRING)
.setSeverity(Severity.OK);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE3_E_SHORT)
.setSeverity(Severity.INFO);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE1_E_STRING)
.setSeverity(Severity.WARNING);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE2_E_STRING)
.setSeverity(Severity.ERROR);
// launch the exporter
String exported = doTest();
assertXPathTrue(exported, SUCCESS_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, INFO_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, WARNING_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, ERROR_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, FAILURE_NUMBER_XPATH_LOCATION + "=0"); //$NON-NLS-1$
}
/**
* Tests that the exported file contains the expected log for metrics
* section.
*
* @throws IOException
* @throws XPathExpressionException
* @throws CoreException
*/
@Test
public void testHTMLExport_LoggingMetricsWithFailureSeverity()
throws IOException, XPathExpressionException, CoreException {
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE5_E_STRING)
.setSeverity(Severity.OK);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE3_E_SHORT)
.setSeverity(Severity.INFO);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE1_E_STRING)
.setSeverity(Severity.WARNING);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE2_E_STRING)
.setSeverity(Severity.ERROR);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE4_E_STRING)
.setSeverity(Severity.FATAL);
// launch the exporter
String exported = doTest();
assertXPathTrue(exported, SUCCESS_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, INFO_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, WARNING_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, ERROR_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
assertXPathTrue(exported, FAILURE_NUMBER_XPATH_LOCATION + "=1"); //$NON-NLS-1$
}
/**
* Tests that the exported contents contains the expected diagnostics for a
* constraint.
*
* @throws XPathExpressionException
* @throws CoreException
* @throws IOException
*/
@Test
public void testHTMLExport_LogNullDiagnosticMessage()
throws XPathExpressionException, CoreException, IOException {
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE3_E_SHORT)
.setSeverity(Severity.INFO);
// launch the exporter
String exported = doTest();
assertXPathTrue(exported, "//table[3]/tr[2]/td[5]='null diagnostic message'"); //$NON-NLS-1$
}
/**
* Tests that the exported content contains the expected diagnostics for a
* constraint.
*
* @throws XPathExpressionException
* @throws CoreException
* @throws IOException
*/
@Test
public void testHTMLExport_LogInfoDiagnosticMessage()
throws XPathExpressionException, CoreException, IOException {
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE3_E_SHORT)
.setSeverity(Severity.INFO);
String diagnostic = "Diag INFO"; //$NON-NLS-1$
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE3_E_SHORT)
.setDiagnostic(diagnostic);
// launch the exporter
String exported = doTest();
assertXPathTrue(exported, "//table[3]/tr[2]/td[5]='" + diagnostic + "'"); //$NON-NLS-1$ //$NON-NLS-2$
}
@Test
public void testHTMLExport_ProducesOneLogHeading() throws IOException,
XPathExpressionException, CoreException {
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_ECLASS_CONSTRAINT, VALIDATABLE_E_CLASS3_ECLASS5)
.setSeverity(Severity.FATAL);
// launch the exporter
String exported = doTest();
// test heading
assertXPathTrue(exported, "//body/h2[2]='4.1. Failures'");//$NON-NLS-1$
}
@Test
public void testHTMLExport_ProducesAllLogHeadings() throws IOException,
XPathExpressionException, CoreException {
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_ECLASS_CONSTRAINT, VALIDATABLE_E_CLASS3_ECLASS5)
.setSeverity(Severity.FATAL);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_ECLASS1_CONSTRAINT, VALIDATABLE_ECLASS1_E1_ATT1).setSeverity(
Severity.ERROR);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EPACKAGE_CONSTRAINT, VALIDATABLE_ECORE_TEST).setSeverity(
Severity.FATAL);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE3_E_SHORT)
.setSeverity(Severity.WARNING);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_ECLASS2_CONSTRAINT, VALIDATABLE_E_CLASS2).setSeverity(
Severity.INFO);
// launch the exporter
String exported = doTest();
// test headings
assertXPathTrue(exported, "//body/h2[2]='4.1. Infos'");
assertXPathTrue(exported, "//body/h2[3]='4.2. Warnings'");
assertXPathTrue(exported, "//body/h2[4]='4.3. Errors'");
assertXPathTrue(exported, "//body/h2[5]='4.4. Failures'");
}
@Test
public void testHTMLExport_LogContent() throws IOException,
XPathExpressionException, CoreException {
// Initialize test case
for (Result result : results) {
result.setSeverity(Severity.OK);
}
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_ECLASS1_CONSTRAINT, VALIDATABLE_ECLASS1_E1_ATT1).setSeverity(
Severity.ERROR);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EPACKAGE_CONSTRAINT_2, VALIDATABLE_ECORE_TEST).setSeverity(
Severity.ERROR);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EPACKAGE_CONSTRAINT, VALIDATABLE_ECORE_TEST).setSeverity(
Severity.FATAL);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_ECLASS_CONSTRAINT, VALIDATABLE_E_CLASS3_ECLASS5)
.setSeverity(Severity.FATAL);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE3_E_SHORT)
.setSeverity(Severity.WARNING);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_ECLASS2_CONSTRAINT, VALIDATABLE_E_CLASS2).setSeverity(
Severity.INFO);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE5_E_STRING)
.setSeverity(Severity.INFO);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE1_E_STRING)
.setSeverity(Severity.WARNING);
// launch the exporter
String exported = doTest();
// test the expected exported content
// information
String expression = "count(//table[3]/tr[" //$NON-NLS-1$
+ "td[1]=' Resource: ecoreTest.ocl' " //$NON-NLS-1$
+ " and td[2]='eclass2_constraint'" //$NON-NLS-1$
+ " and contains(td[3],'eclass2_constraint')" //$NON-NLS-1$
+ " and td[4]='INFO'" //$NON-NLS-1$
+ "])=1"; //$NON-NLS-1$
assertXPathTrue(exported, expression);
expression = "count(//table[3]/tr[td[1]=' Resource: ecore.ocl' " //$NON-NLS-1$
+ " and td[2]='eattribute_constraint'" //$NON-NLS-1$
+ " and contains(td[3],'eattribute_constraint')" //$NON-NLS-1$
+ " and td[4]='INFO'])"; //$NON-NLS-1$
assertXPathTrue(exported, expression);
assertXPathTrue(exported, "count(//table[3]/tr)=3");
// information
expression = "//table[3]/tr[3]/td[1]=' Resource: ecore.ocl' " //$NON-NLS-1$
+ " and //table[3]/tr[3]/td[2]='eattribute_constraint'" //$NON-NLS-1$
+ " and contains(//table[3]/tr[3]/td[3],'eattribute_constraint')" //$NON-NLS-1$
+ " and //table[3]/tr[3]/td[4]='INFO'"; //$NON-NLS-1$
assertXPathTrue(exported, expression);
assertXPathTrue(exported, "count(//table[3]/tr)=3");
// error
expression = "count(//table[5]/tr[td[1]=' Resource: ecoreTest.ocl'" //$NON-NLS-1$
+ " and td[2]='eclass1_constraint'" //$NON-NLS-1$
+ " and contains(td[3],'eclass1_constraint')" //$NON-NLS-1$
+ " and td[4]='ERROR'])=1"; //$NON-NLS-1$
assertXPathTrue(exported, expression);
expression = "count(//table[5]/tr[td[1]=' Resource: ecore.ocl'" //$NON-NLS-1$
+ " and td[2]='epackage_constraint_2'" //$NON-NLS-1$
+ " and contains(td[3],'epackage_constraint_2')" //$NON-NLS-1$
+ " and td[4]='ERROR'])=1"; //$NON-NLS-1$
assertXPathTrue(exported, expression);
assertXPathTrue(exported, "count(//table[5]/tr)=3");
// fatal
expression = "count(//table[6]/tr[td[1]=' Resource: ecore.ocl'" //$NON-NLS-1$
+ " and td[2]='epackage_constraint'" //$NON-NLS-1$
+ " and contains(td[3],'epackage_constraint')" //$NON-NLS-1$
+ " and td[4]='FATAL'])=1"; //$NON-NLS-1$
assertXPathTrue(exported, expression);
expression = "count(//table[6]/tr[td[1]=' Resource: ecore.ocl'" //$NON-NLS-1$
+ " and td[2]='eclass_constraint'" //$NON-NLS-1$
+ " and contains(td[3],'eclass_constraint')" //$NON-NLS-1$
+ " and td[4]='FATAL'])=1"; //$NON-NLS-1$
assertXPathTrue(exported, expression);
assertXPathTrue(exported, "count(//table[6]/tr)=3");
}
@Test
public void testHTMLExport_Statistics() throws IOException,
XPathExpressionException, CoreException {
for (Result result : results) {
result.setSeverity(Severity.OK);
}
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_ECLASS1_CONSTRAINT, VALIDATABLE_ECLASS1_E1_ATT1).setSeverity(
Severity.ERROR);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EPACKAGE_CONSTRAINT_2, VALIDATABLE_ECORE_TEST).setSeverity(
Severity.ERROR);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EPACKAGE_CONSTRAINT, VALIDATABLE_ECORE_TEST).setSeverity(
Severity.FATAL);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_ECLASS_CONSTRAINT, VALIDATABLE_E_CLASS3_ECLASS5)
.setSeverity(Severity.FATAL);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_ECLASS2_CONSTRAINT, VALIDATABLE_E_CLASS2).setSeverity(
Severity.INFO);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE5_E_STRING)
.setSeverity(Severity.INFO);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE1_E_STRING)
.setSeverity(Severity.WARNING);
getResultOfValidatableNodeFromLabel(results,
CONSTRAINABLE_EATTRIBUTE_CONSTRAINT, VALIDATABLE_E_ATTRIBUTE3_E_SHORT)
.setSeverity(Severity.WARNING);
// launch the exporter
String exported = doTest();
// test output file name
assertXPathTrue(exported, "//table[1]/tr/td[2]='" + exportedFileName + "'");
// test resource validated
// assertXPathTrue(exported, "//ul[1]/li[1]='" + TEST_PROJECT_LOCATION + "/" + OCL_CONSTRAINTS_MODEL + "'");
assertXPathTrue(exported, "//ul[1]/li[1]='" + TEST_PROJECT_LOCATION + "/" + ECORE_MODEL_NAME + "'");
// assertXPathTrue(exported, "//ul[1]/li[3]='" + TEST_PROJECT_LOCATION + "/" + OCL_CONSTRAINTS_MODEL2 + "'");
assertXPathTrue(exported, "//ul[1]/li[2]='" + TEST_PROJECT_LOCATION + "/" + ECORE_MODEL_NAME3 + "'");
assertXPathTrue(exported, "//ul[1]/li[3]='" + TEST_PROJECT_LOCATION + "/" + ECORE_MODEL_NAME2 + "'");
// test author
assertXPathTrue(exported, "//table[1]/tr[2]/td[2]!=''");
// tests validation results
// Total number
assertXPathTrue(exported, "//body/table[2]/tr/td[2]=" + EXPECTED_RESULTS);
// Success
assertXPathTrue(exported, SUCCESS_NUMBER_XPATH_LOCATION + "=" + EXPECTED_SUCCESSES);
// Infos
assertXPathTrue(exported, INFO_NUMBER_XPATH_LOCATION + "=" + EXPECTED_INFOS);
// Warning
assertXPathTrue(exported, WARNING_NUMBER_XPATH_LOCATION + "=" + EXPECTED_WARNINGS);
// Errors
assertXPathTrue(exported, ERROR_NUMBER_XPATH_LOCATION + "=" + EXPECTED_ERRORS);
// Failures
assertXPathTrue(exported, FAILURE_NUMBER_XPATH_LOCATION + "=" + EXPECTED_FAILURES);
}
@Test
public void testHTMLExport_ModelsValidatedSuccessfully() throws IOException, XPathExpressionException, CoreException {
// launch the exporter
String exported = doTest();
// test output file name
assertXPathTrue(exported, "//table[1]/tr/td[2]='" + exportedFileName + "'");
// test resource validated
// assertXPathTrue(exported, "//ul[1]/li[1]='" + TEST_PROJECT_LOCATION + "/" + OCL_CONSTRAINTS_MODEL + "'");
assertXPathTrue(exported, "//ul[1]/li[1]='" + TEST_PROJECT_LOCATION + "/" + ECORE_MODEL_NAME + "'");
// assertXPathTrue(exported, "//ul[1]/li[3]='" + TEST_PROJECT_LOCATION + "/" + OCL_CONSTRAINTS_MODEL2 + "'");
assertXPathTrue(exported, "//ul[1]/li[2]='" + TEST_PROJECT_LOCATION + "/" + ECORE_MODEL_NAME3 + "'");
assertXPathTrue(exported, "//ul[1]/li[3]='" + TEST_PROJECT_LOCATION + "/" + ECORE_MODEL_NAME2 + "'");
// test author
assertXPathTrue(exported, "//table[1]/tr[2]/td[2]!=''");
// tests validation results
assertXPathTrue(exported, "//body/table[2]/tr/td[2]=0");
assertXPathTrue(exported, "//table[2]/tr[2]/td[2]=0");
assertXPathTrue(exported, "//table[2]/tr[3]/td[2]=0");
assertXPathTrue(exported, "//table[2]/tr[4]/td[2]=0");
assertXPathTrue(exported, "//table[2]/tr[5]/td[2]=0");
assertXPathTrue(exported, "//table[2]/tr[6]/td[2]=0");
// test logs results
assertXPathTrue(exported, "//p[1]='No log to display: models has been successfully validated.'");
}
}