Esempio n. 1
0
 def test_script_element(self):
     source = Element('script', {'src': '#'})
     elements = list(links(source))
     self.assertEqual(len(elements), 1)
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, '#')
     self.assertEqual(pos, 0)
     self.assertEqual(attr, 'src')
     self.assertEqual(el.tag, 'script')
     self.assertEqual(el.attrib, {'src': '#'})
Esempio n. 2
0
 def test_inline_css_url(self):
     source = Element('div', {'style': 'background: url("#");'})
     elements = list(links(source))
     self.assertEqual(len(elements), 1)
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, '#')
     self.assertEqual(pos, 17)
     self.assertEqual(attr, 'style')
     self.assertEqual(el.tag, 'div')
     self.assertEqual(el.attrib, {'style': 'background: url("#");'})
Esempio n. 3
0
 def test_meta_refresh_element(self):
     source = Element('meta', {'http-equiv': 'refresh', 'content': '#'})
     elements = list(links(source))
     self.assertEqual(len(elements), 1)
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, '#')
     self.assertEqual(pos, 0)
     self.assertEqual(attr, 'content')
     self.assertEqual(el.tag, 'meta')
     self.assertEqual(el.attrib, {'http-equiv': 'refresh', 'content': '#'})
Esempio n. 4
0
 def test_form_element(self):
     source = Element('form', {'action': '#'})
     elements = list(links(source))
     self.assertEqual(len(elements), 1)
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, '#')
     self.assertEqual(pos, 0)
     self.assertEqual(attr, 'action')
     self.assertEqual(el.tag, 'form')
     self.assertEqual(el.attrib, {'action': '#'})
Esempio n. 5
0
 def test_link_element(self):
     source = Element('link', {'href': '#'})
     elements = list(links(source))
     self.assertEqual(len(elements), 1)
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, '#')
     self.assertEqual(pos, 0)
     self.assertEqual(attr, 'href')
     self.assertEqual(el.tag, 'link')
     self.assertEqual(el.attrib, {'href': '#'})
Esempio n. 6
0
 def test_html_style_tag_css_import(self):
     source = Element('style')
     source.text = '@import url(#);'
     elements = list(links(source))
     self.assertEqual(len(elements), 1)
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, '#')
     self.assertEqual(pos, 12)
     self.assertEqual(attr, None)
     self.assertEqual(el.tag, 'style')
     self.assertEqual(el.attrib, {})
Esempio n. 7
0
 def test_html_style_tag_css_url_with_altering_colons(self):
     source = Element('style')
     source.text = 'html {background: url("#\');}'
     elements = list(links(source))
     self.assertEqual(len(elements), 1)
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, '#')
     self.assertEqual(pos, 23)
     self.assertEqual(attr, None)
     self.assertEqual(el.tag, 'style')
     self.assertEqual(el.attrib, {})
Esempio n. 8
0
 def test_script_element_with_url_in_the_text(self):
     source = Element('script')
     source.text = 'var background = "url(\'image.jpg\')"'
     elements = list(links(source))
     self.assertEqual(len(elements), 1)
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, 'image.jpg')
     self.assertEqual(pos, 23)
     self.assertEqual(attr, None)
     self.assertEqual(el.tag, 'script')
     self.assertEqual(el.attrib, {})
Esempio n. 9
0
 def test_img_src_set_attribute_bad_formatted(self):
     source = Element('img', {'src-set': 'img1 1x; img2 2x,'})
     elements = list(links(source))
     self.assertEqual(len(elements), 2)
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, 'img1')
     self.assertEqual(pos, 0)
     self.assertEqual(attr, 'src-set')
     self.assertEqual(el.tag, 'img')
     self.assertEqual(el.attrib, {'src-set': 'img1 1x; img2 2x,'})
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, 'img2')
     self.assertEqual(pos, 9)
     self.assertEqual(attr, 'src-set')
     self.assertEqual(el.tag, 'img')
     self.assertEqual(el.attrib, {'src-set': 'img1 1x; img2 2x,'})
Esempio n. 10
0
 def test_html_style_tag_font_face(self):
     source = Element('style')
     source.text = """
     @font-face {
     font-family:'fontawesome';
     src:url('../lib/fonts/fontawesome.eot?14663396#iefix') format('embedded-opentype'),
     url('../lib/fonts/fontawesome.woff?14663396') format('woff'),
     url('../lib/fonts/fontawesome.ttf?14663396') format('truetype'),
     url('../lib/fonts/fontawesome.svg?14663396#fontawesome') format('svg');
     font-style:normal;
     }
     """
     elements = list(links(source))
     self.assertEqual(len(elements), 4)
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, '../lib/fonts/fontawesome.eot?14663396#iefix')
     self.assertEqual(pos, 74)
     self.assertEqual(attr, None)
     self.assertEqual(el.tag, 'style')
     self.assertEqual(el.attrib, {})
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, '../lib/fonts/fontawesome.woff?14663396')
     self.assertEqual(pos, 162)
     self.assertEqual(attr, None)
     self.assertEqual(el.tag, 'style')
     self.assertEqual(el.attrib, {})
     el, attr, url, pos = elements.pop()
     self.assertEqual(url, '../lib/fonts/fontawesome.ttf?14663396')
     self.assertEqual(pos, 232)
     self.assertEqual(attr, None)
     self.assertEqual(el.tag, 'style')
     self.assertEqual(el.attrib, {})
     el, attr, url, pos = elements.pop()
     self.assertEqual(url,
                      '../lib/fonts/fontawesome.svg?14663396#fontawesome')
     self.assertEqual(pos, 305)
     self.assertEqual(attr, None)
     self.assertEqual(el.tag, 'style')
     self.assertEqual(el.attrib, {})
Esempio n. 11
0
 def test_html_style_tag_css_import_without_url(self):
     source = Element('style')
     source.text = '@import fonts;'
     elements = list(links(source))
     self.assertEqual(len(elements), 0)
Esempio n. 12
0
 def test_meta_refresh_element_without_content_url(self):
     source = Element('meta', {'http-equiv': 'refresh'})
     elements = list(links(source))
     self.assertEqual(len(elements), 0)
Esempio n. 13
0
 def test_form_element_without_action_url(self):
     source = Element('form')
     elements = list(links(source))
     self.assertEqual(len(elements), 0)
Esempio n. 14
0
 def test_script_element_without_url(self):
     source = Element('script')
     source.text = 'console.log(hello);'
     elements = list(links(source))
     self.assertEqual(len(elements), 0)
Esempio n. 15
0
 def test_link_element_without_url(self):
     source = Element('link')
     elements = list(links(source))
     self.assertEqual(len(elements), 0)
Esempio n. 16
0
 def test_raise_error_on_invalid_argument(self):
     with self.assertRaises(AttributeError):
         list(links(''))