tests.py 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. from django.core.urlresolvers import reverse
  2. from django.test import TestCase
  3. from misago.conf import settings
  4. from misago.legal.context_processors import legal_links
  5. class MockRequest(object):
  6. def __init__(self):
  7. self.frontend_context = {}
  8. class PrivacyPolicyTests(TestCase):
  9. def tearDown(self):
  10. settings.reset_settings()
  11. def test_404_on_no_policy(self):
  12. """policy view returns 404 when no policy is set"""
  13. self.assertFalse(settings.privacy_policy_link)
  14. self.assertFalse(settings.privacy_policy)
  15. response = self.client.get(reverse('misago:privacy-policy'))
  16. self.assertEqual(response.status_code, 404)
  17. def test_301_on_link_policy(self):
  18. """policy view returns 302 redirect when link is set"""
  19. settings.override_setting('privacy_policy_link', 'http://test.com')
  20. settings.override_setting('privacy_policy', 'Lorem ipsum')
  21. self.assertTrue(settings.privacy_policy_link)
  22. self.assertTrue(settings.privacy_policy)
  23. response = self.client.get(reverse('misago:privacy-policy'))
  24. self.assertEqual(response.status_code, 302)
  25. self.assertEqual(response['location'], 'http://test.com')
  26. def test_200_on_link_policy(self):
  27. """policy view returns 200 when custom tos content is set"""
  28. settings.override_setting('privacy_policy_title', 'Test Policy')
  29. settings.override_setting('privacy_policy', 'Lorem ipsum dolor')
  30. self.assertTrue(settings.privacy_policy_title)
  31. self.assertTrue(settings.privacy_policy)
  32. response = self.client.get(reverse('misago:privacy-policy'))
  33. self.assertEqual(response.status_code, 200)
  34. self.assertIn('Test Policy', response.content)
  35. self.assertIn('Lorem ipsum dolor', response.content)
  36. def test_context_processor_no_policy(self):
  37. """context processor has no TOS link"""
  38. context_dict = legal_links(MockRequest())
  39. self.assertFalse(context_dict)
  40. def test_context_processor_misago_policy(self):
  41. """context processor has TOS link to Misago view"""
  42. settings.override_setting('privacy_policy', 'Lorem ipsum')
  43. context_dict = legal_links(MockRequest())
  44. self.assertEqual(context_dict, {
  45. 'PRIVACY_POLICY_URL': reverse('misago:privacy-policy')
  46. })
  47. def test_context_processor_remote_policy(self):
  48. """context processor has TOS link to remote url"""
  49. settings.override_setting('privacy_policy_link', 'http://test.com')
  50. context_dict = legal_links(MockRequest())
  51. self.assertEqual(context_dict, {
  52. 'PRIVACY_POLICY_URL': 'http://test.com'
  53. })
  54. # set misago view too
  55. settings.override_setting('privacy_policy', 'Lorem ipsum')
  56. context_dict = legal_links(MockRequest())
  57. self.assertEqual(context_dict, {
  58. 'PRIVACY_POLICY_URL': 'http://test.com'
  59. })
  60. class TermsOfServiceTests(TestCase):
  61. def tearDown(self):
  62. settings.reset_settings()
  63. def test_404_on_no_tos(self):
  64. """TOS view returns 404 when no TOS is set"""
  65. self.assertFalse(settings.terms_of_service_link)
  66. self.assertFalse(settings.terms_of_service)
  67. response = self.client.get(reverse('misago:terms-of-service'))
  68. self.assertEqual(response.status_code, 404)
  69. def test_301_on_link_tos(self):
  70. """TOS view returns 302 redirect when link is set"""
  71. settings.override_setting('terms_of_service_link', 'http://test.com')
  72. settings.override_setting('terms_of_service', 'Lorem ipsum')
  73. self.assertTrue(settings.terms_of_service_link)
  74. self.assertTrue(settings.terms_of_service)
  75. response = self.client.get(reverse('misago:terms-of-service'))
  76. self.assertEqual(response.status_code, 302)
  77. self.assertEqual(response['location'], 'http://test.com')
  78. def test_200_on_link_tos(self):
  79. """TOS view returns 200 when custom tos content is set"""
  80. settings.override_setting('terms_of_service_title', 'Test ToS')
  81. settings.override_setting('terms_of_service', 'Lorem ipsum dolor')
  82. self.assertTrue(settings.terms_of_service_title)
  83. self.assertTrue(settings.terms_of_service)
  84. response = self.client.get(reverse('misago:terms-of-service'))
  85. self.assertEqual(response.status_code, 200)
  86. self.assertIn('Test ToS', response.content)
  87. self.assertIn('Lorem ipsum dolor', response.content)
  88. def test_context_processor_no_tos(self):
  89. """context processor has no TOS link"""
  90. context_dict = legal_links(MockRequest())
  91. self.assertFalse(context_dict)
  92. def test_context_processor_misago_tos(self):
  93. """context processor has TOS link to Misago view"""
  94. settings.override_setting('terms_of_service', 'Lorem ipsum')
  95. context_dict = legal_links(MockRequest())
  96. self.assertEqual(context_dict, {
  97. 'TERMS_OF_SERVICE_URL': reverse('misago:terms-of-service')
  98. })
  99. def test_context_processor_remote_tos(self):
  100. """context processor has TOS link to remote url"""
  101. settings.override_setting('terms_of_service_link', 'http://test.com')
  102. context_dict = legal_links(MockRequest())
  103. self.assertEqual(context_dict, {
  104. 'TERMS_OF_SERVICE_URL': 'http://test.com'
  105. })
  106. # set misago view too
  107. settings.override_setting('terms_of_service', 'Lorem ipsum')
  108. context_dict = legal_links(MockRequest())
  109. self.assertEqual(context_dict, {
  110. 'TERMS_OF_SERVICE_URL': 'http://test.com'
  111. })