예제 #1
0
    def test_target_blank_for_remote_tasks(self):
        link = self.add_task_and_get_link(admin_unit_id='additional')
        link_tag = link.xpath(css_to_xpath('a'))[0]
        span_tag = link.xpath(css_to_xpath('a span'))[0]

        self.assertEquals('_blank', link_tag.get('target'))
        self.assertEquals('contenttype-opengever-task-remote-task', span_tag.get('class'))
예제 #2
0
    def test_target_blank_for_remote_tasks(self):
        link = self.add_task_and_get_link(admin_unit_id='additional')
        link_tag = link.xpath(css_to_xpath('a'))[0]
        span_tag = link.xpath(css_to_xpath('a span'))[0]

        self.assertEquals('_blank', link_tag.get('target'))
        self.assertEquals('icon-task-remote-task', span_tag.get('class'))
    def test_task_is_not_linked_when_user_has_no_access(self):
        link = self.add_task_and_get_link(principals=[])
        self.assertEquals([], link.xpath(css_to_xpath('a')))

        # check that all the other parts are the same
        self.assertEquals('wf-task-state-tested-and-closed',
                          link.xpath(css_to_xpath('span'))[0].get('class'))
        self.assertEquals('Do it!', link.xpath(css_to_xpath('span'))[1].text)
        self.assertEquals('(Org Unit 1 / Test User (test_user_1_))',
                          link.xpath(css_to_xpath('span'))[2].text)
예제 #4
0
    def test_task_is_not_linked_when_user_has_no_access(self):
        link = self.add_task_and_get_link(principals=[])
        self.assertEquals([], link.xpath(css_to_xpath('a')))

        # check that all the other parts are the same
        self.assertEquals('wf-task-state-tested-and-closed',
                          link.xpath(css_to_xpath('span'))[0].get('class'))
        self.assertEquals('Do it!',
                          link.xpath(css_to_xpath('span'))[1].text)
        self.assertEquals('(Org Unit 1 / Test User (test_user_1_))',
                          link.xpath(css_to_xpath('span'))[2].text)
예제 #5
0
    def test_fallback_when_admin_unit_not_exists(self):
        link = self.add_task_and_get_link(admin_unit_id='not-existing')

        self.assertEqual([], link.xpath(css_to_xpath('a')))
        self.assertEqual('span', link.tag)
        self.assertEqual('Do it!', link.text)
        self.assertEqual('contenttype-opengever-task-remote-task', link.get('class'))
예제 #6
0
    def test_link_title_is_breadcrumb(self):
        link = self.add_task_and_get_link()
        link_tag = link.xpath(css_to_xpath('a'))[0]

        self.assertEquals(
            '[Client1] > 0 Allgemeines > 01 SonstigesTestdossier 4tw > Testaufgabe',
            link_tag.get('title'))
예제 #7
0
    def test_task_is_linked_when_user_has_access(self):
        link = self.add_task_and_get_link()
        link_tag = link.xpath(css_to_xpath('a'))[0]

        self.assertEquals(
            'http://example.com/qux/dossier-1/task-2',
            link_tag.get('href'))
예제 #8
0
    def test_fallback_when_admin_unit_not_exists(self):
        link = self.add_task_and_get_link(admin_unit_id='not-existing')

        self.assertEqual([], link.xpath(css_to_xpath('a')))
        self.assertEqual('span', link.tag)
        self.assertEqual('Do it!', link.text)
        self.assertEqual('icon-task-remote-task', link.get('class'))
예제 #9
0
    def test_task_is_linked_when_user_has_access(self):
        link = self.add_task_and_get_link()
        link_tag = link.xpath(css_to_xpath('a'))[0]

        self.assertEquals(
            'http://example.com/qux/dossier-1/task-2',
            link_tag.get('href'))
예제 #10
0
    def test_task_is_always_linked_when_user_has_manager_role(self):
        self.grant('Manager')
        link = self.add_task_and_get_link(principals=[])
        link_tag = link.xpath(css_to_xpath('a'))[0]

        self.assertEquals('http://example.com/qux/dossier-1/task-2',
                          link_tag.get('href'))
예제 #11
0
    def test_link_title_is_breadcrumb(self):
        link = self.add_task_and_get_link()
        link_tag = link.xpath(css_to_xpath('a'))[0]

        self.assertEquals(
            '[Admin Unit 1] > 0 Allgemeines > 01 SonstigesTestdossier 4tw > Testaufgabe',
            link_tag.get('title'))
예제 #12
0
    def test_link_is_suffixed_with_responsible_info_by_default(self):
        link = self.add_task_and_get_link()
        suffix = link.xpath(css_to_xpath('span'))[2]

        self.assertEquals('(Org Unit 1 / Test User (test_user_1_))',
                          suffix.text)
        self.assertEquals('discreet', suffix.get('class'))
예제 #13
0
    def test_link_is_xss_safe(self):
        link = self.add_task_and_get_link(
            title="Foo <b onmouseover=alert('Wufff!')>click me!</b>")

        link_tag = link.xpath(css_to_xpath('a span'))[0]
        self.assertEquals(
            '<span class="contenttype-opengever-task-task">Foo &lt;b onmouseover=alert(\'Wufff!\')&gt;click me!&lt;/b&gt;</span>',
            tostring(link_tag))
예제 #14
0
    def test_task_is_always_linked_when_user_has_manager_role(self):
        self.grant('Manager')
        link = self.add_task_and_get_link(principals=[])
        link_tag = link.xpath(css_to_xpath('a'))[0]

        self.assertEquals(
            'http://example.com/qux/dossier-1/task-2',
            link_tag.get('href'))
