legal-pages.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. (function () {
  2. 'use strict';
  3. var app = null;
  4. QUnit.acceptance("Legal Pages", {
  5. beforeEach: function() {
  6. app = initTestMisago();
  7. },
  8. afterEach: function() {
  9. app.destroy();
  10. }
  11. });
  12. QUnit.test('privacy policy link', function(assert) {
  13. var doneHidden = assert.async();
  14. var doneVisible = assert.async();
  15. app.settings.terms_of_service = false;
  16. app.settings.privacy_policy = false;
  17. m.redraw();
  18. onElement('.forum-footer', function() {
  19. assert.equal(
  20. getElementText('.footer-nav'), "",
  21. "Privacy policy link is hidden in footer.");
  22. doneHidden();
  23. app.settings.privacy_policy = true;
  24. m.redraw();
  25. onElement('.footer-nav a', function() {
  26. assert.equal(
  27. getElementText('.footer-nav a'), "Test Privacy Policy",
  28. "Privacy policy link is displayed in footer.");
  29. doneVisible();
  30. });
  31. });
  32. });
  33. QUnit.test('terms of service link', function(assert) {
  34. var doneHidden = assert.async();
  35. var doneVisible = assert.async();
  36. app.settings.privacy_policy = false;
  37. app.settings.terms_of_service = false;
  38. m.redraw();
  39. onElement('.forum-footer', function() {
  40. assert.equal(
  41. getElementText('.footer-nav'), "",
  42. "Terms link is hidden in footer.");
  43. doneHidden();
  44. app.settings.terms_of_service = true;
  45. m.redraw();
  46. onElement('.footer-nav a', function() {
  47. assert.equal(
  48. getElementText('.footer-nav a'), "Test Terms",
  49. "Terms link is displayed in footer.");
  50. doneVisible();
  51. });
  52. });
  53. });
  54. QUnit.test('legals pages disabled', function(assert) {
  55. app.settings.privacy_policy = null;
  56. app.settings.terms_of_service = null;
  57. $.mockjax({
  58. url: '/test-api/legal-pages/privacy-policy/',
  59. status: 404,
  60. responseText: {'detail': 'Not found'}
  61. });
  62. $.mockjax({
  63. url: '/test-api/legal-pages/terms-of-service/',
  64. status: 404,
  65. responseText: {'detail': 'Not found'}
  66. });
  67. var donePrivacyPolicy = assert.async();
  68. var doneTermsOfService = assert.async();
  69. assert.ok(!getElement('.footer-nav a').length,
  70. "footer nav has no legal pages links");
  71. m.route('/privacy-policy/');
  72. onElement('.page-error.page-error-404', function() {
  73. assert.ok(true, "Unset privacy policy returned 404 page.");
  74. donePrivacyPolicy();
  75. });
  76. m.route('/terms-of-service/');
  77. onElement('.page-error.page-error-404', function() {
  78. assert.ok(true, "Unset terms of service returned 404 page.");
  79. doneTermsOfService();
  80. });
  81. });
  82. QUnit.test('privacy policy page', function(assert) {
  83. $.mockjax({
  84. url: '/test-api/legal-pages/privacy-policy/',
  85. status: 200,
  86. responseText: {
  87. 'id': 'privacy-policy',
  88. 'link': '',
  89. 'title': 'Backend Policy',
  90. 'body': '<p>Lorem ipsum dolor met sit amet elit.</p>'
  91. }
  92. });
  93. var done = assert.async();
  94. m.route('/privacy-policy/');
  95. onElement('.page-legal', function() {
  96. assert.equal(
  97. getElementText('.page-header h1'), 'Backend Policy',
  98. "Privacy Policy page has been rendered.");
  99. assert.equal(
  100. getElementText('.container p'), 'Lorem ipsum dolor met sit amet elit.',
  101. "Privacy Policy body has been rendered.");
  102. done();
  103. });
  104. });
  105. QUnit.test('terms of service page', function(assert) {
  106. $.mockjax({
  107. url: '/test-api/legal-pages/terms-of-service/',
  108. status: 200,
  109. responseText: {
  110. 'id': 'terms-of-service',
  111. 'link': '',
  112. 'title': 'Backend Terms',
  113. 'body': '<p>Lorem ipsum dolor met sit amet elit.</p>'
  114. }
  115. });
  116. var done = assert.async();
  117. m.route('/terms-of-service/');
  118. onElement('.page-legal', function() {
  119. assert.equal(
  120. getElementText('.page-header h1'), 'Backend Terms',
  121. "Terms of Service page has been rendered.");
  122. assert.equal(
  123. getElementText('.container p'), 'Lorem ipsum dolor met sit amet elit.',
  124. "Terms of Service body has been rendered.");
  125. done();
  126. });
  127. });
  128. }());