package com.htmlhifive.h5.tools.codeassist.core.test.util;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.wst.jsdt.core.IJavaScriptProject;
import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
import org.eclipse.wst.jsdt.core.JavaScriptCore;
import org.eclipse.wst.jsdt.core.JavaScriptModelException;
import com.htmlhifive.tools.codeassist.core.H5CodeAssistCorePluginConst;
public class TestUtilAndConst {
public static final String TEST_CONFIG_PATH = "testPlugin/testjs/config/h5-code-assist.xml";
public static String createXmlString() {
StringBuilder sb = new StringBuilder();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sb.append("<h5-code-assist xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"h5-code-assist.xsd\">");
sb.append("<codeassists suffix=\"Controller\">");
sb.append("<codeassist method=\"test1\" returnType=\"ReturnType1\">");
sb.append("<helpdoc><![CDATA[<b>テストテスト</b>]]></helpdoc>");
sb.append("<argument name=\"arg1\" type=\"Object\"/>");
sb.append("<argument name=\"arg2\" type=\"Object\"/>");
sb.append("</codeassist>");
sb.append("</codeassists>");
sb.append("<codeassists suffix=\"View\">");
sb.append("<codeassist returnType=\"ReturnType2\" method=\"Test2\">");
sb.append("<helpdoc>ああああああ</helpdoc>");
sb.append("<argument name=\"arg\" type=\"String\"/>");
sb.append("</codeassist>");
sb.append("</codeassists>");
sb.append("</h5-code-assist>");
return sb.toString();
}
public static String createRealCode() {
StringBuilder sb = new StringBuilder();
sb.append("var ReturnType1 = function(){};");
sb.append(H5CodeAssistCorePluginConst.SEPARATOR_LINE);
sb.append("var arg1,arg2;");
sb.append(H5CodeAssistCorePluginConst.SEPARATOR_LINE);
sb.append("ReturnType1.prototype.returnString = function(){ return new ReturnType1();}");
sb.append(H5CodeAssistCorePluginConst.SEPARATOR_LINE);
return sb.toString();
}
public static IJavaScriptProject createTestProject() throws CoreException {
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
final IProject project = root.getProject("TestProject");
project.delete(true, null);
project.create(null);
project.open(null);
return JavaScriptCore.create(project);
}
public static IJavaScriptUnit createJavaScriptUnit(IJavaScriptProject project) throws JavaScriptModelException {
return project.getPackageFragments()[0].getJavaScriptUnit("sample.js").getWorkingCopy(null);
}
public static InputStream getTestConfigStream() {
try {
return new FileInputStream(TEST_CONFIG_PATH);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
}