예제 #15
0
    def test_link_is_xss_safe(self):
        link = self.add_task_and_get_link(
            title="Foo <b onmouseover=alert('Wufff!')>click me!</b>")

        link_tag = link.xpath(css_to_xpath('a span'))[0]
        self.assertEquals(
            '<span class="contenttype-opengever-task-task">Foo &lt;b onmouseover=alert(\'Wufff!\')&gt;click me!&lt;/b&gt;</span>',
            tostring(link_tag))
예제 #16
0
    def test_link_breadcrumb_part_is_xss_safe(self):
        link = self.add_task_and_get_link(
            breadcrumb_title='0 Allg. > <b>4tw</b> > Task')

        link_tag = link.xpath(css_to_xpath('a'))[0]

        #INFO: link_tag.attr['titles'] automatically decodes html entities
        self.assertEquals(
            '<a href="http://example.com/qux/dossier-1/task-2" '
            'title="[Admin Unit 1] &gt; 0 Allg. &gt; &lt;b&gt;4tw&lt;/b&gt; &gt; '
            'Task"><span class="contenttype-opengever-task-task">Do it!</span>'
            '</a>  ', tostring(link_tag))
예제 #17
0
    def test_link_breadcrumb_part_is_xss_safe(self):
        link = self.add_task_and_get_link(
            breadcrumb_title='0 Allg. > <b>4tw</b> > Task')

        link_tag = link.xpath(css_to_xpath('a'))[0]

        #INFO: link_tag.attr['titles'] automatically decodes html entities
        self.assertEquals(
            '<a href="http://example.com/qux/dossier-1/task-2" '
            'title="[Admin Unit 1] &gt; 0 Allg. &gt; &lt;b&gt;4tw&lt;/b&gt; &gt; '
            'Task"><span class="contenttype-opengever-task-task">Do it!</span>'
            '</a>  ',
            tostring(link_tag))
예제 #18
0
    def test_link_contains_contenttype_class(self):
        link = self.add_task_and_get_link()
        span_tag = link.xpath(css_to_xpath('a span'))[0]

        self.assertEquals('contenttype-opengever-task-task',
                          span_tag.get('class'))
예제 #19
0
 def test_state_prefixe_is_parametrable(self):
     task = self.add_task()
     link = fromstring(task.get_link(with_state_icon=False))
     self.assertEqual(None, link.xpath(css_to_xpath('span'))[0].get('css'))
예제 #20
0
    def test_responsible_info_is_parametrable(self):
        task = self.add_task()
        link = fromstring(task.get_link(with_responsible_info=False))

        self.assertEquals(
            'Do it!', link.xpath(css_to_xpath('span'))[-1].text)
예제 #21
0
    def test_handles_non_ascii_characters_correctly(self):
        link = self.add_task_and_get_link(title=u'D\xfc it')
        span_tag = link.xpath(css_to_xpath('a span'))[0]

        self.assertEquals(u'D\xfc it', span_tag.text)
예제 #22
0
    def test_handles_non_ascii_characters_correctly(self):
        link = self.add_task_and_get_link(title=u'D\xfc it')
        span_tag = link.xpath(css_to_xpath('a span'))[0]

        self.assertEquals(u'D\xfc it', span_tag.text)
예제 #23
0
    def test_link_text_is_task_title(self):
        link = self.add_task_and_get_link()
        span_tag = link.xpath(css_to_xpath('a span'))[0]

        self.assertEquals('Do it!', span_tag.text)
예제 #24
0
    def test_responsible_info_is_parametrable(self):
        task = self.add_task()
        link = fromstring(task.get_link(with_responsible_info=False))

        self.assertEquals(
            'Do it!', link.xpath(css_to_xpath('span'))[-1].text)
예제 #25
0
    def test_link_is_suffixed_with_responsible_info_by_default(self):
        link = self.add_task_and_get_link()
        suffix = link.xpath(css_to_xpath('span'))[2]

        self.assertEquals('(Org Unit 1 / Test User (test_user_1_))', suffix.text)
        self.assertEquals('discreet', suffix.get('class'))
예제 #26
0
    def test_link_contains_contenttype_class(self):
        link = self.add_task_and_get_link()
        span_tag = link.xpath(css_to_xpath('a span'))[0]

        self.assertEquals('contenttype-opengever-task-task',
                          span_tag.get('class'))
예제 #27
0
    def test_link_text_is_task_title(self):
        link = self.add_task_and_get_link()
        span_tag = link.xpath(css_to_xpath('a span'))[0]

        self.assertEquals('Do it!', span_tag.text)
예제 #28
0
 def test_is_prefixed_with_state_icon_per_default(self):
     link = self.add_task_and_get_link()
     self.assertEqual(
         'wf-task-state-tested-and-closed',
         link.xpath(css_to_xpath('span'))[0].get('class'))
예제 #29
0
 def test_is_prefixed_with_state_icon_per_default(self):
     link = self.add_task_and_get_link()
     self.assertEqual(
         'wf-task-state-tested-and-closed',
         link.xpath(css_to_xpath('span'))[0].get('class'))
예제 #30
0
 def test_state_prefixe_is_parametrable(self):
     task = self.add_task()
     link = fromstring(task.get_link(with_state_icon=False))
     self.assertEqual(None, link.xpath(css_to_xpath('span'))[0].get('css'))