Files
edx-platform/common/djangoapps/student/tests/test_helpers.py
Ahsan Ulhaq 7368c3428f use reverse
2016-10-25 23:28:09 +05:00

37 lines
1.2 KiB
Python

""" Test Student helpers """
import logging
from django.core.urlresolvers import reverse
from django.test import TestCase
from django.test.client import RequestFactory
from testfixtures import LogCapture
from student.helpers import get_next_url_for_login_page
LOGGER_NAME = "student.helpers"
class TestLoginHelper(TestCase):
"""Test login helper methods."""
def setUp(self):
super(TestLoginHelper, self).setUp()
self.request = RequestFactory()
def test_unsafe_next(self):
""" Test unsafe next parameter """
unsafe_url = "https://www.amazon.com"
with LogCapture(LOGGER_NAME, level=logging.ERROR) as logger:
req = self.request.get(reverse("login") + "?next={url}".format(url=unsafe_url))
get_next_url_for_login_page(req)
logger.check(
(LOGGER_NAME, "ERROR", u"Unsafe redirect parameter detected: u'{url}'".format(url=unsafe_url))
)
def test_safe_next(self):
""" Test safe next parameter """
req = self.request.get(reverse("login") + "?next={url}".format(url="/dashboard"))
next_page = get_next_url_for_login_page(req)
self.assertEqual(next_page, u'/dashboard')