Author: scabanovich
Date: 2011-12-02 19:18:52 -0500 (Fri, 02 Dec 2011)
New Revision: 36910
Added:
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/WebContent/WEB-INF/web.xml
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/aFolder/
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/aFolder/WEB-INF/
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/target/m2e-wtp/web-resources/WEB-INF/
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebValidationTestSetup.java
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebXMLValidationTest.java
Modified:
trunk/jst/tests/org.jboss.tools.jst.web.test/META-INF/MANIFEST.MF
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/.classpath
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/JstWebAllTests.java
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebUtilTest.java
Log:
JBIDE-10161
https://issues.jboss.org/browse/JBIDE-10161
Test added that derived resources are excluded from JBoss Tools validation.
Modified: trunk/jst/tests/org.jboss.tools.jst.web.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/jst/tests/org.jboss.tools.jst.web.test/META-INF/MANIFEST.MF 2011-12-03 00:12:28
UTC (rev 36909)
+++ trunk/jst/tests/org.jboss.tools.jst.web.test/META-INF/MANIFEST.MF 2011-12-03 00:18:52
UTC (rev 36910)
@@ -4,11 +4,18 @@
Bundle-SymbolicName: org.jboss.tools.jst.web.test;singleton:=true
Bundle-Version: 3.3.0.qualifier
Require-Bundle: org.jboss.tools.jst.web,
+ org.jboss.tools.common.base.test,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.jboss.tools.common.el.core,
+ org.jboss.tools.jst.web.kb,
+ org.jboss.tools.common.validation,
org.junit,
org.jboss.tools.tests,
org.eclipse.jst.standard.schemas,
+ org.eclipse.wst.common.frameworks;bundle-version="1.2.0",
org.eclipse.ui,
- org.eclipse.wst.validation
+ org.eclipse.wst.validation;bundle-version="1.2.0"
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %Bundle-Vendor.0
Export-Package: org.jboss.tools.jst.web.test
Modified: trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/.classpath
===================================================================
---
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/.classpath 2011-12-03
00:12:28 UTC (rev 36909)
+++
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/.classpath 2011-12-03
00:18:52 UTC (rev 36910)
@@ -1,16 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
- <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_20">
- <attributes>
- <attribute name="owner.project.facets" value="java"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con"
path="org.eclipse.jst.server.core.container/org.jboss.ide.eclipse.as.core.server.runtime.runtimeTarget/JBoss
6.x Runtime">
- <attributes>
- <attribute name="owner.project.facets" value="jst.web"/>
- </attributes>
- </classpathentry>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con"
path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con"
path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="output" path="build/classes"/>
Added:
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/WebContent/WEB-INF/web.xml
===================================================================
---
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/WebContent/WEB-INF/web.xml
(rev 0)
+++
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/WebContent/WEB-INF/web.xml 2011-12-03
00:18:52 UTC (rev 36910)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+ <display-name>jsf</display-name>
+ <listener>
+ <listener-class>abc</listener-class>
+ </listener>
+</web-app>
Property changes on:
trunk/jst/tests/org.jboss.tools.jst.web.test/projects/testWebProject/WebContent/WEB-INF/web.xml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/JstWebAllTests.java
===================================================================
---
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/JstWebAllTests.java 2011-12-03
00:12:28 UTC (rev 36909)
+++
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/JstWebAllTests.java 2011-12-03
00:18:52 UTC (rev 36910)
@@ -16,19 +16,17 @@
import org.jboss.tools.test.util.ProjectImportTestSetup;
public class JstWebAllTests {
-
+ public static final String PLUGIN_ID = "org.jboss.tools.jst.web.test";
public static final String PROJECT_NAME = "testWebProject";
- private static final String PROJECT_PATH = "/projects/" + PROJECT_NAME;
+ public static final String PROJECT_PATH = "/projects/" + PROJECT_NAME;
public static Test suite() {
TestSuite suite = new TestSuite(JstWebAllTests.class.getName());
suite.addTestSuite(WebContentAssistProviderTest.class);
- suite.addTestSuite(BuilderTest.class);
- suite.addTest(new ProjectImportTestSetup(new TestSuite(
- WebUtilTest.class),
- "org.jboss.tools.jst.web.test", //$NON-NLS-1$
- PROJECT_PATH, //$NON-NLS-1$
- PROJECT_NAME));
+// suite.addTestSuite(BuilderTest.class);
+ suite.addTest(new WebValidationTestSetup(new TestSuite(
+ WebUtilTest.class,
+ WebXMLValidationTest.class)));
return suite;
}
}
\ No newline at end of file
Modified:
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebUtilTest.java
===================================================================
---
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebUtilTest.java 2011-12-03
00:12:28 UTC (rev 36909)
+++
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebUtilTest.java 2011-12-03
00:18:52 UTC (rev 36910)
@@ -14,8 +14,12 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.resources.ResourcesPlugin;
+import org.jboss.tools.common.base.test.validation.TestUtil;
import org.jboss.tools.jst.web.WebUtils;
+import org.jboss.tools.test.util.ProjectImportTestSetup;
+import org.jboss.tools.test.util.ResourcesUtils;
/**
* @author Alexey Kazakov
@@ -29,11 +33,29 @@
*/
@Override
protected void setUp() throws Exception {
- project =
ResourcesPlugin.getWorkspace().getRoot().getProject(JstWebAllTests.PROJECT_NAME);
- IResource target = project.getFolder("target");
- target.setDerived(true, null);
+ project = getTestProject();
}
+ public IProject getTestProject() {
+ if(project==null) {
+ try {
+ project = findTestProject();
+ if(project==null || !project.exists()) {
+ project = ResourcesUtils.importProject(JstWebAllTests.PLUGIN_ID,
JstWebAllTests.PROJECT_PATH);
+ TestUtil._waitForValidation(project);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail("Can't import CDI test project: " + e.getMessage());
+ }
+ }
+ return project;
+ }
+
+ public static IProject findTestProject() {
+ return
ResourcesPlugin.getWorkspace().getRoot().getProject(JstWebAllTests.PROJECT_NAME);
+ }
+
/**
* See
https://issues.jboss.org/browse/JBIDE-9766
* @throws Exception
Added:
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebValidationTestSetup.java
===================================================================
---
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebValidationTestSetup.java
(rev 0)
+++
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebValidationTestSetup.java 2011-12-03
00:18:52 UTC (rev 36910)
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jst.web.test;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.jboss.tools.common.base.test.validation.TestUtil;
+import org.jboss.tools.test.util.JobUtils;
+import org.jboss.tools.test.util.ResourcesUtils;
+
+/**
+ * @author Viacheslav Kabanovich
+ */
+public class WebValidationTestSetup extends TestSetup {
+
+ protected IProject project;
+
+ public WebValidationTestSetup(Test test) {
+ super(test);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ project = getTestProject();
+
+ boolean state = ResourcesUtils.setBuildAutomatically(false);
+ IResource target = project.getFolder("target");
+ target.setDerived(true, null);
+ project.build(IncrementalProjectBuilder.FULL_BUILD, null);
+ TestUtil._waitForValidation(project);
+ ResourcesUtils.setBuildAutomatically(state);
+ }
+
+ public IProject getTestProject() {
+ if(project==null) {
+ try {
+ project = findTestProject();
+ if(project==null || !project.exists()) {
+ project = ResourcesUtils.importProject(JstWebAllTests.PLUGIN_ID,
JstWebAllTests.PROJECT_PATH);
+ TestUtil._waitForValidation(project);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail("Can't import CDI test project: " + e.getMessage());
+ }
+ }
+ return project;
+ }
+
+ public static IProject findTestProject() {
+ return
ResourcesPlugin.getWorkspace().getRoot().getProject(JstWebAllTests.PROJECT_NAME);
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ project.delete(true, true, null);
+ JobUtils.waitForIdle();
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebValidationTestSetup.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebXMLValidationTest.java
===================================================================
---
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebXMLValidationTest.java
(rev 0)
+++
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebXMLValidationTest.java 2011-12-03
00:18:52 UTC (rev 36910)
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jst.web.test;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.jboss.tools.common.base.test.validation.TestUtil;
+import org.jboss.tools.common.validation.ValidatorManager;
+import org.jboss.tools.jst.web.WebUtils;
+import org.jboss.tools.jst.web.validation.WebXMLCoreValidator;
+import org.jboss.tools.test.util.JobUtils;
+import org.jboss.tools.test.util.ProjectImportTestSetup;
+import org.jboss.tools.test.util.ResourcesUtils;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class WebXMLValidationTest extends TestCase {
+
+ private IProject project;
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws Exception {
+ project = ProjectImportTestSetup.loadProject(JstWebAllTests.PROJECT_NAME);
+ IResource target = project.getFolder("target");
+ target.setDerived(true, null);
+ }
+
+ public void testValidationInDerived() throws Exception {
+ //Check first that original web.xml contains errors.
+ String path0 = "WebContent/WEB-INF/web.xml";
+ IFile webxml = project.getFile(path0);
+ assertTrue(webxml.exists());
+ IMarker[] markers = webxml.findMarkers(WebXMLCoreValidator.PROBLEM_TYPE, false,
IResource.DEPTH_ZERO);
+ assertTrue(markers.length > 0);
+
+ //Now we will copy that original web.xml to different folders and check incremental
validation.
+
+ //Check that file added to a non-derived folder is validated incrementally.
+ String path1 = "aFolder/WEB-INF/web.xml";
+ IFile webxml1 = project.getFile(path1);
+ replaceFile(project, path0, path1);
+ markers = webxml1.findMarkers(WebXMLCoreValidator.PROBLEM_TYPE, false,
IResource.DEPTH_ZERO);
+ assertTrue(markers.length > 0);
+ for (IMarker m: markers) {
+ System.out.println(m.getAttribute(IMarker.MESSAGE));
+ }
+
+ //Check that added to a derived folder, file will be skipped at incremental
validation.
+ String path2 = "target/m2e-wtp/web-resources/WEB-INF/web.xml";
+ IFile webxml2 = project.getFile(path2);
+ replaceFile(project, path0, path2);
+ markers = webxml2.findMarkers(WebXMLCoreValidator.PROBLEM_TYPE, false,
IResource.DEPTH_ZERO);
+ assertTrue(markers.length == 0);
+ }
+
+ public static void replaceFile(IProject project, String sourcePath, String targetPath)
throws CoreException {
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ try {
+ IFile target = project.getFile(new Path(targetPath));
+ IFile source = project.getFile(new Path(sourcePath));
+ assertTrue(source.exists());
+ ValidatorManager.setStatus(ValidatorManager.RUNNING);
+ if(!target.exists()) {
+ target.create(source.getContents(), true, new NullProgressMonitor());
+ } else {
+ target.setContents(source.getContents(), true, false, new NullProgressMonitor());
+ }
+ TestUtil.validate(target);
+ } finally {
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ JobUtils.waitForIdle();
+ }
+ }
+
+}
\ No newline at end of file
Property changes on:
trunk/jst/tests/org.jboss.tools.jst.web.test/src/org/jboss/tools/jst/web/test/WebXMLValidationTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain