dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
82 lines (80 loc) • 2.84 kB
JavaScript
define(["doh/runner", "dojox/string/BidiEngine"], function(doh, BidiEngine) {
var txt1 = "\u05d0\u05d1\u05d2 123 ABC 456.";
var lengthErr = "Wrong length of the map";
var contErr = "Wrong content of the map";
var engine = new BidiEngine();
var result;
doh.register("BidiEngine Maps and Levels Test",
[
{
name: "(1) Maps: implicit ltr -> visual ltr",
runTest: function (t) {
result = engine.bidiTransform(txt1, "ILYNN", "VLNNN");
t.is(engine.sourceToTarget.length, result.length, lengthErr);
t.is(engine.targetToSource.length, txt1.length, lengthErr);
dojo.forEach(engine.sourceToTarget, function (val, ind) {
t.is(txt1.charAt(val), result.charAt(ind), contErr);
});
dojo.forEach(engine.targetToSource, function (val, ind) {
t.is(txt1.charAt(ind), result.charAt(val), contErr);
});
}
},
{
name: "(2) Maps: implicit ltr -> visual rtl",
runTest: function (t) {
result = engine.bidiTransform(txt1, "ILYNN", "VRNNN");
t.is(engine.sourceToTarget.length, result.length, lengthErr);
t.is(engine.targetToSource.length, txt1.length, lengthErr);
dojo.forEach(engine.sourceToTarget, function (val, ind) {
t.is(txt1.charAt(val), result.charAt(ind), contErr);
});
dojo.forEach(engine.targetToSource, function (val, ind) {
t.is(txt1.charAt(ind), result.charAt(val), contErr);
});
}
},
{
name: "(3) Maps: implicit rtl -> visual ltr",
runTest: function (t) {
result = engine.bidiTransform(txt1, "IRYNN", "VLNNN");
t.is(engine.sourceToTarget.length, result.length, lengthErr);
t.is(engine.targetToSource.length, txt1.length, lengthErr);
dojo.forEach(engine.sourceToTarget, function (val, ind) {
t.is(txt1.charAt(val), result.charAt(ind), contErr);
});
dojo.forEach(engine.targetToSource, function (val, ind) {
t.is(txt1.charAt(ind), result.charAt(val), contErr);
});
}
},
{
name: "(4) Maps: implicit rtl -> visual rtl",
runTest: function (t) {
result = engine.bidiTransform(txt1, "ILYNN", "VRNNN");
t.is(engine.sourceToTarget.length, result.length, lengthErr);
t.is(engine.targetToSource.length, txt1.length, lengthErr);
dojo.forEach(engine.sourceToTarget, function (val, ind) {
t.is(txt1.charAt(val), result.charAt(ind), contErr);
});
dojo.forEach(engine.targetToSource, function (val, ind) {
t.is(txt1.charAt(ind), result.charAt(val), contErr);
});
}
},
{
name: "(5) Levels: ltr",
runTest: function (t) {
result = engine.bidiTransform(txt1, "ILYNN", "VRNNN");
t.is(engine.levels.join(""), "1111222000000000", contErr);
}
},
{
name: "(6) Levels: rtl",
runTest: function (t) {
result = engine.bidiTransform(txt1, "IRYNN", "VLNNN");
t.is(engine.levels.join(""), "1111222122222221", contErr);
}
}
]);
});