forked from extern/nushell
Support for disabling automatic escaping in to xml (#11536)
# Description This PR addresses #11525 by adding `--partial-escape` which makes `to xml` only escape `<>&` in text and `<>&"` in comments. This PR also fixes issue where comment and PI content was escaped even though [it should not be](https://stackoverflow.com/a/46637835) # User-Facing Changes Correct comments and PIs `to xml --partial-escape` flag to emit less escaped characters # Tests + Formatting Added tests for specified issues
This commit is contained in:
@ -58,3 +58,36 @@ fn to_xml_error_tag_not_string() {
|
||||
|
||||
assert!(actual.err.contains("not a string"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn to_xml_partial_escape() {
|
||||
let actual = nu!(
|
||||
cwd: "tests/fixtures/formats", pipeline(
|
||||
r#"
|
||||
{
|
||||
tag: a
|
||||
attributes: { a: "'a'\\" }
|
||||
content: [ `'"qwe\` ]
|
||||
} | to xml --partial-escape
|
||||
"#
|
||||
));
|
||||
assert_eq!(actual.out, r#"<a a="'a'\">'"qwe\</a>"#);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn to_xml_pi_comment_not_escaped() {
|
||||
// PI and comment content should not be escaped
|
||||
let actual = nu!(
|
||||
cwd: "tests/fixtures/formats", pipeline(
|
||||
r#"
|
||||
{
|
||||
tag: a
|
||||
content: [
|
||||
{tag: ?qwe content: `"'<>&`}
|
||||
{tag: ! content: `"'<>&`}
|
||||
]
|
||||
} | to xml
|
||||
"#
|
||||
));
|
||||
assert_eq!(actual.out, r#"<a><?qwe "'<>&?><!--"'<>&--></a>"#);
|
||||
}
|
||||
|
Reference in New Issue
Block a user