[369017] Provide api for determining web context root providing related ear project
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/web/operations/AddWebArtifactOperationTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/web/operations/AddWebArtifactOperationTest.java
index 34e03b6..d43870e 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/web/operations/AddWebArtifactOperationTest.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/web/operations/AddWebArtifactOperationTest.java
@@ -23,7 +23,6 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.IType;
 import org.eclipse.jdt.core.JavaCore;
@@ -32,11 +31,13 @@
 import org.eclipse.jst.j2ee.common.Listener;
 import org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties;
 import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
+import org.eclipse.jst.j2ee.internal.plugin.J2EEPreferences;
 import org.eclipse.jst.j2ee.internal.web.operations.NewFilterClassDataModelProvider;
 import org.eclipse.jst.j2ee.internal.web.operations.NewListenerClassDataModelProvider;
 import org.eclipse.jst.j2ee.internal.web.operations.NewServletClassDataModelProvider;
 import org.eclipse.jst.j2ee.model.IModelProvider;
 import org.eclipse.jst.j2ee.model.ModelProviderManager;
+import org.eclipse.jst.j2ee.project.WebUtilities;
 import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit;
 import org.eclipse.jst.j2ee.webapplication.Filter;
 import org.eclipse.jst.j2ee.webapplication.FilterMapping;
@@ -55,6 +56,9 @@
 		INewJavaClassDataModelProperties {
 	
     public static final String WEB_PROJECT_NAME = "WebProject"; //$NON-NLS-1$
+    public static final String EAR_PROJECT_NAME = "EarProject"; //$NON-NLS-1$
+    
+    public static final String WEB_CONTEXT_ROOT = "WebRoot"; //$NON-NLS-1$
     
     public static final String PACKAGE = "test"; //$NON-NLS-1$
     
@@ -360,12 +364,12 @@
 	}
 
     private void enableJETEmitter() {
-    	Preferences preferences = J2EEPlugin.getDefault().getPluginPreferences();
+    	J2EEPreferences preferences = J2EEPlugin.getDefault().getJ2EEPreferences();
 		preferences.setValue(J2EEPlugin.DYNAMIC_TRANSLATION_OF_JET_TEMPLATES_PREF_KEY, true);
 	}
 
 	private void disableJETEmitter() {
-		Preferences preferences = J2EEPlugin.getDefault().getPluginPreferences();
+		J2EEPreferences preferences = J2EEPlugin.getDefault().getJ2EEPreferences();
 		preferences.setValue(J2EEPlugin.DYNAMIC_TRANSLATION_OF_JET_TEMPLATES_PREF_KEY, false);
 	}
 
@@ -413,5 +417,26 @@
 		assertNotNull("Source file for Java type " + fullyQualifiedName + " not found", file);
 		assertTrue(file.exists());
     }
+
+	public void testDefaultWebUtilityContextRoot() throws Exception {
+		IDataModel dm = WebProjectCreationOperationTest.getWebDataModel(
+				WEB_PROJECT_NAME, EAR_PROJECT_NAME, null, null, null, JavaEEFacetConstants.WEB_25, true);
+    	runAndVerify(dm);
+		
+		IProject proj = ProjectUtilities.getProject(WEB_PROJECT_NAME);
+		IProject earproj = ProjectUtilities.getProject(EAR_PROJECT_NAME);
+	
+		assertEquals(WebUtilities.getServerContextRoot(proj, earproj),WEB_PROJECT_NAME);
+	}
+	public void testWebUtilityContextRoot() throws Exception {
+		IDataModel dm = WebProjectCreationOperationTest.getWebDataModel(
+				WEB_PROJECT_NAME, EAR_PROJECT_NAME, WEB_CONTEXT_ROOT, null, null, JavaEEFacetConstants.WEB_25, true);
+    	runAndVerify(dm);
+		
+		IProject proj = ProjectUtilities.getProject(WEB_PROJECT_NAME);
+		IProject earproj = ProjectUtilities.getProject(EAR_PROJECT_NAME);
+	
+		assertEquals(WebUtilities.getServerContextRoot(proj, earproj),WEB_CONTEXT_ROOT);
+	}
 	
 }