選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

history_tests.py 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from django.test.client import Client
  2. from django.core.urlresolvers import reverse
  3. from django.test import TestCase
  4. from oscar.test.factories import create_product
  5. from oscar.core.compat import get_user_model
  6. from oscar.apps.customer import history
  7. from oscar.templatetags.history_tags import get_back_button
  8. from django.http import HttpRequest
  9. User = get_user_model()
  10. class HistoryHelpersTest(TestCase):
  11. def setUp(self):
  12. self.client = Client()
  13. self.product = create_product()
  14. def test_viewing_product_creates_cookie(self):
  15. response = self.client.get(self.product.get_absolute_url())
  16. self.assertTrue(history.COOKIE_NAME in response.cookies)
  17. def test_id_gets_added_to_cookie(self):
  18. response = self.client.get(self.product.get_absolute_url())
  19. request = HttpRequest()
  20. request.COOKIES[history.COOKIE_NAME] = response.cookies[history.COOKIE_NAME].value
  21. self.assertTrue(self.product.id in history.extract(request))
  22. def test_get_back_button(self):
  23. request = HttpRequest()
  24. request.META['SERVER_NAME'] = 'test'
  25. request.META['SERVER_PORT'] = 8000
  26. request.META['HTTP_REFERER'] = 'http://www.google.com'
  27. backbutton = get_back_button({'request': request})
  28. self.assertEqual(backbutton, None)
  29. request.META['HTTP_REFERER'] = 'http://test:8000/search/'
  30. backbutton = get_back_button({'request': request})
  31. self.assertTrue(backbutton)
  32. self.assertEqual(backbutton['title'], 'Back to search results')
  33. class TestAUserWhoLogsOut(TestCase):
  34. username = 'customer'
  35. password = 'cheeseshop'
  36. email = 'customer@example.com'
  37. def setUp(self):
  38. self.client = Client()
  39. self.product = create_product()
  40. User.objects.create_user(username=self.username,
  41. email=self.email, password=self.password)
  42. self.client.login(username=self.username, password=self.password)
  43. def test_has_their_cookies_deleted_on_logout(self):
  44. response = self.client.get(self.product.get_absolute_url())
  45. self.assertTrue(history.COOKIE_NAME in response.cookies)
  46. response = self.client.get(reverse('customer:logout'))
  47. self.assertTrue((history.COOKIE_NAME not in response.cookies)
  48. or not self.client.cookies['oscar_recently_viewed_products'].coded_value)