use of org.eclipse.wst.jsdt.web.core.javascript.IJsTranslation in project webtools.sourceediting by eclipse.
the class TestHtmlTranslation method testMangleTagInJS.
public void testMangleTagInJS() {
// get model
String fileName = getName() + ".html";
IStructuredModel structuredModel = getSharedModel(fileName, "<script> var a = <custom:tag/>5; if(a < 4) {} ; </script>");
assertNotNull("missing test model", structuredModel);
// do translation
JsTranslationAdapterFactory.setupAdapterFactory(structuredModel);
JsTranslationAdapter translationAdapter = (JsTranslationAdapter) ((IDOMModel) structuredModel).getDocument().getAdapterFor(IJsTranslation.class);
IJsTranslation translation = translationAdapter.getJsTranslation(false);
String translated = translation.getJsText();
assertTrue("tag included", translated.indexOf("<custom") < 0);
assertTrue("tag included", translated.indexOf("/>") < 0);
assertTrue("problems found in translation ", translation.getProblems().isEmpty());
// release model
structuredModel.releaseFromRead();
}
use of org.eclipse.wst.jsdt.web.core.javascript.IJsTranslation in project webtools.sourceediting by eclipse.
the class TestHtmlTranslation method testMangleMultipleMixedServerSideAndClientTagInJS_and_CheckProblems.
public void testMangleMultipleMixedServerSideAndClientTagInJS_and_CheckProblems() {
// get model
String fileName = getName() + ".html";
IStructuredModel structuredModel = getSharedModel(fileName, "<script> var text = <? serverObject.getText() ?>; <%=\"a\"%> <%=\"b\"%> <server:tag/> <? serverObject.getText() ?><%=\"c\"%> </script>");
assertNotNull("missing test model", structuredModel);
// do translation
JsTranslationAdapterFactory.setupAdapterFactory(structuredModel);
JsTranslationAdapter translationAdapter = (JsTranslationAdapter) ((IDOMModel) structuredModel).getDocument().getAdapterFor(IJsTranslation.class);
IJsTranslation translation = translationAdapter.getJsTranslation(false);
String translated = translation.getJsText();
assertEquals("translated contents not as expected", " var text = _$tag_______________________; _$tag___ _$tag___ _$tag________ _$tag________________________$tag___ ", translated);
assertTrue("translation empty", translated.length() > 5);
assertTrue("server-side script block included", translated.indexOf("<?") < 0);
assertTrue("server-side script block included", translated.indexOf("?>") < 0);
assertTrue("server-side script block included", translated.indexOf("<%") < 0);
assertTrue("server-side script block included", translated.indexOf("%>") < 0);
assertTrue("var dropped", translated.indexOf("var text = ") > -1);
assertTrue("problems found in translation ", translation.getProblems().isEmpty());
// release model
structuredModel.releaseFromRead();
}
use of org.eclipse.wst.jsdt.web.core.javascript.IJsTranslation in project webtools.sourceediting by eclipse.
the class TestHtmlTranslation method testTwoFunctionReturnsInEventHandlers.
public void testTwoFunctionReturnsInEventHandlers() {
// get model
String fileName = getName() + ".html";
IStructuredModel structuredModel = getSharedModel(fileName, "<div onClick=\"return myMethod();\" onblur=\"return myMethod2();\">\n<script >\ndojo.xhr(\"x\"); \n</script>");
assertNotNull("missing test model", structuredModel);
// do translation
JsTranslationAdapterFactory.setupAdapterFactory(structuredModel);
JsTranslationAdapter translationAdapter = (JsTranslationAdapter) ((IDOMModel) structuredModel).getDocument().getAdapterFor(IJsTranslation.class);
IJsTranslation translation = translationAdapter.getJsTranslation(false);
String translated = translation.getJsText();
assertEquals("dojo.xhr() invocation moved but not properly mapped", structuredModel.getStructuredDocument().get().indexOf("dojo.xhr(\"x\");"), ((JsTranslation) translation).getWebPageOffset(translated.indexOf("dojo.xhr(\"x\");")));
assertEquals("translated content differs", " (function(){return myMethod();;})();(function(){return myMethod2();;})(); \n \ndojo.xhr(\"x\"); \n", translated);
StringBuffer problems = new StringBuffer();
translation.reconcileCompilationUnit();
List problemList = translation.getProblems();
for (int i = 0; i < problemList.size(); i++) {
problems.append(((IProblem) problemList.get(i)).getMessage());
problems.append('\n');
}
assertEquals("problems were found", "", problems.toString());
assertEquals("offsets didn't match", structuredModel.getStructuredDocument().get().indexOf("dojo. \n"), translated.indexOf("dojo. \n"));
// release model
structuredModel.releaseFromRead();
}
use of org.eclipse.wst.jsdt.web.core.javascript.IJsTranslation in project webtools.sourceediting by eclipse.
the class TestHtmlTranslation method testEmptyEventHandlerValueCausesStringIndexOutOfBounds.
public void testEmptyEventHandlerValueCausesStringIndexOutOfBounds() throws Exception {
String fileName = getName() + ".html";
IStructuredModel structuredModel = getSharedModel(fileName, "<html><body><span onclick=\"\"></body></html>");
assertNotNull("missing test model", structuredModel);
JsTranslationAdapterFactory.setupAdapterFactory(structuredModel);
try {
// do translation
JsTranslationAdapter translationAdapter = (JsTranslationAdapter) ((IDOMModel) structuredModel).getDocument().getAdapterFor(IJsTranslation.class);
IJsTranslation translation = translationAdapter.getJsTranslation(false);
String translated = translation.getJsText();
} catch (StringIndexOutOfBoundsException e) {
fail(e.getMessage());
} finally {
if (structuredModel != null) {
structuredModel.releaseFromRead();
}
}
}
use of org.eclipse.wst.jsdt.web.core.javascript.IJsTranslation in project webtools.sourceediting by eclipse.
the class TestHtmlTranslation method testCDATAAroundJS2.
public void testCDATAAroundJS2() {
// get model
String fileName = getName() + ".html";
IStructuredModel structuredModel = getSharedModel(fileName, "<script><![CDATA[ var text = serverObject.getText() ]]></script>");
assertNotNull("missing test model", structuredModel);
// do translation
JsTranslationAdapterFactory.setupAdapterFactory(structuredModel);
JsTranslationAdapter translationAdapter = (JsTranslationAdapter) ((IDOMModel) structuredModel).getDocument().getAdapterFor(IJsTranslation.class);
IJsTranslation translation = translationAdapter.getJsTranslation(false);
String translated = translation.getJsText();
assertTrue("translation empty", translated.length() > 5);
assertTrue("CDATA start found", translated.indexOf("CDATA") < 0);
assertTrue("CDATA start found", translated.indexOf("[") < 0);
assertTrue("CDATA end found", translated.indexOf("]") < 0);
assertTrue("problems found in translation ", translation.getProblems().isEmpty());
// release model
structuredModel.releaseFromRead();
}
Aggregations