from util import WebHelpersTestCase import unittest from webhelpers.rails.urls import * from routes import * class TestURLHelper(WebHelpersTestCase): def test_button_to_with_straight_url(self): self.assertEqual("
", button_to("Hello", "http://www.example.com")) def test_button_to_with_query(self): self.assertEqual("", button_to("Hello", "http://www.example.com/q1=v1&q2=v2")) def test_button_to_with_escaped_query(self): self.assertEqual("", button_to("Hello", "http://www.example.com/q1=v1&q2=v2")) def test_button_to_with_query_and_no_name(self): self.assertEqual("", button_to(None, "http://www.example.com?q1=v1&q2=v2")) def test_button_to_with_javascript_confirm(self): self.assertEqual("", button_to("Hello", "http://www.example.com", confirm="Are you sure?")) def test_button_to_enabled_disabled(self): self.assertEqual("", button_to("Hello", "http://www.example.com", disabled=False)) self.assertEqual("", button_to("Hello", "http://www.example.com", disabled=True)) def test_button_to_with_method_delete(self): self.assertEqual("", button_to("Hello", "http://www.example.com", method='DELETE')) self.assertEqual("", button_to("Hello", "http://www.example.com", method='delete')) def test_button_to_with_method_get(self): self.assertEqual("", button_to("Hello", "http://www.example.com", method='get')) self.assertEqual("", button_to("Hello", "http://www.example.com", method='GET')) def test_link_tag_with_straight_url(self): self.assertEqual("Hello", link_to("Hello", "http://www.example.com")) def test_link_tag_with_query(self): self.assertEqual("Hello", link_to("Hello", "http://www.example.com?q1=v1&q2=v2")) def test_link_tag_with_query_and_no_name(self): self.assertEqual("http://www.example.com?q1=v1&q2=v2", link_to(None, "http://www.example.com?q1=v1&q2=v2")) def test_link_tag_with_custom_onclick(self): self.assertEqual("Hello", link_to("Hello", "http://www.example.com", onclick="alert('yay!')")) def test_link_tag_with_javascript_confirm(self): self.assertEqual("Hello", link_to("Hello", "http://www.example.com", confirm="Are you sure?")) self.assertEqual("Hello", link_to("Hello", "http://www.example.com", confirm="You can't possibly be sure, can you?")) self.assertEqual("Hello", link_to("Hello", "http://www.example.com", confirm="You can't possibly be sure,\n can you?")) def test_link_tag_with_popup(self): self.assertEqual("Hello", link_to("Hello", "http://www.example.com", popup=True)) self.assertEqual("Hello", link_to("Hello", "http://www.example.com", popup='true')) self.assertEqual("Hello", link_to("Hello", "http://www.example.com", popup=['window_name', 'width=300,height=300'])) def test_link_tag_with_popup_and_javascript_confirm(self): self.assertEqual("Hello", link_to("Hello", "http://www.example.com", popup=True, confirm="Fo' sho'?" )) self.assertEqual("Hello", link_to("Hello", "http://www.example.com", popup=['window_name', 'width=300,height=300'], confirm="Are you serious?")) def test_link_tag_using_post_javascript(self): self.assertEqual("Hello", link_to("Hello", "http://www.example.com", post=True)) def test_link_tag_using_delete_javascript(self): self.assertEqual("Destroy", link_to("Destroy", "http://www.example.com", method='DELETE')) self.assertEqual("Destroy", link_to("Destroy", "http://www.example.com", method='delete')) def test_link_tag_using_post_javascript_and_confirm(self): self.assertEqual("Hello", link_to("Hello", "http://www.example.com", post=True, confirm="Are you serious?")) self.assertRaises(ValueError, lambda: \ link_to("Hello", "http://www.example.com", post=True, popup=True, confirm="Are you serious?")) def test_link_to_unless_current(self): self.assertEqual('Click Here', link_to_unless_current('Click Here', '/test?test=webhelpers&framework=pylons')) self.assertEqual('Click Here', link_to_unless_current('Click Here', '/test?test=routes&framework=pylons')) self.assertEqual('Click Here', link_to_unless_current('Click Here', '/test2?test=webhelpers&framework=pylons')) def test_link_to_unless(self, func=link_to_unless): condition = func == link_to_unless and True or False self.assertEqual('Click Here', func(condition, 'Click Here', '/test?test=webhelpers&framework=pylons')) self.assertEqual('Click Here', func(not condition, 'Click Here', '/test?test=webhelpers&framework=pylons')) self.assertEqual('Click Here', func(not condition, 'Click Here', '/test?test=routes&framework=pylons')) self.assertEqual('Click Here', func(condition, 'Click Here', '/test2?test=webhelpers&framework=pylons')) def test_link_to_if(self): self.test_link_to_unless(func=link_to_if) def test_mail_to(self): self.assertEqual('justin@example.com', mail_to("justin@example.com")) self.assertEqual('Justin Example', mail_to("justin@example.com", "Justin Example")) self.assertEqual('Justin Example', mail_to("justin@example.com", "Justin Example", class_="admin")) def test_mail_to_with_javascript(self): self.assertEqual("", mail_to("me@domain.com", "My email", encode = "javascript")) def test_mail_to_with_options(self): self.assertEqual('My email', mail_to("me@example.com", "My email", cc="ccaddress@example.com", bcc="bccaddress@example.com", subject="This is an example email", body="This is the body of the message.")) def test_mail_to_with_img(self): self.assertEqual('
',
mail_to('feedback@example.com', '
'))
def test_mail_to_with_hex(self):
self.assertEqual("My email",
mail_to("me@domain.com", "My email", encode = "hex"))
self.assertEqual("me@domain.com",
mail_to("me@domain.com", None, encode = "hex"))
def test_mail_to_with_replace_options(self):
self.assertEqual('wolfgang(at)stufenlos(dot)net',
mail_to("wolfgang@stufenlos.net", None, replace_at="(at)", replace_dot="(dot)"))
self.assertEqual("me(at)domain.com",
mail_to("me@domain.com", None, encode = "hex", replace_at = "(at)"))
self.assertEqual("My email",
mail_to("me@domain.com", "My email", encode = "hex", replace_at = "(at)"))
self.assertEqual("me(at)domain(dot)com",
mail_to("me@domain.com", None, encode = "hex", replace_at = "(at)", replace_dot = "(dot)"))
self.assertEqual("",
mail_to("me@domain.com", "My email", encode = "javascript", replace_at = "(at)", replace_dot = "(dot)"))
def test_current_page(self):
self.assertTrue(current_page('/test?test=webhelpers&framework=pylons'))
self.assertTrue(current_page(url('/test?test=webhelpers&framework=pylons')))
def test_current_url(self):
self.assertEquals('/test?test=webhelpers&framework=pylons', current_url())
self.assertTrue(isinstance(current_url(), str))
if __name__ == '__main__':
suite = [unittest.makeSuite(TestURLHelper)]
for testsuite in suite:
unittest.TextTestRunner(verbosity=1).run(testsuite)