exports.test_data = { default_options: [ { name: "indent_size", value: "4" }, { name: "indent_char", value: "' '" }, { name: "indent_with_tabs", value: "false" }, { name: "preserve_newlines", value: "true" }, { name: "jslint_happy", value: "false" }, { name: "keep_array_indentation", value: "false" }, { name: "brace_style", value: "'collapse'" }, { name: "extra_liners", value: "['html', 'head', '/html']" } ], groups: [{ name: "End With Newline", description: "", matrix: [ { options: [ { name: "end_with_newline", value: "true" } ], eof: '\\n' }, { options: [ { name: "end_with_newline", value: "false" } ], eof: '' } ], tests: [ { fragment: true, input: '', output: '{{eof}}' }, { fragment: true, input: '
', output: '
{{eof}}' }, // { fragment: true, input: ' \n\n
\n\n\n\n', output: '
{{eof}}' }, { fragment: true, input: '\n', output: '{{eof}}' } ], }, { name: "Custom Extra Liners (empty)", description: "", matrix: [ { options: [ { name: "extra_liners", value: "[]" } ] }, ], tests: [ { fragment: true, input: '

x

', output: '\n\n \n\n\n
\n

x

\n
\n\n' } ], }, { name: "Custom Extra Liners (default)", description: "", matrix: [ { options: [ { name: "extra_liners", value: "null" } ] }, ], tests: [ { fragment: true, input: '', output: '\n\n\n\n\n\n' } ], }, { name: "Custom Extra Liners (p, string)", description: "", matrix: [ { options: [ { name: "extra_liners", value: "'p,/p'" } ] }, ], tests: [ { fragment: true, input: '

x

', output: '\n\n \n\n\n
\n\n

x\n\n

\n
\n\n' } ], }, { name: "Custom Extra Liners (p)", description: "", matrix: [ { options: [ { name: "extra_liners", value: "['p', '/p']" } ] }, ], tests: [ { fragment: true, input: '

x

', output: '\n\n \n\n\n
\n\n

x\n\n

\n
\n\n' } ], }, { name: "Attribute Wrap", description: "Wraps attributes inside of html tags", matrix: [ { options: [ { name: "wrap_attributes", value: "'force'" } ], eof: '\\n', indent_attr: ' ', over80: '\\n' }, { options: [ { name: "wrap_attributes", value: "'force'" }, { name: "wrap_line_length", value: "80" } ], eof: '\\n', indent_attr: ' ', over80: '\\n' }, { options: [ { name: "wrap_attributes", value: "'force'" }, { name: "wrap_attributes_indent_size", value: "8" }, ], eof: '\\n', indent_attr: ' ', over80: '\\n' }, { options: [ { name: "wrap_attributes", value: "'auto'" }, { name: "wrap_line_length", value: "80" } ], eof: ' ', indent_attr: '', over80: '\\n' }, { options: [ { name: "wrap_attributes", value: "'auto'" }, { name: "wrap_line_length", value: "0" } ], eof: ' ', indent_attr: '', over80: ' ' } ], tests: [ { fragment: true, input: '
This is some text
', output: '
This is some text
' }, { fragment: true, input: '
This is some text
', output: '
This is some text
' }, { fragment: true, input: '', output: '' } ] }, { name: "Handlebars Indenting Off", description: "Test handlebar behavior when indenting is off", template: "^^^ $$$", options: [ { name: "indent_handlebars", value: "false" } ], tests: [ { fragment: true, input_: '{{#if 0}}\n' + '
\n' + '
\n' + '{{/if}}', output: '{{#if 0}}\n' + '
\n' + '
\n' + '{{/if}}' }, { fragment: true, input_: '
\n' + '{{#each thing}}\n' + ' {{name}}\n' + '{{/each}}\n' + '
', output: '
\n' + ' {{#each thing}} {{name}} {{/each}}\n' + '
'} ] }, { name: "Handlebars Indenting On", description: "Test handlebar formatting", template: "^^^ $$$", matrix: [ { options: [ { name: "indent_handlebars", value: "true" } ], content: '{{field}}' }, { options: [ { name: "indent_handlebars", value: "true" } ], content: '{{! comment}}' }, { options: [ { name: "indent_handlebars", value: "true" } ], content: '{pre{{field1}} {{field2}} {{field3}}post' } , { options: [ { name: "indent_handlebars", value: "true" } ], content: '{{! \\n mult-line\\ncomment \\n with spacing\\n}}' } ], tests: [ { fragment: true, unchanged: '{{page-title}}' }, { fragment: true, unchanged: '{{#if 0}}{{/if}}' }, { fragment: true, unchanged: '{{#if 0}}^^^content$$${{/if}}' }, { fragment: true, unchanged: '{{#if 0}}\n{{/if}}' }, { fragment: true, input_: '{{#if words}}{{/if}}', output: '{{#if words}}{{/if}}' }, { fragment: true, input_: '{{#if words}}^^^content$$${{/if}}', output: '{{#if words}}^^^content$$${{/if}}' }, { fragment: true, input_: '{{#if words}}^^^content$$${{/if}}', output: '{{#if words}}^^^content$$${{/if}}' }, { fragment: true, unchanged: '{{#if 1}}\n' + '
\n' + '
\n' + '{{/if}}' }, { fragment: true, input_: '{{#if 1}}\n' + '
\n' + '
\n' + '{{/if}}', output: '{{#if 1}}\n' + '
\n' + '
\n' + '{{/if}}' }, { fragment: true, unchanged: '
\n' + ' {{#if 1}}\n' + ' {{/if}}\n' + '
' }, { fragment: true, input_: '
\n' + '{{#if 1}}\n' + '{{/if}}\n' + '
', output: '
\n' + ' {{#if 1}}\n' + ' {{/if}}\n' + '
' }, { fragment: true, input_: '{{#if}}\n' + '{{#each}}\n' + '{{#if}}\n' + '^^^content$$$\n' + '{{/if}}\n' + '{{#if}}\n' + '^^^content$$$\n' + '{{/if}}\n' + '{{/each}}\n' + '{{/if}}', output: '{{#if}}\n' + ' {{#each}}\n' + ' {{#if}}\n' + ' ^^^content$$$\n' + ' {{/if}}\n' + ' {{#if}}\n' + ' ^^^content$$$\n' + ' {{/if}}\n' + ' {{/each}}\n' + '{{/if}}' }, { fragment: true, unchanged: '{{#if 1}}\n' + '
\n' + '
\n' + '{{/if}}' }, // Test {{else}} aligned with {{#if}} and {{/if}} { fragment: true, input_: '{{#if 1}}\n' + ' ^^^content$$$\n' + ' {{else}}\n' + ' ^^^content$$$\n' + '{{/if}}', output: '{{#if 1}}\n' + ' ^^^content$$$\n' + '{{else}}\n' + ' ^^^content$$$\n' + '{{/if}}' }, { fragment: true, input_: '{{#if 1}}\n' + ' {{else}}\n' + ' {{/if}}', output: '{{#if 1}}\n' + '{{else}}\n' + '{{/if}}' }, { fragment: true, input_: '{{#if thing}}\n' + '{{#if otherthing}}\n' + ' ^^^content$$$\n' + ' {{else}}\n' + '^^^content$$$\n' + ' {{/if}}\n' + ' {{else}}\n'+ '^^^content$$$\n' + '{{/if}}', output: '{{#if thing}}\n' + ' {{#if otherthing}}\n' + ' ^^^content$$$\n' + ' {{else}}\n' + ' ^^^content$$$\n' + ' {{/if}}\n' + '{{else}}\n'+ ' ^^^content$$$\n' + '{{/if}}' }, // Test {{}} inside of <> tags, which should be separated by spaces // for readability, unless they are inside a string. { fragment: true, input_: '', output: '
' }, { fragment: true, input_: '^^^content$$$', output: '
^^^content$$$
' }, { fragment: true, input_: '^^^content$$$', output: '
^^^content$$$
' }, { fragment: true, input_: '^^^content$$$', output: '^^^content$$$' }, { fragment: true, unchanged: '
^^^content$$$
' }, { fragment: true, unchanged: '
^^^content$$$
' }, // Quotes found inside of Handlebars expressions inside of quoted // strings themselves should not be considered string delimiters. { fragment: true, unchanged: '
' }, { fragment: true, unchanged: '
' }, { fragment: true, unchanged: '
' }, { fragment: true, unchanged: '
' } ], }, { name: "Unclosed html elements", description: "Unclosed elements should not indent", options: [], tests: [ { fragment: true, unchanged: '\n' }, { fragment: true, unchanged: '
\n
' }, { fragment: true, unchanged: '\n' }, { fragment: true, unchanged: '\n' }, { fragment: true, unchanged: '\n' } ] }, { name: "Unformatted tags", description: "Unformatted tag behavior", options: [], tests: [ { fragment: true, unchanged: '
    \n
  1. b
    c
  2. \n
' }, { fragment: true, unchanged: '
    \n
  1. bc
  2. \n
' }, ] }, { name: "Php formatting", description: "Php () treated as comments.", options: [], tests: [ { fragment: true, unchanged: '

' }, { fragment: true, unchanged: [ '");', '}', '?>' ] }, ] }, { name: "underscore.js formatting", description: "underscore.js templates (<% ... %>) treated as comments.", options: [], tests: [ { fragment: true, unchanged: [ '
', ' ', '
' ] }, ] }, { name: "Indent with tabs", description: "Use one tab instead of several spaces for indentation", template: "^^^ $$$", options: [ { name: "indent_with_tabs", value: "true" } ], tests: [ { fragment: true, input_: '
\n' + '
\n' + '
\n' + '
', output: '
\n' + '\t
\n' + '\t
\n' + '
' } ] }, { name: "Indent without tabs", description: "Use several spaces for indentation", template: "^^^ $$$", options: [ { name: "indent_with_tabs", value: "false" } ], tests: [ { fragment: true, input_: '
\n' + '
\n' + '
\n' + '
', output: '
\n' + '
\n' + '
\n' + '
' } ] }, { name: "New Test Suite" }], };