|
@@ -1,3 +1,5 @@
|
|
|
+import json
|
|
|
+
|
|
|
from django.contrib.auth import get_user_model
|
|
|
from django.test import TestCase
|
|
|
from django.urls import reverse
|
|
@@ -467,50 +469,56 @@ class TestChooserExternalLink(TestCase, WagtailTestUtils):
|
|
|
def test_create_link(self):
|
|
|
response = self.post({'url': 'http://www.example.com/', 'link_text': 'example'})
|
|
|
self.assertEqual(response.status_code, 200)
|
|
|
- self.assertContains(response, '"onload"')
|
|
|
- self.assertContains(response, '"url": "http://www.example.com/"')
|
|
|
- self.assertContains(response, '"title": "example"')
|
|
|
- self.assertContains(response, '"prefer_this_title_as_link_text": true')
|
|
|
+ response_json = json.loads(response.content.decode())
|
|
|
+ self.assertEqual(response_json['step'], 'external_link_chosen')
|
|
|
+ self.assertEqual(response_json['result']['url'], "http://www.example.com/")
|
|
|
+ self.assertEqual(response_json['result']['title'], "example")
|
|
|
+ self.assertEqual(response_json['result']['prefer_this_title_as_link_text'], True)
|
|
|
|
|
|
def test_create_link_without_text(self):
|
|
|
response = self.post({'url': 'http://www.example.com/'})
|
|
|
self.assertEqual(response.status_code, 200)
|
|
|
- self.assertContains(response, '"onload"')
|
|
|
- self.assertContains(response, '"url": "http://www.example.com/"')
|
|
|
- self.assertContains(response, '"title": "http://www.example.com/"')
|
|
|
- self.assertContains(response, '"prefer_this_title_as_link_text": false')
|
|
|
+ response_json = json.loads(response.content.decode())
|
|
|
+ self.assertEqual(response_json['step'], 'external_link_chosen')
|
|
|
+ self.assertEqual(response_json['result']['url'], "http://www.example.com/")
|
|
|
+ self.assertEqual(response_json['result']['title'], "http://www.example.com/")
|
|
|
+ self.assertEqual(response_json['result']['prefer_this_title_as_link_text'], False)
|
|
|
|
|
|
def test_notice_changes_to_link_text(self):
|
|
|
response = self.post(
|
|
|
{'url': 'http://www.example.com/', 'link_text': 'example'},
|
|
|
{'link_url': 'http://old.example.com/', 'link_text': 'example'}
|
|
|
)
|
|
|
- self.assertContains(response, '"url": "http://www.example.com/"')
|
|
|
- self.assertContains(response, '"title": "example"')
|
|
|
+ result = json.loads(response.content.decode())['result']
|
|
|
+ self.assertEqual(result['url'], "http://www.example.com/")
|
|
|
+ self.assertEqual(result['title'], "example")
|
|
|
|
|
|
- self.assertContains(response, '"prefer_this_title_as_link_text": false')
|
|
|
+ self.assertEqual(result['prefer_this_title_as_link_text'], False)
|
|
|
|
|
|
response = self.post(
|
|
|
{'url': 'http://www.example.com/', 'link_text': 'new example'},
|
|
|
{'link_url': 'http://old.example.com/', 'link_text': 'example'}
|
|
|
)
|
|
|
- self.assertContains(response, '"url": "http://www.example.com/"')
|
|
|
- self.assertContains(response, '"title": "new example"')
|
|
|
+ result = json.loads(response.content.decode())['result']
|
|
|
+ self.assertEqual(result['url'], "http://www.example.com/")
|
|
|
+ self.assertEqual(result['title'], "new example")
|
|
|
|
|
|
- self.assertContains(response, '"prefer_this_title_as_link_text": true')
|
|
|
+ self.assertEqual(result['prefer_this_title_as_link_text'], True)
|
|
|
|
|
|
def test_invalid_url(self):
|
|
|
response = self.post({'url': 'ntp://www.example.com', 'link_text': 'example'})
|
|
|
self.assertEqual(response.status_code, 200)
|
|
|
- self.assertContains(response, '"html"')
|
|
|
+ response_json = json.loads(response.content.decode())
|
|
|
+ self.assertEqual(response_json['step'], 'external_link')
|
|
|
self.assertContains(response, "Enter a valid URL.")
|
|
|
|
|
|
def test_allow_local_url(self):
|
|
|
response = self.post({'url': '/admin/', 'link_text': 'admin'})
|
|
|
self.assertEqual(response.status_code, 200)
|
|
|
- self.assertContains(response, '"onload"')
|
|
|
- self.assertContains(response, '"url": "/admin/"')
|
|
|
- self.assertContains(response, '"title": "admin"')
|
|
|
+ response_json = json.loads(response.content.decode())
|
|
|
+ self.assertEqual(response_json['step'], 'external_link_chosen')
|
|
|
+ self.assertEqual(response_json['result']['url'], "/admin/")
|
|
|
+ self.assertEqual(response_json['result']['title'], "admin")
|
|
|
|
|
|
|
|
|
class TestChooserEmailLink(TestCase, WagtailTestUtils):
|
|
@@ -539,34 +547,38 @@ class TestChooserEmailLink(TestCase, WagtailTestUtils):
|
|
|
|
|
|
def test_create_link(self):
|
|
|
response = self.post({'email_address': 'example@example.com', 'link_text': 'contact'})
|
|
|
- self.assertContains(response, '"url": "mailto:example@example.com"')
|
|
|
- self.assertContains(response, '"title": "contact"')
|
|
|
- self.assertContains(response, '"prefer_this_title_as_link_text": true')
|
|
|
+ result = json.loads(response.content.decode())['result']
|
|
|
+ self.assertEqual(result['url'], "mailto:example@example.com")
|
|
|
+ self.assertEqual(result['title'], "contact")
|
|
|
+ self.assertEqual(result['prefer_this_title_as_link_text'], True)
|
|
|
|
|
|
def test_create_link_without_text(self):
|
|
|
response = self.post({'email_address': 'example@example.com'})
|
|
|
- self.assertContains(response, '"url": "mailto:example@example.com"')
|
|
|
- self.assertContains(response, '"title": "example@example.com"')
|
|
|
- self.assertContains(response, '"prefer_this_title_as_link_text": false')
|
|
|
+ result = json.loads(response.content.decode())['result']
|
|
|
+ self.assertEqual(result['url'], "mailto:example@example.com")
|
|
|
+ self.assertEqual(result['title'], "example@example.com")
|
|
|
+ self.assertEqual(result['prefer_this_title_as_link_text'], False)
|
|
|
|
|
|
def test_notice_changes_to_link_text(self):
|
|
|
response = self.post(
|
|
|
{'email_address': 'example2@example.com', 'link_text': 'example'},
|
|
|
{'link_url': 'example@example.com', 'link_text': 'example'}
|
|
|
)
|
|
|
- self.assertContains(response, '"url": "mailto:example2@example.com"')
|
|
|
- self.assertContains(response, '"title": "example"')
|
|
|
+ result = json.loads(response.content.decode())['result']
|
|
|
+ self.assertEqual(result['url'], "mailto:example2@example.com")
|
|
|
+ self.assertEqual(result['title'], "example")
|
|
|
|
|
|
- self.assertContains(response, '"prefer_this_title_as_link_text": false')
|
|
|
+ self.assertEqual(result['prefer_this_title_as_link_text'], False)
|
|
|
|
|
|
response = self.post(
|
|
|
{'email_address': 'example2@example.com', 'link_text': 'new example'},
|
|
|
{'link_url': 'example@example.com', 'link_text': 'example'}
|
|
|
)
|
|
|
- self.assertContains(response, '"url": "mailto:example2@example.com"')
|
|
|
- self.assertContains(response, '"title": "new example"')
|
|
|
+ result = json.loads(response.content.decode())['result']
|
|
|
+ self.assertEqual(result['url'], "mailto:example2@example.com")
|
|
|
+ self.assertEqual(result['title'], "new example")
|
|
|
|
|
|
- self.assertContains(response, '"prefer_this_title_as_link_text": true')
|
|
|
+ self.assertEqual(result['prefer_this_title_as_link_text'], True)
|
|
|
|
|
|
|
|
|
class TestCanChoosePage(TestCase, WagtailTestUtils):
|