diff --git a/ftw/testing/pages.py b/ftw/testing/pages.py index 7ff2026..43d1ad8 100644 --- a/ftw/testing/pages.py +++ b/ftw/testing/pages.py @@ -30,6 +30,11 @@ def portal_url(self): return 'http://%s:%s/%s' % (host, port, PLONE_SITE_ID) + def concat_portal_url(self, *path): + """Concats the portal url with one or more bits of path. + """ + return '/'.join((self.portal_url,) + path) + @property def browser_driver(self): """Returns the name (string) of the browser driver currently in use. @@ -80,19 +85,15 @@ def normalize_whitespace(self, text): class Plone(PageObject): - def visit_portal(self, path=None): - if path: - url = '/'.join((self.portal_url, path)) - else: - url = self.portal_url - - locals()['__traceback_info__'] = path + def visit_portal(self, *paths): + url = self.concat_portal_url(*paths) + locals()['__traceback_info__'] = (paths, ':', url) browser().visit(url) return self def login(self, user=TEST_USER_NAME, password=TEST_USER_PASSWORD): # This should be implemented by setting request headers. - browser().visit(self.portal_url + '/login') + browser().visit(self.concat_portal_url('login')) browser().fill('__ac_name', user) browser().fill('__ac_password', password) browser().find_by_xpath( @@ -252,8 +253,7 @@ def save(self): class PloneControlPanel(Plone): def open(self): - browser().visit('/'.join(( - self.portal_url, '@@overview-controlpanel'))) + browser().visit(self.concat_portal_url('@@overview-controlpanel')) return self def assert_on_control_panel(self): diff --git a/ftw/testing/tests/test_pages_pageobject.py b/ftw/testing/tests/test_pages_pageobject.py index 2142b6c..19ae37d 100644 --- a/ftw/testing/tests/test_pages_pageobject.py +++ b/ftw/testing/tests/test_pages_pageobject.py @@ -31,6 +31,16 @@ def test_browser_driver__ZOPE_TESTBROWSER(self): PageObject().browser_driver, 'Expected browser driver to be "zope.testbrowser"') + def test_concat_portal_url(self): + self.assertEquals('http://nohost/plone', + PageObject().concat_portal_url()) + + self.assertEquals('http://nohost/plone/foo', + PageObject().concat_portal_url('foo')) + + self.assertEquals('http://nohost/plone/foo/bar', + PageObject().concat_portal_url('foo', 'bar')) + @javascript def test_browser_driver__PHANTOMS(self): self.assertEquals(