[silva.core.editor][Sylvain Viollon] Remove target if it is empty.

[email protected] Tue, 22 Oct 2013 11:21:26 +0200
Newsgroups gmane.comp.web.zope.silva.cvs
Message-ID <[email protected]>
author:    Sylvain Viollon
date:      Tue Oct 22 11:21:20 2013 +0200
revision:  271:290e9735b310 in silva.core.editor
branch:    
details:   https://hg.infrae.com/silva.core.editor?cmd=changeset;node=290e9735b310
modified:  src/silva/core/editor/tests/test_transform_input_link.py src/silva/core/editor/transform/editor/output.py
added:     
removed:   
log:       Remove target if it is empty.


diffstat:

 src/silva/core/editor/tests/test_transform_input_link.py |  42 ++++++++++++++++
 src/silva/core/editor/transform/editor/output.py         |   6 ++
 2 files changed, 48 insertions(+), 0 deletions(-)

diffs (68 lines):

diff -r 56b8af58c8db -r 290e9735b310 src/silva/core/editor/tests/test_transform_input_link.py
--- a/src/silva/core/editor/tests/test_transform_input_link.py	Tue Oct 15 15:42:34 2013 +0200
+++ b/src/silva/core/editor/tests/test_transform_input_link.py	Tue Oct 22 11:21:20 2013 +0200
@@ -231,6 +231,48 @@
 </p>
 """)
 
+    def test_external_link_empty_target(self):
+        """Even though you can't input them through the U.I you can
+        have links with an empty target attribute. That is not valid
+        and should be removed.
+        """
+        intern_format = self.transform(
+            """
+<p>
+   <a class="link"
+      href="javascript:void(0)"
+      title="Silva"
+      target=""
+      data-silva-url=" http://silvacms.org  ">
+      <i>To Silva</i></a>
+</p>
+""", ISaveEditorFilter)
+
+        self.assertXMLEqual(
+            intern_format,
+"""
+<p>
+   <a class="link"
+       title="Silva"
+       href="http://silvacms.org"><i>To Silva</i></a>
+</p>
+""")
+        # And changing it back to the editor format.
+        extern_format = self.transform(
+            intern_format,
+            IInputEditorFilter)
+        self.assertXMLEqual(
+            extern_format,
+            """
+<p>
+   <a class="link"
+      title="Silva"
+      href="javascript:void(0)"
+      data-silva-url="http://silvacms.org">
+      <i>To Silva</i></a>
+</p>
+""")
+
     def test_anchor_link(self):
         """On input, an external link is slightly modified.
         """
diff -r 56b8af58c8db -r 290e9735b310 src/silva/core/editor/transform/editor/output.py
--- a/src/silva/core/editor/transform/editor/output.py	Tue Oct 15 15:42:34 2013 +0200
+++ b/src/silva/core/editor/transform/editor/output.py	Tue Oct 22 11:21:20 2013 +0200
@@ -158,6 +158,12 @@
             if 'broken-link' in classes:
                 classes.remove('broken-link')
                 link.attrib['class'] = ' '.join(classes)
+            if 'target' in link.attrib:
+                target = link.attrib['target'].strip()
+                if target:
+                    link.attrib['target'] = target
+                else:
+                    del link.attrib['target']
             if 'href' in link.attrib:
                 del link.attrib['href']
             if 'data-silva-reference' in link.attrib: