From 9c9b15bec8d4f8a2084644b6847800ef9799051e Mon Sep 17 00:00:00 2001
From: Henrik Levkowetz <henrik@levkowetz.com>
Date: Wed, 30 Nov 2016 15:56:22 +0000
Subject: [PATCH] Added guards against picking up non-ascii title and abstract
 from drafts submitted in xml form.  - Legacy-Id: 12429

---
 ietf/submit/forms.py            | 9 +++++++--
 ietf/submit/test_submission.xml | 4 ++--
 ietf/submit/tests.py            | 2 +-
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/ietf/submit/forms.py b/ietf/submit/forms.py
index 46699e2b2..6e09476ba 100644
--- a/ietf/submit/forms.py
+++ b/ietf/submit/forms.py
@@ -5,6 +5,7 @@ import email
 import pytz
 import xml2rfc
 import tempfile
+from unidecode import unidecode
 
 from django import forms
 from django.conf import settings
@@ -170,8 +171,12 @@ class SubmissionUploadForm(forms.Form):
                 else:
                     self.revision = None
                     self.filename = draftname
-                self.title = self.xmlroot.findtext('front/title')
-                self.abstract = self.xmlroot.findtext('front/abstract')
+                self.title = self.xmlroot.findtext('front/title').strip()
+                if type(self.title) is unicode:
+                    self.title = unidecode(self.title)
+                self.abstract = self.xmlroot.findtext('front/abstract').strip()
+                if type(self.abstract) is unicode:
+                    self.abstract = unidecode(self.abstract)
                 self.author_list = []
                 author_info = self.xmlroot.findall('front/author')
                 for author in author_info:
diff --git a/ietf/submit/test_submission.xml b/ietf/submit/test_submission.xml
index 99197afd5..a313e3706 100644
--- a/ietf/submit/test_submission.xml
+++ b/ietf/submit/test_submission.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="US-ASCII"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE rfc SYSTEM "rfc2629.dtd" []>
 <?rfc toc="yes"?>
 <rfc category="info" docName="%(name)s" ipr="trust200902">
   <front>
-    <title>Testing Tests</title>
+    <title>Testing&nbsp;Tests</title>
     <author fullname="Author Name" initials="A." surname="Name">
       <organization>Test Centre Inc.</organization>
 
diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py
index 53c898df4..a767e7c34 100644
--- a/ietf/submit/tests.py
+++ b/ietf/submit/tests.py
@@ -796,7 +796,7 @@ class SubmitTests(TestCase):
         self.assertTrue(name in open(os.path.join(self.staging_dir, u"%s-%s.txt" % (name, rev))).read())
         self.assertTrue(os.path.exists(os.path.join(self.staging_dir, u"%s-%s.xml" % (name, rev))))
         self.assertTrue(name in open(os.path.join(self.staging_dir, u"%s-%s.xml" % (name, rev))).read())
-        self.assertTrue('<?xml version="1.0" encoding="US-ASCII"?>' in open(os.path.join(self.staging_dir, u"%s-%s.xml" % (name, rev))).read())
+        self.assertTrue('<?xml version="1.0" encoding="UTF-8"?>' in open(os.path.join(self.staging_dir, u"%s-%s.xml" % (name, rev))).read())
         self.assertTrue(os.path.exists(os.path.join(self.staging_dir, u"%s-%s.pdf" % (name, rev))))
         self.assertTrue('This is PDF' in open(os.path.join(self.staging_dir, u"%s-%s.pdf" % (name, rev))).read())
         self.assertTrue(os.path.exists(os.path.join(self.staging_dir, u"%s-%s.ps" % (name, rev))))