#798: test suite: migrate to Selenium WebDriver API for web tests
-------------------------+-----------------
Reporter: simko | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: *general* | Version:
Keywords: |
-------------------------+-----------------
Now that Selenium 2 is out, we should migrate all our web tests to the new
Python WebDriver API. IOW, we should make a nice utility library of
useful functions as we have done for Mechanize (e.g.
`test_web_page_content()`) and we should Pythonise all our web tests.
Here is one plain example of the new Selenium WebDriver API in action:
{{{
#!/usr/bin/env python
import unittest
from selenium import webdriver
from invenio.testutils import make_test_suite, run_test_suite
class InvenioWebSearchExampleWebTests(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Firefox()
def tearDown(self):
self.browser.quit()
def test_cds_home(self):
"""websearch - CDS home page"""
self.browser.get('http://cdsweb.cern.ch/')
page_title = self.browser.title
self.assertEqual('CERN Document Server: Home', page_title)
page_source = self.browser.page_source
self.assertTrue('This site is also available in the following
languages' in page_source)
a_page_link = self.browser.find_element_by_link_text('Published
Articles')
self.assertEqual('Published Articles', a_page_link.text)
def test_cds_search(self):
"""websearch - CDS search for ellis"""
self.browser.get('http://cdsweb.cern.ch/')
p = self.browser.find_element_by_name("p")
p.send_keys("ellis")
p.submit()
page_source = self.browser.page_source
self.assertTrue('records found' in page_source)
self.assertTrue('jump to record' in page_source)
a_page_link = self.browser.find_element_by_link_text('Articles &
Preprints')
self.assertEqual('Articles & Preprints', a_page_link.text)
TEST_SUITE = make_test_suite(InvenioWebSearchExampleWebTests,)
if __name__ == '__main__':
run_test_suite(TEST_SUITE, warn_user=True)
}}}
--
Ticket URL: <http://invenio-software.org/ticket/798>
Invenio <http://invenio-software.org>