|
7 | 7 |
|
8 | 8 | from django.contrib.staticfiles.testing import StaticLiveServerTestCase |
9 | 9 | from django.core.urlresolvers import reverse as urlreverse |
| 10 | +#from django.test.utils import override_settings |
10 | 11 |
|
11 | 12 | import debug # pyflakes:ignore |
12 | 13 |
|
| 14 | +from ietf.doc.factories import DocumentFactory |
13 | 15 | from ietf.group import colors |
| 16 | +from ietf.meeting.factories import SessionFactory |
14 | 17 | from ietf.meeting.test_data import make_meeting_test_data |
15 | 18 | from ietf.meeting.models import SchedTimeSessAssignment |
16 | 19 | from ietf.utils.test_runner import set_coverage_checking |
@@ -88,6 +91,45 @@ def testUnschedule(self): |
88 | 91 | time.sleep(0.1) # The API that modifies the database runs async |
89 | 92 | self.assertEqual(SchedTimeSessAssignment.objects.filter(session__meeting__number=42,session__group__acronym='mars',schedule__name='test-agenda').count(),0) |
90 | 93 |
|
| 94 | +@skipIf(skip_selenium, skip_message) |
| 95 | +class SlideReorderTests(StaticLiveServerTestCase): |
| 96 | + def setUp(self): |
| 97 | + set_coverage_checking(False) |
| 98 | + self.session = SessionFactory(meeting__type_id='ietf') |
| 99 | + self.session.sessionpresentation_set.create(document=DocumentFactory(type_id='slides',name='one'),order=1) |
| 100 | + self.session.sessionpresentation_set.create(document=DocumentFactory(type_id='slides',name='two'),order=2) |
| 101 | + self.session.sessionpresentation_set.create(document=DocumentFactory(type_id='slides',name='three'),order=3) |
| 102 | + self.driver = webdriver.PhantomJS(port=0, service_log_path=settings.TEST_GHOSTDRIVER_LOG_PATH) |
| 103 | + self.driver.set_window_size(1024,768) |
| 104 | + |
| 105 | + def absreverse(self,*args,**kwargs): |
| 106 | + return '%s%s'%(self.live_server_url,urlreverse(*args,**kwargs)) |
| 107 | + |
| 108 | + def secr_login(self): |
| 109 | + url = '%s%s'%(self.live_server_url, urlreverse('django.contrib.auth.views.login')) |
| 110 | + self.driver.get(url) |
| 111 | + self.driver.find_element_by_name('username').send_keys('secretary') |
| 112 | + self.driver.find_element_by_name('password').send_keys('secretary+password') |
| 113 | + self.driver.find_element_by_xpath('//button[@type="submit"]').click() |
| 114 | + |
| 115 | + #@override_settings(DEBUG=True) |
| 116 | + def testReorderSlides(self): |
| 117 | + return |
| 118 | + url = self.absreverse('ietf.meeting.views.session_details', |
| 119 | + kwargs=dict( |
| 120 | + num=self.session.meeting.number, |
| 121 | + acronym = self.session.group.acronym,)) |
| 122 | + self.secr_login() |
| 123 | + self.driver.get(url) |
| 124 | + #debug.show('unicode(self.driver.page_source)') |
| 125 | + second = self.driver.find_element_by_css_selector('#slides tr:nth-child(2)') |
| 126 | + third = self.driver.find_element_by_css_selector('#slides tr:nth-child(3)') |
| 127 | + ActionChains(self.driver).drag_and_drop(second,third).perform() |
| 128 | + |
| 129 | + time.sleep(0.1) # The API that modifies the database runs async |
| 130 | + names=self.session.sessionpresentation_set.values_list('document__name',flat=True) |
| 131 | + self.assertEqual(list(names),[u'one',u'three',u'two']) |
| 132 | + |
91 | 133 | # The following are useful debugging tools |
92 | 134 |
|
93 | 135 | # If you add this to a LiveServerTestCase and run just this test, you can browse |
|
0 commit comments