cmlenz@113: # -*- coding: utf-8 -*- cmlenz@113: # cmlenz@113: # Copyright (C) 2006 Edgewall Software cmlenz@113: # All rights reserved. cmlenz@113: # cmlenz@113: # This software is licensed as described in the file COPYING, which cmlenz@113: # you should have received as part of this distribution. The terms cmlenz@230: # are also available at http://genshi.edgewall.org/wiki/License. cmlenz@113: # cmlenz@113: # This software consists of voluntary contributions made by many cmlenz@113: # individuals. For the exact contribution history, see the revision cmlenz@230: # history and logs, available at http://genshi.edgewall.org/log/. cmlenz@113: cmlenz@113: import doctest cmlenz@113: import unittest cmlenz@113: cmlenz@275: from genshi import filters cmlenz@230: from genshi.input import HTML, ParseError cmlenz@275: from genshi.filters import HTMLFormFiller, HTMLSanitizer cmlenz@113: cmlenz@113: cmlenz@275: class HTMLFormFillerTestCase(unittest.TestCase): cmlenz@275: cmlenz@275: def test_fill_input_text_no_value(self): cmlenz@275: html = HTML("""
""") | HTMLFormFiller() cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_input_text_single_value(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller(data={'foo': 'bar'}) cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_input_text_multi_value(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller(data={'foo': ['bar']}) cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_input_hidden_no_value(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller() cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_input_hidden_single_value(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller(data={'foo': 'bar'}) cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_input_hidden_multi_value(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller(data={'foo': ['bar']}) cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_textarea_no_value(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller() cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_textarea_single_value(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller(data={'foo': 'bar'}) cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_textarea_multi_value(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller(data={'foo': ['bar']}) cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_input_checkbox_no_value(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller() cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_input_checkbox_single_value_auto(self): cmlenz@275: html = HTML("""""") cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': ''}))) cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': 'on'}))) cmlenz@275: cmlenz@275: def test_fill_input_checkbox_single_value_defined(self): cmlenz@275: html = HTML("""""") cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': '1'}))) cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': '2'}))) cmlenz@275: cmlenz@275: def test_fill_input_checkbox_multi_value_auto(self): cmlenz@275: html = HTML("""""") cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': []}))) cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': ['on']}))) cmlenz@275: cmlenz@275: def test_fill_input_checkbox_multi_value_defined(self): cmlenz@275: html = HTML("""""") cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': ['1']}))) cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': ['2']}))) cmlenz@275: cmlenz@275: def test_fill_input_radio_no_value(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller() cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_input_radio_single_value(self): cmlenz@275: html = HTML("""""") cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': '1'}))) cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': '2'}))) cmlenz@275: cmlenz@275: def test_fill_input_radio_multi_value(self): cmlenz@275: html = HTML("""""") cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': ['1']}))) cmlenz@275: self.assertEquals("""""", unicode(html | HTMLFormFiller(data={'foo': ['2']}))) cmlenz@275: cmlenz@275: def test_fill_select_no_value_auto(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller() cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_select_no_value_defined(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller() cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_select_single_value_auto(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller(data={'foo': '1'}) cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_select_single_value_defined(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller(data={'foo': '1'}) cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_select_multi_value_auto(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller(data={'foo': ['1', '3']}) cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: def test_fill_select_multi_value_defined(self): cmlenz@275: html = HTML("""""") | HTMLFormFiller(data={'foo': ['1', '3']}) cmlenz@275: self.assertEquals("""""", unicode(html)) cmlenz@275: cmlenz@275: cmlenz@113: class HTMLSanitizerTestCase(unittest.TestCase): cmlenz@113: cmlenz@113: def test_sanitize_unchanged(self): cmlenz@113: html = HTML('fo