mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-15 19:26:42 +08:00
fix: full Unicode support in xml (#7428)
This commit is contained in:

committed by
Manol Donev

parent
250eb31c6e
commit
b8659e67c3
@ -54,6 +54,32 @@ export var test_XmlParser_EntityReferencesInAttributeValuesAreDecoded = function
|
|||||||
TKUnit.assert(data === "<>\"&'", "Expected result: <>\"&'; Actual result: " + data + ";");
|
TKUnit.assert(data === "<>\"&'", "Expected result: <>\"&'; Actual result: " + data + ";");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export var test_XmlParser_UnicodeEntitiesAreDecoded = function () {
|
||||||
|
var data;
|
||||||
|
var xmlParser = new xmlModule.XmlParser(function (event: xmlModule.ParserEvent) {
|
||||||
|
switch (event.eventType) {
|
||||||
|
case xmlModule.ParserEventType.Text:
|
||||||
|
data = event.data;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
xmlParser.parse("<element>🤣✓</element>");
|
||||||
|
TKUnit.assert(data === "\uD83E\uDD23\u2713", "Expected result: \uD83E\uDD23\u2713; Actual result: " + data + ";");
|
||||||
|
};
|
||||||
|
|
||||||
|
export var test_XmlParser_UnicodeEntitiesInAttributeValuesAreDecoded = function () {
|
||||||
|
var data;
|
||||||
|
var xmlParser = new xmlModule.XmlParser(function (event: xmlModule.ParserEvent) {
|
||||||
|
switch (event.eventType) {
|
||||||
|
case xmlModule.ParserEventType.StartElement:
|
||||||
|
data = event.attributes["text"];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
xmlParser.parse("<Label text=\"🤣✓\"/>");
|
||||||
|
TKUnit.assert(data === "\uD83E\uDD23\u2713", "Expected result: \uD83E\uDD23\u2713; Actual result: " + data + ";");
|
||||||
|
};
|
||||||
|
|
||||||
export var test_XmlParser_OnErrorIsCalledWhenAnErrorOccurs = function () {
|
export var test_XmlParser_OnErrorIsCalledWhenAnErrorOccurs = function () {
|
||||||
var e;
|
var e;
|
||||||
var xmlParser = new xmlModule.XmlParser(
|
var xmlParser = new xmlModule.XmlParser(
|
||||||
|
@ -188,10 +188,10 @@ function rpEntities(s, d, x, z) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (d) {
|
if (d) {
|
||||||
return String.fromCharCode(d);
|
return String.fromCodePoint(d);
|
||||||
};
|
};
|
||||||
|
|
||||||
return String.fromCharCode(parseInt(x, 16));
|
return String.fromCodePoint(parseInt(x, 16));
|
||||||
};
|
};
|
||||||
|
|
||||||
function unEntities(s, i) {
|
function unEntities(s, i) {
|
||||||
|
@ -100,17 +100,17 @@ function _HandleAmpEntities(found: string, decimalValue: string, hexValue: strin
|
|||||||
}
|
}
|
||||||
const res = _ampCodes.get(wordValue);
|
const res = _ampCodes.get(wordValue);
|
||||||
if (res) {
|
if (res) {
|
||||||
return String.fromCharCode(res);
|
return String.fromCodePoint(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Invalid word; so we just return it
|
// Invalid word; so we just return it
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
if (decimalValue) {
|
if (decimalValue) {
|
||||||
return String.fromCharCode(parseInt(decimalValue, 10));
|
return String.fromCodePoint(parseInt(decimalValue, 10));
|
||||||
}
|
}
|
||||||
|
|
||||||
return String.fromCharCode(parseInt(hexValue, 16));
|
return String.fromCodePoint(parseInt(hexValue, 16));
|
||||||
}
|
}
|
||||||
|
|
||||||
export class XmlParser implements definition.XmlParser {
|
export class XmlParser implements definition.XmlParser {
|
||||||
|
Reference in New Issue
Block a user