Merge pull request #1487 from MacKLess/newline

Adds test to preserve newlines
This commit is contained in:
Liam Newman 2018-08-13 16:35:43 -07:00 committed by GitHub
commit fd4945f6b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 380 additions and 72 deletions

View File

@ -4704,6 +4704,197 @@ function run_html_tests(test_obj, Urlencoded, js_beautify, html_beautify, css_be
test_fragment('{{#if 1}}<span>{{content}}</span>{{/if}}');
//============================================================
// Preserve newlines false
reset_options();
set_name('Preserve newlines false');
opts.indent_size = 2;
opts.preserve_newlines = false;
bth(
'<div>\n' +
'\tfoo\n' +
'</div>',
// -- output --
'<div> foo </div>');
bth(
'<div>Should not</div>\n' +
'\n' +
'\n' +
'<div>preserve newlines</div>',
// -- output --
'<div>Should not</div>\n' +
'<div>preserve newlines</div>');
bth(
'<header>\n' +
' <h1>\n' +
'\n' +
'\n' +
' <ul>\n' +
'\n' +
' <li class="menuactive menuparent">\n' +
' <a>\n' +
' <span>Anita Koppe</span>\n' +
' </a>\n' +
'\n' +
'\n' +
' </li>\n' +
' </ul>\n' +
' </h1>\n' +
'</header>',
// -- output --
'<header>\n' +
' <h1>\n' +
' <ul>\n' +
' <li class="menuactive menuparent">\n' +
' <a>\n' +
' <span>Anita Koppe</span>\n' +
' </a>\n' +
' </li>\n' +
' </ul>\n' +
' </h1>\n' +
'</header>');
//============================================================
// Preserve newlines true
reset_options();
set_name('Preserve newlines true');
opts.indent_size = 1;
opts.indent_char = " ";
opts.preserve_newlines = true;
test_fragment(
'<div>\n' +
'\tfoo\n' +
'</div>');
//============================================================
// Preserve newlines true with zero max newline
reset_options();
set_name('Preserve newlines true with zero max newline');
opts.preserve_newlines = true;
opts.max_preserve_newlines = 0;
opts.indent_size = 2;
test_fragment(
'<div>Should</div>\n' +
'\n' +
'\n' +
'<div>preserve zero newlines</div>',
// -- output --
'<div>Should</div>\n' +
'<div>preserve zero newlines</div>');
bth(
'<header>\n' +
' <h1>\n' +
'\n' +
'\n' +
' <ul>\n' +
'\n' +
' <li class="menuactive menuparent">\n' +
' <a>\n' +
' <span>Anita Koppe</span>\n' +
' </a>\n' +
'\n' +
'\n' +
' </li>\n' +
' </ul>\n' +
' </h1>\n' +
'</header>',
// -- output --
'<header>\n' +
' <h1>\n' +
' <ul>\n' +
' <li class="menuactive menuparent">\n' +
' <a>\n' +
' <span>Anita Koppe</span>\n' +
' </a>\n' +
' </li>\n' +
' </ul>\n' +
' </h1>\n' +
'</header>');
//============================================================
// Preserve newlines true with 1 max newline
reset_options();
set_name('Preserve newlines true with 1 max newline');
opts.preserve_newlines = true;
opts.indent_size = 2;
opts.max_preserve_newlines = 1;
test_fragment(
'<div>Should</div>\n' +
'\n' +
'\n' +
'<div>preserve one newline</div>',
// -- output --
'<div>Should</div>\n' +
'\n' +
'<div>preserve one newline</div>');
bth(
'<header>\n' +
' <h1>\n' +
'\n' +
'\n' +
' <ul>\n' +
'\n' +
' <li class="menuactive menuparent">\n' +
' <a>\n' +
' <span>Anita Koppe</span>\n' +
' </a>\n' +
'\n' +
'\n' +
' </li>\n' +
' </ul>\n' +
' </h1>\n' +
'</header>',
// -- output --
'<header>\n' +
' <h1>\n' +
'\n' +
' <ul>\n' +
'\n' +
' <li class="menuactive menuparent">\n' +
' <a>\n' +
' <span>Anita Koppe</span>\n' +
' </a>\n' +
'\n' +
' </li>\n' +
' </ul>\n' +
' </h1>\n' +
'</header>');
//============================================================
// Preserve newlines true with null max newline
reset_options();
set_name('Preserve newlines true with null max newline');
opts.preserve_newlines = true;
opts.indent_size = 2;
opts.max_preserve_newlines = null;
test_fragment(
'<div>Should</div>\n' +
'\n' +
'\n' +
'<div>preserve zero newlines</div>');
bth(
'<header>\n' +
' <h1>\n' +
'\n' +
'\n' +
' <ul>\n' +
'\n' +
' <li class="menuactive menuparent">\n' +
' <a>\n' +
' <span>Anita Koppe</span>\n' +
' </a>\n' +
'\n' +
'\n' +
' </li>\n' +
' </ul>\n' +
' </h1>\n' +
'</header>');
//============================================================
// unformatted to prevent formatting changes
reset_options();
@ -5191,43 +5382,7 @@ function run_html_tests(test_obj, Urlencoded, js_beautify, html_beautify, css_be
reset_options();
//============================================================
set_name('preserve newline tests');
opts.indent_size = 1;
opts.indent_char = '\t';
opts.preserve_newlines = false;
bth('<div>\n\tfoo\n</div>', '<div> foo </div>');
opts.preserve_newlines = true;
bth('<div>\n\tfoo\n</div>');
// test preserve_newlines and max_preserve_newlines
opts.preserve_newlines = false;
bth('<div>Should not</div>\n\n\n' +
'<div>preserve newlines</div>',
'<div>Should not</div>\n' +
'<div>preserve newlines</div>');
opts.preserve_newlines = true;
opts.max_preserve_newlines = 0;
bth('<div>Should</div>\n\n\n' +
'<div>preserve zero newlines</div>',
'<div>Should</div>\n' +
'<div>preserve zero newlines</div>');
opts.max_preserve_newlines = 1;
bth('<div>Should</div>\n\n\n' +
'<div>preserve one newline</div>',
'<div>Should</div>\n\n' +
'<div>preserve one newline</div>');
opts.max_preserve_newlines = null;
bth('<div>Should</div>\n\n\n' +
'<div>preserve one newline</div>',
'<div>Should</div>\n\n\n' +
'<div>preserve one newline</div>');
}
beautifier_tests();

View File

@ -403,43 +403,7 @@ function run_html_tests(test_obj, Urlencoded, js_beautify, html_beautify, css_be
reset_options();
//============================================================
set_name('preserve newline tests');
opts.indent_size = 1;
opts.indent_char = '\t';
opts.preserve_newlines = false;
bth('<div>\n\tfoo\n</div>', '<div> foo </div>');
opts.preserve_newlines = true;
bth('<div>\n\tfoo\n</div>');
// test preserve_newlines and max_preserve_newlines
opts.preserve_newlines = false;
bth('<div>Should not</div>\n\n\n' +
'<div>preserve newlines</div>',
'<div>Should not</div>\n' +
'<div>preserve newlines</div>');
opts.preserve_newlines = true;
opts.max_preserve_newlines = 0;
bth('<div>Should</div>\n\n\n' +
'<div>preserve zero newlines</div>',
'<div>Should</div>\n' +
'<div>preserve zero newlines</div>');
opts.max_preserve_newlines = 1;
bth('<div>Should</div>\n\n\n' +
'<div>preserve one newline</div>',
'<div>Should</div>\n\n' +
'<div>preserve one newline</div>');
opts.max_preserve_newlines = null;
bth('<div>Should</div>\n\n\n' +
'<div>preserve one newline</div>',
'<div>Should</div>\n\n\n' +
'<div>preserve one newline</div>');
}
beautifier_tests();

View File

@ -1392,6 +1392,195 @@ exports.test_data = {
fragment: true,
unchanged: '{{#if 1}}<span>{{content}}</span>{{/if}}'
}]
}, {
name: "Preserve newlines false",
description: "",
options: [
{ name: 'indent_size', value: "2" },
{ name: 'preserve_newlines', value: "false" }
],
tests: [{
input: '<div>\n\tfoo\n</div>',
output: '<div> foo </div>'
}, {
input_: '<div>Should not</div>\n\n\n' +
'<div>preserve newlines</div>',
output: '<div>Should not</div>\n' +
'<div>preserve newlines</div>'
}, {
input: [
'<header>',
' <h1>',
'',
'',
' <ul>',
'',
' <li class="menuactive menuparent">',
' <a>',
' <span>Anita Koppe</span>',
' </a>',
'',
'',
' </li>',
' </ul>',
' </h1>',
'</header>'
],
output: [
'<header>',
' <h1>',
' <ul>',
' <li class="menuactive menuparent">',
' <a>',
' <span>Anita Koppe</span>',
' </a>',
' </li>',
' </ul>',
' </h1>',
'</header>'
]
}]
}, {
name: "Preserve newlines true",
description: "",
options: [
{ name: 'indent_size', value: "1" },
{ name: 'indent_char', value: '"\t"' },
{ name: 'preserve_newlines', value: "true" }
],
tests: [{
fragment: true,
unchanged: '<div>\n\tfoo\n</div>'
}]
}, {
name: "Preserve newlines true with zero max newline",
description: "",
options: [
{ name: 'preserve_newlines', value: "true" },
{ name: 'max_preserve_newlines', value: "0" },
{ name: 'indent_size', value: "2" }
],
tests: [{
fragment: true,
input_: '<div>Should</div>\n\n\n' +
'<div>preserve zero newlines</div>',
output: '<div>Should</div>\n' +
'<div>preserve zero newlines</div>'
}, {
input: [
'<header>',
' <h1>',
'',
'',
' <ul>',
'',
' <li class="menuactive menuparent">',
' <a>',
' <span>Anita Koppe</span>',
' </a>',
'',
'',
' </li>',
' </ul>',
' </h1>',
'</header>'
],
output: [
'<header>',
' <h1>',
' <ul>',
' <li class="menuactive menuparent">',
' <a>',
' <span>Anita Koppe</span>',
' </a>',
' </li>',
' </ul>',
' </h1>',
'</header>'
]
}]
}, {
name: "Preserve newlines true with 1 max newline",
description: "",
options: [
{ name: 'preserve_newlines', value: "true" },
{ name: 'indent_size', value: "2" },
{ name: 'max_preserve_newlines', value: "1" }
],
tests: [{
fragment: true,
input_: '<div>Should</div>\n\n\n' +
'<div>preserve one newline</div>',
output: '<div>Should</div>\n\n' +
'<div>preserve one newline</div>'
}, {
input: [
'<header>',
' <h1>',
'',
'',
' <ul>',
'',
' <li class="menuactive menuparent">',
' <a>',
' <span>Anita Koppe</span>',
' </a>',
'',
'',
' </li>',
' </ul>',
' </h1>',
'</header>'
],
output: [
'<header>',
' <h1>',
'',
' <ul>',
'',
' <li class="menuactive menuparent">',
' <a>',
' <span>Anita Koppe</span>',
' </a>',
'',
' </li>',
' </ul>',
' </h1>',
'</header>'
]
}]
}, {
name: "Preserve newlines true with null max newline",
description: "",
options: [
{ name: 'preserve_newlines', value: "true" },
{ name: 'indent_size', value: "2" },
{ name: 'max_preserve_newlines', value: "null" }
],
tests: [{
fragment: true,
unchanged: '<div>Should</div>\n\n\n' +
'<div>preserve zero newlines</div>'
}, {
unchanged: [
'<header>',
' <h1>',
'',
'',
' <ul>',
'',
' <li class="menuactive menuparent">',
' <a>',
' <span>Anita Koppe</span>',
' </a>',
'',
'',
' </li>',
' </ul>',
' </h1>',
'</header>'
]
}]
}, {
name: "unformatted to prevent formatting changes",
description: "",