"""Tests for `openid.yadis.parsehtml` module.""" from __future__ import unicode_literals import unittest from mock import sentinel from six import StringIO from openid.yadis.parsehtml import MetaNotFound, findHTMLMeta, xpath_lower_case class TestXpathLowerCase(unittest.TestCase): """Test `xpath_lower_case` function.""" def test_lower_case(self): self.assertEqual(xpath_lower_case(sentinel.context, ['CaMeLcAsE']), ['camelcase']) class TestFindHTMLMeta(unittest.TestCase): """Test `findHTMLMeta` function.""" def test_html(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), 'found') def test_xhtml(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), 'found') def test_case_insensitive_header_name(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), 'found') def test_missing_end_tags(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), 'found') def test_missing_html_header(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), 'found') def test_missing_head_tag(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), 'found') def test_top_level_bogus(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), 'found') def test_missing_html_tag(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), 'found') def test_javascript_in_head(self): buff = StringIO('' '') self.assertEqual(findHTMLMeta(buff), 'found') def test_multiple_headers(self): buff = StringIO('' '' '') self.assertEqual(findHTMLMeta(buff), 'found') def test_standard_entity(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), '&') def test_hex_entity(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), 'found') def test_decimal_entity(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), 'found') def test_empty_string(self): buff = StringIO('') self.assertEqual(findHTMLMeta(buff), '') def test_empty_input(self): buff = StringIO('') self.assertRaises(MetaNotFound, findHTMLMeta, buff) def test_invalid_html(self): buff = StringIO('') self.assertRaises(MetaNotFound, findHTMLMeta, buff) def test_meta_in_body(self): buff = StringIO('') self.assertRaises(MetaNotFound, findHTMLMeta, buff) def test_no_content(self): buff = StringIO('') self.assertRaises(MetaNotFound, findHTMLMeta, buff) def test_commented_header(self): buff = StringIO('' '' '') self.assertRaises(MetaNotFound, findHTMLMeta, buff) def test_no_yadis_header(self): buff = StringIO("A boring document" "

A boring document

There's really nothing interesting about this

" "") self.assertRaises(MetaNotFound, findHTMLMeta, buff) def test_unclosed_tag(self): # script tag not closed buff = StringIO('