diff options
| author | Julien Phalip <jphalip@gmail.com> | 2011-12-22 08:33:58 +0000 |
|---|---|---|
| committer | Julien Phalip <jphalip@gmail.com> | 2011-12-22 08:33:58 +0000 |
| commit | 2f02a05ffb45be68b4164b4785ff1826833150a3 (patch) | |
| tree | d51f7454aeb97a5c35b3045d5d5413691aaf1d00 /tests/regressiontests/admin_widgets/tests.py | |
| parent | 45e3dff5ac697f16829697bc2a899eaeac8986ea (diff) | |
Fixed #2879 -- Added support for the integration with Selenium and other in-browser testing frameworks. Also added the first Selenium tests for `contrib.admin`. Many thanks to everyone for their contributions and feedback: Mikeal Rogers, Dirk Datzert, mir, Simon G., Almad, Russell Keith-Magee, Denis Golomazov, devin, robertrv, andrewbadr, Idan Gazit, voidspace, Tom Christie, hjwp2, Adam Nelson, Jannis Leidel, Anssi Kääriäinen, Preston Holmes, Bruno Renié and Jacob Kaplan-Moss.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17241 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/admin_widgets/tests.py')
| -rw-r--r-- | tests/regressiontests/admin_widgets/tests.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/regressiontests/admin_widgets/tests.py b/tests/regressiontests/admin_widgets/tests.py index 37fa7bc8ef..e28df32577 100644 --- a/tests/regressiontests/admin_widgets/tests.py +++ b/tests/regressiontests/admin_widgets/tests.py @@ -7,6 +7,7 @@ from django import forms from django.conf import settings from django.contrib import admin from django.contrib.admin import widgets +from django.contrib.admin.tests import AdminSeleniumWebDriverTestCase from django.core.files.storage import default_storage from django.core.files.uploadedfile import SimpleUploadedFile from django.db.models import DateField @@ -407,3 +408,52 @@ class RelatedFieldWidgetWrapperTests(DjangoTestCase): # Used to fail with a name error. w = widgets.RelatedFieldWidgetWrapper(w, rel, widget_admin_site) self.assertFalse(w.can_add_related) + + +class SeleniumFirefoxTests(AdminSeleniumWebDriverTestCase): + webdriver_class = 'selenium.webdriver.firefox.webdriver.WebDriver' + fixtures = ['admin-widgets-users.xml'] + urls = "regressiontests.admin_widgets.urls" + + def test_show_hide_date_time_picker_widgets(self): + """ + Ensure that pressing the ESC key closes the date and time picker + widgets. + Refs #17064. + """ + from selenium.webdriver.common.keys import Keys + + self.admin_login(username='super', password='secret', login_url='/') + # Open a page that has a date and time picker widgets + self.selenium.get('%s%s' % (self.live_server_url, + '/admin_widgets/member/add/')) + + # First, with the date picker widget --------------------------------- + # Check that the date picker is hidden + self.assertEqual( + self.get_css_value('#calendarbox0', 'display'), 'none') + # Click the calendar icon + self.selenium.find_element_by_id('calendarlink0').click() + # Check that the date picker is visible + self.assertEqual( + self.get_css_value('#calendarbox0', 'display'), 'block') + # Press the ESC key + self.selenium.find_element_by_tag_name('html').send_keys([Keys.ESCAPE]) + # Check that the date picker is hidden again + self.assertEqual( + self.get_css_value('#calendarbox0', 'display'), 'none') + + # Then, with the time picker widget ---------------------------------- + # Check that the time picker is hidden + self.assertEqual( + self.get_css_value('#clockbox0', 'display'), 'none') + # Click the time icon + self.selenium.find_element_by_id('clocklink0').click() + # Check that the time picker is visible + self.assertEqual( + self.get_css_value('#clockbox0', 'display'), 'block') + # Press the ESC key + self.selenium.find_element_by_tag_name('html').send_keys([Keys.ESCAPE]) + # Check that the time picker is hidden again + self.assertEqual( + self.get_css_value('#clockbox0', 'display'), 'none') |
