aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_integration.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_integration.py')
-rw-r--r--tests/test_integration.py37
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/test_integration.py b/tests/test_integration.py
index 19cb77a..9a3fbcc 100644
--- a/tests/test_integration.py
+++ b/tests/test_integration.py
@@ -2,10 +2,19 @@
from __future__ import unicode_literals
+import os
from xml.etree import ElementTree as ET
-from django.test import TestCase, RequestFactory
+try:
+ from selenium import webdriver
+ from selenium.common.exceptions import NoSuchElementException
+ from selenium.webdriver.support.wait import WebDriverWait
+except ImportError:
+ webdriver = None
+
+from django.test import LiveServerTestCase, RequestFactory, TestCase
from django.test.utils import override_settings
+from django.utils.unittest import skipIf, skipUnless
from debug_toolbar.middleware import DebugToolbarMiddleware, show_toolbar
@@ -92,3 +101,29 @@ class DebugToolbarIntegrationTestCase(TestCase):
def test_xml_validation(self):
response = self.client.get('/regular/XML/')
ET.fromstring(response.content) # shouldn't raise ParseError
+
+
+@skipIf(webdriver is None, "selenium isn't installed")
+@skipUnless('DJANGO_SELENIUM_TESTS' in os.environ, "selenium tests not requested")
+@override_settings(DEBUG=True)
+class DebugToolbarLiveTestCase(LiveServerTestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ super(DebugToolbarLiveTestCase, cls).setUpClass()
+ cls.selenium = webdriver.Firefox()
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.selenium.quit()
+ super(DebugToolbarLiveTestCase, cls).tearDownClass()
+
+ def test_basic(self):
+ self.selenium.get(self.live_server_url + '/regular/basic/')
+ version_button = self.selenium.find_element_by_class_name('VersionDebugPanel')
+ version_panel = self.selenium.find_element_by_id('VersionDebugPanel')
+ with self.assertRaises(NoSuchElementException):
+ version_panel.find_element_by_tag_name('table')
+ version_button.click() # load contents of the version panel
+ WebDriverWait(self.selenium, timeout=10).until(
+ lambda selenium: version_panel.find_element_by_tag_name('table'))