source: products/collective.referencedatagridfield/trunk/collective/referencedatagridfield/tests/testPopup.py @ 3358

Last change on this file since 3358 was 2353, checked in by mylan, 14 years ago

Rename all quintagroup occurence to collective, remove copyright from LICENSE.txt, update keywords, author in setup.py

  • Property svn:eol-style set to native
File size: 2.4 KB
Line 
1import re
2import unittest
3
4from zope.publisher.browser import TestRequest
5from zope.formlib.namedtemplate import INamedTemplate
6from zope.component import queryAdapter, queryMultiAdapter
7
8from Products.Five import BrowserView
9
10from Products.PloneTestCase.PloneTestCase import portal_owner
11from Products.PloneTestCase.PloneTestCase import default_password
12
13from collective.referencedatagridfield import ReferenceDataGridWidget
14from collective.referencedatagridfield.tests.base import TestCase
15from collective.referencedatagridfield.tests.base import FunctionalTestCase
16
17
18class TestPopupRegistrations(TestCase):
19    """Test popup related adapters registration."""
20
21    def afterSetUp(self):
22        self.req = TestRequest()
23
24    def test_CustomNamedTemplate(self):
25        view = BrowserView(self.portal, self.req)
26        custom_named_template = queryAdapter(view, INamedTemplate, name="datagridref_popup")
27        self.assertNotEqual(custom_named_template, None)
28       
29    def test_RefDataGridBrowser_popup(self):
30        popup_page = queryMultiAdapter((object(), self.req), name="refdatagridbrowser_popup")
31        self.assertNotEqual(popup_page, None)
32
33    def test_WidgetBindToNamedTemplate(self):
34        rdgw_props = ReferenceDataGridWidget._properties
35        self.assertEqual(rdgw_props.get("popup_name", ""), "datagridref_popup")
36
37
38class TestPopupRelatedStaff(FunctionalTestCase):
39    """Test pupup related staff in edit mode of ReferenceDataGridWidget."""
40
41    def testAddReferenceButton(self):
42        self.loginAsPortalOwner()
43        # Prepare testing data and data for functional test
44        self.createDemo()
45        self.demo.edit(demo_rdgf=[{"link": "http://google.com"}])
46        html = self.publish("/%s/edit" % self.demo.absolute_url(1),
47                            portal_owner+':'+default_password).getBody()
48        # Get Add... button
49        rebutt = re.compile("<input\s+[^>]*type=\"button\"\s*[^>]*>", re.S)
50        add_button = filter(lambda k:not "_new" in k, rebutt.findall(html))[0]
51        src = re.search("src=\"([^\"]*)\"", add_button).groups()[0]
52        # src url must points to refdatagridbrowser_popup view
53        url = self.demo.absolute_url() + '/refdatagridbrowser_popup?'
54        self.assertEqual(src.startswith(url), True)
55
56
57def test_suite():
58    return unittest.TestSuite([
59        unittest.makeSuite(TestPopupRegistrations),
60        unittest.makeSuite(TestPopupRelatedStaff),
61        ])
Note: See TracBrowser for help on using the repository browser.