use of org.eclipse.wst.jsdt.web.core.javascript.IJsTranslation in project webtools.sourceediting by eclipse.
the class TestHtmlTranslation method testMangleMultipleMixedServerSideInJSwithXMLcomment_and_CheckProblems.
public void testMangleMultipleMixedServerSideInJSwithXMLcomment_and_CheckProblems() {
// get model
String fileName = getName() + ".html";
IStructuredModel structuredModel = getSharedModel(fileName, "<script> <!-- \nvar text = <? serverObject.getText() ?>; <%=\"a\"%> <%=\"b\"%> <? 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", " \nvar text = _$tag_______________________; _$tag___ _$tag___ _$tag________________________$tag___ ", translated);
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 declaration not found ", 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 testScriptLocationsWereRecorded.
public void testScriptLocationsWereRecorded() {
// get model
String fileName = getName() + ".html";
String dojoCall = "\ndojo.xhr(\"x\"); \n";
IStructuredModel structuredModel = getSharedModel(fileName, "<div onClick=\"return myMethod();\" onblur=\"return myMethod2();\">\n<script >" + dojoCall + "</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"));
assertNotSame("script locations not returned by translation", null, translation.getScriptPositions());
int expectedOffset = structuredModel.getStructuredDocument().get().indexOf(dojoCall);
assertEquals("script location not returned by translation", expectedOffset, translation.getScriptPositions()[0].getOffset());
assertEquals("script location length incorrect in translation", dojoCall.length(), translation.getScriptPositions()[0].getLength());
// release model
structuredModel.releaseFromRead();
}
use of org.eclipse.wst.jsdt.web.core.javascript.IJsTranslation in project webtools.sourceediting by eclipse.
the class TestHtmlTranslation method testMangleServerSide2InJSCheckProblems.
public void testMangleServerSide2InJSCheckProblems() {
// get model
String fileName = getName() + ".html";
IStructuredModel structuredModel = getSharedModel(fileName, "<script> 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("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 testMangleServerSideAndClientTagInJS.
public void testMangleServerSideAndClientTagInJS() {
// get model
String fileName = getName() + ".html";
IStructuredModel structuredModel = getSharedModel(fileName, "<script> var a = <custom:tag/>5;\nif(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("translation empty", translated.length() > 5);
assertTrue("server-side script block included\n" + translated, translated.indexOf("<%") < 0);
assertTrue("server-side script block included\n" + translated, translated.indexOf("%>") < 0);
assertTrue("tag included\n" + translated, translated.indexOf("custom") < 0);
assertTrue("tag included\n" + translated, translated.indexOf("/>") < 0);
assertTrue("var dropped\n" + translated, translated.indexOf("var a = ") > -1);
assertTrue("if dropped\n" + translated, translated.indexOf("5;\nif(a <") > -1);
assertTrue("block dropped\n" + translated, translated.indexOf(") {} ; ") > -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 testMangleTagAndServerSideInJS.
public void testMangleTagAndServerSideInJS() {
// get model
String fileName = getName() + ".html";
IStructuredModel structuredModel = getSharedModel(fileName, "<script> var a = <%= 4 %>5;\nif(a < <custom:tag/>) {} ; </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("server-side script block included\n" + translated, translated.indexOf("<%") < 0);
assertTrue("server-side script block included\n" + translated, translated.indexOf("%>") < 0);
assertTrue("tag included\n" + translated, translated.indexOf("custom") < 0);
assertTrue("tag included\n" + translated, translated.indexOf("/>") < 0);
assertTrue("var dropped\n" + translated, translated.indexOf("var a = ") > -1);
assertTrue("if dropped\n" + translated, translated.indexOf("5;\nif(a < ") > -1);
assertTrue("block dropped\n" + translated, translated.indexOf(") {} ; ") > -1);
assertTrue("problems found in translation ", translation.getProblems().isEmpty());
// release model
structuredModel.releaseFromRead();
}
Aggregations