doc-xml.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // --------------------------------------------------------------------------------------------------------------------
  2. //
  3. // xml-generation.js - tests for node-data2xml
  4. //
  5. // Copyright (c) 2011 Andrew Chilton - http://chilts.org/
  6. // Written by Andrew Chilton <andychilton@gmail.com>
  7. //
  8. // License: http://opensource.org/licenses/MIT
  9. //
  10. // --------------------------------------------------------------------------------------------------------------------
  11. var test = require('tape');
  12. var data2xml = require('../data2xml');
  13. // --------------------------------------------------------------------------------------------------------------------
  14. var tests = [
  15. {
  16. name : 'document natured XML',
  17. declaration : '<?xml version="1.0" encoding="utf-8"?>\n',
  18. element : 'name',
  19. data : {
  20. text: [
  21. {
  22. _attr: {
  23. 'xml:lang': 'de-DE'
  24. },
  25. _value: 'The german name'
  26. },
  27. ],
  28. _value: 'My app name',
  29. },
  30. exp : '<?xml version="1.0" encoding="utf-8"?>\n<name>My app name<text xml:lang="de-DE">The german name</text></name>'
  31. },
  32. {
  33. name : 'XML declared standalone',
  34. declaration : '<?xml version="1.0" standalone="yes" ?>\n',
  35. element : 'name',
  36. data : {
  37. text: [
  38. {
  39. _attr: {
  40. 'xml:lang': 'de-DE'
  41. },
  42. _value: 'The german name'
  43. },
  44. ],
  45. _value: 'My app name',
  46. },
  47. exp : '<?xml version="1.0" standalone="yes" ?>\n<name>My app name<text xml:lang="de-DE">The german name</text></name>'
  48. },
  49. ];
  50. test('some simple xml', function (t) {
  51. tests.forEach(function(test) {
  52. var convert = data2xml({xmlHeader: test.declaration});
  53. var xml = convert(test.element, test.data);
  54. t.equal(xml, test.exp, test.name);
  55. });
  56. t.end();
  57. });
  58. // --------------------------------------------------------------------------------------------------------------------