コード例 #1
0
    def test_outbox(self):
        browser = Browser(self.app)
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % (
            'fromer',
            'secret',
        ))

        portalURL = self.portal.absolute_url()
        browser.open(portalURL)
        self.assertIn('fromer', browser.contents)

        browser.open(portalURL + '/@@my_mailbox')

        self.assertIn('*****@*****.**', browser.contents)
        self.assertIn('*****@*****.**', browser.contents)
        self.assertIn('Test subject 1', browser.contents)
        self.assertIn('This is a mail body.', browser.contents)
        self.assertIn('Test subject 2', browser.contents)
        self.assertIn('The body\nof the mail.', browser.contents)

        self.assertNotIn('*****@*****.**', browser.contents)

        browser = Browser(self.app)
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % (
            'toer',
            'secret',
        ))
        browser.open(portalURL + '/@@my_mailbox')
        self.assertIn('*****@*****.**', browser.contents)
コード例 #2
0
    def test_outbox(self):
        browser = Browser(self.app)
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % ('fromer', 'secret',))

        portalURL = self.portal.absolute_url()
        browser.open(portalURL)
        self.assertIn('fromer', browser.contents)
        
        browser.open(portalURL+'/@@my_mailbox')

        self.assertIn('*****@*****.**', browser.contents)
        self.assertIn('*****@*****.**', browser.contents)
        self.assertIn('Test subject 1', browser.contents)
        self.assertIn('This is a mail body.', browser.contents)
        self.assertIn('Test subject 2', browser.contents)        
        self.assertIn('The body\nof the mail.', browser.contents)
        
        self.assertNotIn('*****@*****.**', browser.contents)

        browser = Browser(self.app)
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % ('toer', 'secret',))
        browser.open(portalURL+'/@@my_mailbox')
        self.assertIn('*****@*****.**', browser.contents)
        
コード例 #3
0
    def test_tile_rendering(self):
        self.portal.invokeFactory('Folder', 'test-folder')
        self.folder = self.portal['test-folder']
        self.folder.invokeFactory('Document', 'd1')
        self.folder['d1'].setTitle(u"New title")
        self.folder['d1'].setText(u"""\
<p>
    <img
        src="/++resource++collective.tinymcetiles.plugin/placeholder.gif"
        alt="./@@dummy.tile/tile-1"
        class="mceItem mceTile"
        />
</p>
""")
        self.folder['d1'].getField('text').setContentType(self.folder['d1'],
                                                          "text/html")

        #        pw = getToolByName(self.portal, 'portal_workflow')
        #        pw.doActionFor(self.folder['d1'], 'publish')
        transaction.commit()

        browser = Browser(self.portal)
        browser.handleErrors = False

        browser.open(self.folder['d1'].absolute_url())
        self.failUnless("Test tile rendered" in browser.contents)
        self.failUnless("<p>With child tags</p>" in browser.contents)
        self.failUnless("And tail text" in browser.contents)
コード例 #4
0
    def test_send_subscriber(self):
        self.gfolder.invokeFactory('gazette.GazetteIssue', 'issue')
        issue = self.gfolder['issue']
        issue.title = u'Test issue'
        issue.text = RichTextValue('Hello world!')

        request = self.request
        adapter = getMultiAdapter((self.gfolder, request), IGazetteSubscription)
        adapter.subscribe('*****@*****.**', '')

        # activation message
        self.failUnless(len(self.mailhost.messages) == 1)

        # Activate subsriber
        soup = getSoup(self.context, config.SUBSCRIBERS_SOUP_ID)
        s = soup.query(email='*****@*****.**').next()
        s.active = True
        s.key = u''
        soup.reindex([s])

        transaction.commit()
        browser = Browser(self.layer['app'])
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))

        browser.open(issue.absolute_url() + '/send')
        self.failUnless('Number of subscribers: 1' in browser.contents)
        browser.getControl(name='submit').click()
        self.failUnless('Gazette has been sent to 1 recipients' in browser.contents)
        # activation + issue
        self.failUnless(len(self.mailhost.messages) == 2)
コード例 #5
0
    def test_myanswer(self):
        app = self.layer['app']        
        portal = self.layer['portal']
        
        browser = Browser(app)
        browser.handleErrors = False
        
        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
        import transaction
        transaction.commit()
#        import pdb
#        pdb.set_trace()
        setRoles(portal, TEST_USER_ID, ('Manager',))
        m9 =portal.absolute_url()+'/@@myanswer'
#        import pdb
#        pdb.set_trace() 
#        browser.open(portal.absolute_url())
#        browser.open("%s/@@dam-report" % portal.absolute_url())
        browser.open( m9)
        
        open('/tmp/test.html','w').write(browser.contents)

#        self.assertTrue("3" in browser.contents)
        self.assertTrue("monst" in browser.contents)
        self.assertTrue("fast" in browser.contents)
        self.assertTrue("Next" in browser.contents)
コード例 #6
0
    def test_existing_content_tile_private(self):
        """When the current user does not have enough permissions to view
        the content linked to existing content tile, the tile renders
        empty"""
        self.portal.portal_workflow.setDefaultChain(
            'simple_publication_workflow')

        page_id = self.portal.invokeFactory(
            'Document', 'an-another-page',
            title=u'An another page', description=u'A description',
            text=u'Hello World!'
        )
        self.portal[page_id].text = RichTextValue(u'Hello World!')

        page_uuid = IUUID(self.portal[page_id])

        transaction.commit()

        browser = Browser(self.layer['app'])
        browser.handleErrors = False
        browser.open(
            self.portalURL +
            '/@@plone.app.standardtiles.existingcontent/unique?content_uid=' +
            page_uuid
        )

        self.assertNotIn(u'Hello World!', browser.contents)
        self.assertIn(u'<body></body>', browser.contents)
コード例 #7
0
ファイル: test_collection.py プロジェクト: kkdhanesh/NBADEMO
 def test_collection_templates(self):
     data = getData('image.png')
     # add an image that will be listed by the collection
     self.portal.invokeFactory("Image",
                               "image",
                               title="Image example",
                               image=data)
     # Search for images
     query = [{
         'i': 'Type',
         'o': 'plone.app.querystring.operation.string.is',
         'v': 'Image',
     }]
     # set the query and publish the collection
     self.collection.setQuery(query)
     commit()
     logout()
     # open a browser to see if our image is in the results
     browser = Browser(self.layer['app'])
     browser.handleErrors = False
     browser.open(self.collection.absolute_url())
     self.assertTrue("Image example" in browser.contents)
     # open summary_view template
     browser.open('%s/summary_view' % self.collection.absolute_url())
     self.assertTrue("Image example" in browser.contents)
     # open folder_summary_view template
     browser.open('%s/folder_summary_view' % self.collection.absolute_url())
     self.assertTrue("Image example" in browser.contents)
     # open thumbnail_view template
     browser.open('%s/thumbnail_view' % self.collection.absolute_url())
     self.assertTrue("Image example" in browser.contents)
コード例 #8
0
ファイル: tests.py プロジェクト: vedantc98/Plone-test
    def test_redirect_to_uuid_invalid_uuid(self):
        portal = self.layer['portal']
        app = self.layer['app']

        setRoles(portal, TEST_USER_ID, ['Manager'])

        portal.invokeFactory('Document', 'd1')
        portal.invokeFactory('Document', 'd2')

        import transaction
        transaction.commit()

        from plone.testing.z2 import Browser
        browser = Browser(app)
        browser.handleErrors = False
        browser.addHeader(
            'Authorization', 'Basic {0}:{1}'.format(
                TEST_USER_ID,
                TEST_USER_PASSWORD,
            ))

        url = '{0}/@@redirect-to-uuid/gibberish'
        from zope.publisher.interfaces import NotFound
        with self.assertRaises(NotFound):
            browser.open(url.format(portal.absolute_url()))
コード例 #9
0
ファイル: tests.py プロジェクト: CGTIC/Plone_SP
    def test_edit(self):
        browser = Browser(self.layer['app'])
        browser.handleErrors = False

        self.folder.invokeFactory('MyDocument', 'd1')
        self.folder['d1'].title = u"New title"

        transaction.commit()

        uuid = IUUID(self.folder['d1'])

        # Login
        browser.open(self.portal.absolute_url() + '/login')
        browser.getControl(name='__ac_name').value = TEST_USER_NAME
        browser.getControl(name='__ac_password').value = TEST_USER_PASSWORD
        browser.getControl('Log in').click()

        # Enter the edit screen
        browser.open(self.folder['d1'].absolute_url() + '/edit')

        # We should now have cookies with the drafts information
        cookies = browser.cookies.forURL(browser.url)
        self.assertEquals('"%s"' % self.folder['d1'].absolute_url_path(), cookies['plone.app.drafts.path'])
        self.assertEquals('"%s"' % uuid, cookies['plone.app.drafts.targetKey'])
        self.failIf('plone.app.drafts.draftName' in browser.cookies.forURL(browser.url))

        # We can now save the page. The cookies should expire.
        browser.getControl(name='form.buttons.save').click()
        self.failIf('plone.app.drafts.targetKey' in browser.cookies.forURL(browser.url))
        self.failIf('plone.app.drafts.path' in browser.cookies.forURL(browser.url))
        self.failIf('plone.app.drafts.draftName' in browser.cookies.forURL(browser.url))
コード例 #10
0
ファイル: tests.py プロジェクト: CGTIC/Plone_SP
    def test_add_to_folder(self):
        browser = Browser(self.layer['app'])
        browser.handleErrors = False
        
        uuid = IUUID(self.folder)
        
        # Login
        browser.open(self.portal.absolute_url() + '/login')
        browser.getControl(name='__ac_name').value = TEST_USER_NAME
        browser.getControl(name='__ac_password').value = TEST_USER_PASSWORD
        browser.getControl('Log in').click()
        
        # Enter the add screen for a temporary portal_factory-managed object
        browser.open(self.folder.absolute_url() + '/portal_factory/Document/document.2010-02-04.2866363923/edit')

        # Confirm pass CSRF protection
        try:
            browser.getControl(name='form.button.confirm').click()
        except LookupError:
            pass

        # We should now have cookies with the drafts information
        cookies = browser.cookies.forURL(browser.url)
        self.assertEquals(
                '"%s/portal_factory/Document/document.2010-02-04.2866363923"' % self.folder.absolute_url_path(),
                cookies['plone.app.drafts.path']
            )
        self.assertEquals('"%s%%3ADocument"' % uuid, cookies['plone.app.drafts.targetKey'])
        self.failIf('plone.app.drafts.draftName' in browser.cookies.forURL(browser.url))
        
        # We can now cancel the edit. The cookies should expire.
        browser.getControl(name='form.button.cancel').click()
        self.failIf('plone.app.drafts.targetKey' in browser.cookies.forURL(browser.url))
        self.failIf('plone.app.drafts.path' in browser.cookies.forURL(browser.url))
コード例 #11
0
    def test_view(self):

        app = self.layer['app']
        portal = self.layer['portal']

        browser = Browser(app)
        browser.handleErrors = False
        browser.addHeader(
            'Authorization', 'Basic %s:%s' % (
                TEST_USER_NAME,
                TEST_USER_PASSWORD,
            ))

        import transaction
        transaction.commit()
        obj = portal.absolute_url() + '/nashuiku1/nashuiren1'
        page = obj + '/@@nashuiren_view'
        browser.open(page)
        #        open('/tmp/test.html', 'w').write(browser.contents)

        outstr = '<span>888202</span>'
        self.assertTrue(outstr in browser.contents)

        outstr = 'data-property="yinhuashui"'
        self.assertTrue(outstr in browser.contents)
        outstr = '<td class="col-md-1 text-center">0</td>'
        self.assertTrue(outstr in browser.contents)
コード例 #12
0
ファイル: tests.py プロジェクト: CGTIC/Plone_SP
    def test_add_to_folder(self):
        browser = Browser(self.layer['app'])
        browser.handleErrors = False

        # Login
        browser.open(self.portal.absolute_url() + '/login')
        browser.getControl(name='__ac_name').value = TEST_USER_NAME
        browser.getControl(name='__ac_password').value = TEST_USER_PASSWORD
        browser.getControl('Log in').click()

        # Enter the add screen for a temporary portal_factory-managed object
        browser.open(self.folder.absolute_url() + '/++add++MyDocument')

        # We should now have cookies with the drafts information
        cookies = browser.cookies.forURL(browser.url)
        self.assertEquals(
            '"%s"' % self.folder.absolute_url_path(),
            cookies['plone.app.drafts.path']
        )
        self.assertEquals('"%2B%2Badd%2B%2BMyDocument"', cookies['plone.app.drafts.targetKey'])
        self.failIf('plone.app.drafts.draftName' in browser.cookies.forURL(browser.url))

        # We can now cancel the edit. The cookies should expire.
        browser.getControl(name='form.buttons.cancel').click()
        self.failIf('plone.app.drafts.targetKey' in browser.cookies.forURL(browser.url))
        self.failIf('plone.app.drafts.path' in browser.cookies.forURL(browser.url))
コード例 #13
0
    def test_select_or_upload_invariant(self):
        portal = self.layer['portal']
    
        browser = Browser(portal)
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))

        browser.open('http://nohost/plone/test-repository/++add++collective.chimpdrill.template')

        # No values filled in
        browser.getControl(name='form.buttons.save').click()
        self.assertEqual("http://nohost/plone/test-repository/++add++collective.chimpdrill.template", browser.url)
        self.assertTrue('You must either select a Mailchimp Template or provide a name and template code to create a new template' in browser.contents)
       
        # No template, title, no template code, should fail 
        browser.getControl(name='form.widgets.upload_title').value = "Test Template 3"
        browser.getControl(name='form.widgets.description').value = u"Test Upload Description"
        browser.getControl(name='form.buttons.save').click()
        self.assertEqual("http://nohost/plone/test-repository/++add++collective.chimpdrill.template", browser.url)
        self.assertTrue('You must either select a Mailchimp Template or provide a name and template code to create a new template' in browser.contents)

        # No template, no title, template code, should fail 
        browser.getControl(name='form.widgets.upload_title').value = ""
        browser.getControl(name='form.widgets.template_code').value = MC_TEMPLATE_HTML
        browser.getControl(name='form.widgets.description').value = u"Test Upload Description"
        browser.getControl(name='form.buttons.save').click()
        self.assertEqual("http://nohost/plone/test-repository/++add++collective.chimpdrill.template", browser.url)
        self.assertTrue('You must either select a Mailchimp Template or provide a name and template code to create a new template' in browser.contents)
コード例 #14
0
    def test_create_new_template(self):
        portal = self.layer['portal']
    
        browser = Browser(portal)
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
        browser.open('http://nohost/plone/test-repository/++add++collective.chimpdrill.template')
    
        browser.getControl(name='form.widgets.upload_title').value = "Test Template 3"
        browser.getControl(name='form.widgets.template_code').value = MC_TEMPLATE_HTML
        browser.getControl(name='form.widgets.description').value = u"Test Upload Description"
        browser.getControl(name='form.widgets.email_subject').value = u"Test Template 3 Subject"
        browser.getControl(name='form.widgets.from_email').value = u"*****@*****.**"
        browser.getControl(name='form.widgets.from_name').value = u"Jack Black"
        browser.getControl(name='form.buttons.save').click()
    
        self.assertEqual("http://nohost/plone/test-repository/test-template-3/view", browser.url)
        self.assertTrue('Test Template 3' in browser.contents)
        self.assertTrue('Test Upload Description' in browser.contents)

        template = portal.unrestrictedTraverse('test-repository/test-template-3')
        self.assertEqual(template.mandrill_template, 'mailchimp-3')
        self.assertEqual(template.mandrill_template_info['name'], 'mailchimp-3')
        self.assertEqual(template.mailchimp_template_info['name'], 'Test Template 3')

        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
        browser.open('http://nohost/plone/test-repository/test-template-3/preview')

        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
        browser.open('http://nohost/plone/test-repository/test-template-3/send_email')
        browser.getControl(name='form.widgets.send_to')
コード例 #15
0
 def anonymous_browser(self):
     """Browser of anonymous
     """
     from plone.testing.z2 import Browser
     browser = Browser(self['app'])
     browser.handleErrors = False
     return browser
コード例 #16
0
    def test_edit_multiple_existing_drafts(self):
        browser = Browser(self.layer['app'])
        browser.handleErrors = False

        self.folder.invokeFactory('Document', 'd1')
        self.folder['d1'].setTitle(u'New title')

        transaction.commit()

        uuid = IUUID(self.folder['d1'])

        # Create two drafts for this object - we don't expect either to be used
        storage = getUtility(IDraftStorage)
        storage.createDraft(TEST_USER_ID, str(uuid))
        storage.createDraft(TEST_USER_ID, str(uuid))

        # Login
        browser.open(self.portal.absolute_url() + '/login')
        browser.getControl(name='__ac_name').value = TEST_USER_NAME
        browser.getControl(name='__ac_password').value = TEST_USER_PASSWORD
        browser.getControl('Log in').click()

        # Enter the edit screen
        browser.open(self.folder['d1'].absolute_url() + '/edit')

        # Confirm pass CSRF protection
        try:
            browser.getControl(name='form.button.confirm').click()
        except LookupError:
            pass

        # We should now have cookies with the drafts information
        cookies = browser.cookies.forURL(browser.url)
        self.assertEqual(
            '"{0}"'.format(self.folder['d1'].absolute_url_path()),
            cookies['plone.app.drafts.path'],
        )
        self.assertEqual(
            '"{0}"'.format(uuid),
            cookies['plone.app.drafts.targetKey'],
        )
        self.assertNotIn(
            'plone.app.drafts.draftName',
            browser.cookies.forURL(browser.url),
        )

        # We can now save the page. The cookies should expire.
        browser.getControl(name='form.button.save').click()
        self.assertNotIn(
            'plone.app.drafts.targetKey',
            browser.cookies.forURL(browser.url),
        )
        self.assertNotIn(
            'plone.app.drafts.path',
            browser.cookies.forURL(browser.url),
        )
        self.assertNotIn(
            'plone.app.drafts.draftName',
            browser.cookies.forURL(browser.url),
        )
コード例 #17
0
    def test_functional(self):
        """ """
        portal = self.layer['portal']
        app = self.layer['app']
        browser = Browser(app)
        browser.handleErrors = False

        self.register_users()

        login(portal, TEST_USER_NAME)
        setRoles(portal, TEST_USER_ID, ('Manager',))
        id = portal.invokeFactory(
                            'Event', 
                            'plone-conference',
                            title='Plone Conference')
        transaction.commit()

        browser.open(portal.absolute_url() + '/login_form')
        browser.getControl(name='__ac_name').value = TEST_USER_NAME
        browser.getControl(name='__ac_password').value = TEST_USER_PASSWORD
        browser.getControl(name='submit').click()

        browser.open('%s/@@invite-attendees' % portal['plone-conference'].absolute_url())
        # XXX: Can't set the value of the UserAndGroupSelectionWidget because the <select> 
        # doesn't have any <option> elements to choose from. Instead it's populated via 
        # javascript which we cannot do via zc.testbrowser.
        att = browser.getControl(name="form.widgets.internal_attendees:list")
        name = browser.getControl(name='form.widgets.external_attendees.AA.widgets.name')
        email = browser.getControl(name='form.widgets.external_attendees.AA.widgets.email')
        email_all = browser.getControl(name="form.buttons.email_all")
コード例 #18
0
ファイル: tests.py プロジェクト: CGTIC/Plone_SP
    def test_add_to_portal_root_save(self):
        browser = Browser(self.layer['app'])
        browser.handleErrors = False

        # Login
        browser.open(self.portal.absolute_url() + '/login')
        browser.getControl(name='__ac_name').value = TEST_USER_NAME
        browser.getControl(name='__ac_password').value = TEST_USER_PASSWORD
        browser.getControl('Log in').click()

        # Enter the add screen for a temporary portal_factory-managed object
        browser.open(self.portal.absolute_url() + '/++add++MyDocument')

        # We should now have cookies with the drafts information
        cookies = browser.cookies.forURL(browser.url)
        self.assertEquals('"/plone"', cookies['plone.app.drafts.path'])
        self.assertEquals('"%2B%2Badd%2B%2BMyDocument"', cookies['plone.app.drafts.targetKey'])
        self.failIf('plone.app.drafts.draftName' in browser.cookies.forURL(browser.url))

        # We can now fill in the required fields and save. The cookies should expire.

        browser.getControl(name='form.widgets.IDublinCore.title').value = u"New Document"
        browser.getControl(name='form.buttons.save').click()
        self.failIf('plone.app.drafts.targetKey' in browser.cookies.forURL(browser.url))
        self.failIf('plone.app.drafts.path' in browser.cookies.forURL(browser.url))
        self.failIf('plone.app.drafts.draftName' in browser.cookies.forURL(browser.url))
コード例 #19
0
 def test_virtual_hosting(self):
     from Products.SiteAccess.VirtualHostMonster import manage_addVirtualHostMonster
     from Products.SiteAccess.VirtualHostMonster import VirtualHostMonster
     manage_addVirtualHostMonster(self.app)
     self.assertTrue(VirtualHostMonster.id in self.app.objectIds())
     self.portal.invokeFactory('Document', 'a_page')
     self.assertTrue('a_page' in self.portal.objectIds())
     self.portal.invokeFactory('Folder', 'a_folder')
     self.assertTrue('a_folder' in self.portal.objectIds())
     import transaction
     transaction.commit()
     browser = Browser(self.app)
     browser.addHeader(
         'Authorization', 'Basic %s:%s' % (
             TEST_USER_NAME,
             TEST_USER_PASSWORD,
         ))
     url = self.app.absolute_url(
     ) + '/VirtualHostBase/http/www.buystuff.com:80/plone/a_page?MIGHT_REDIRECT=1'
     browser.open(url)
     self.assertEqual(url, browser.url)
     url = self.app.absolute_url(
     ) + '/VirtualHostBase/http/www.buystuff.com:80/plone/a_folder/a_page?MIGHT_REDIRECT=1'
     browser.open(url)
     self.assertNotEqual(url, browser.url)
     browser.handleErrors = False
     url = self.app.absolute_url(
     ) + '/VirtualHostBase/http/www.buystuff.com:80/plone/VirtualHostRoot/_vh_z/a_page?MIGHT_REDIRECT=1'
     browser.open(url)
     self.assertEqual(url, browser.url)
コード例 #20
0
    def test_publishing_a_vulnerability_makes_it_visible_to_anonymous(self):
        plonesite = self.layer["portal"]
        workflow = plonesite.portal_workflow
        
        login(plonesite, TEST_USER_NAME)
        setRoles(plonesite, TEST_USER_ID, ["Manager", "Member"])
        transaction.commit()

        # Allow vulnerabilities to be added to the site root
        fti = plonesite.portal_types['vulnerability']
        fti.global_allow = True
        transaction.commit()

        vulnerability = createContentInContainer(plonesite, 'vulnerability', title=u"Vulnerability 1")
        transaction.commit()
        
        app = self.layer["app"]
        browser = Browser(app)
        browser.handleErrors = False
        
        # Try navigating to a draft vulnerability as an Anonymous user
        with self.assertRaises(Unauthorized):
            browser.open(vulnerability.absolute_url())
        
        # Publish the vulnerability and try visiting it again
        workflow.doActionFor(vulnerability, 'publish')
        transaction.commit()
        
        browser.open(vulnerability.absolute_url())
        self.assertTrue(u"Vulnerability 1" in browser.contents)
コード例 #21
0
    def test_workbook_browser_import(self):
        """
        A workbook can be imported in the browser.
        """
        import transaction
        transaction.commit()
        
        from plone.testing.z2 import Browser
        browser = Browser(self.layer['app'])
        browser.handleErrors = False
        browser.open(self.portal.absolute_url() + '/login_form')
        browser.getControl(
            name='__ac_name').value = pa_testing.SITE_OWNER_NAME
        browser.getControl(
            name='__ac_password').value = pa_testing.SITE_OWNER_PASSWORD
        browser.getControl(name='submit').click()

        import mimetypes
        browser.open(self.portal.absolute_url() + '/workbook-import')
        workbook_ctrl = browser.getControl(name='form.widgets.workbook')
        workbook_ctrl.add_file(
            open(self.workbook_path),
            mimetypes.guess_type(self.workbook_path)[0],
            os.path.basename(self.workbook_path))
        
        self.assertNotIn(
            'foo-document-title', self.portal,
            'Content exists before importing')
        browser.getControl('Import').click()
        self.assertIn(
            'foo-document-title', self.portal,
            'Content not created from import')
コード例 #22
0
    def test_barsview_mini(self):

        app = self.layer['app']
        portal = self.layer['portal']
       
        browser = Browser(app)
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
        
        import transaction
        transaction.commit()
        page = portal.absolute_url() + '/orgnizationfolder1/@@barsview_mini'        
        url1 = portal.absolute_url() + '/orgnizationfolder1/orgnization1'
        isrc1 = portal.absolute_url() + '/orgnizationfolder1/orgnization1' + "/@@images/image/mini"
        title1= "Gif image" 
        url2 = portal.absolute_url() + '/orgnizationfolder1/orgnization2'
        isrc2 = portal.absolute_url() + '/orgnizationfolder1/orgnization2' + "/@@images/image/mini"
        title2= "Jpeg image"  
        url3 = portal.absolute_url() + '/orgnizationfolder1/orgnization3'
        isrc3 = portal.absolute_url() + '/orgnizationfolder1/orgnization3' + "/@@images/image/mini"
        title3= "Png image"                
        browser.open(page)
        lookstr1 = '<div class="banner"><a href="%s"><img src="%s" alt="%s" /></a></div>' % (url1,isrc1,title1)
        lookstr2 = '<div class="banner"><a href="%s"><img src="%s" alt="%s" /></a></div>' % (url2,isrc2,title2) 
        lookstr3 = '<div class="banner"><a href="%s"><img src="%s" alt="%s" /></a></div>' % (url3,isrc3,title3)                
#        import pdb
#        pdb.set_trace()


        self.assertTrue(lookstr1 in browser.contents)  
        self.assertTrue(lookstr2 in browser.contents) 
        self.assertTrue(lookstr3 in browser.contents)                           
コード例 #23
0
    def test_existing_content_tile_private(self):
        """When the current user does not have enough permissions to view
        the content linked to existing content tile, the tile renders
        empty"""
        self.portal.portal_workflow.setDefaultChain(
            'simple_publication_workflow')

        page_id = self.portal.invokeFactory('Document',
                                            'an-another-page',
                                            title=u'An another page',
                                            description=u'A description',
                                            text=u'Hello World!')
        self.portal[page_id].text = RichTextValue(u'Hello World!')

        page_uuid = IUUID(self.portal[page_id])

        transaction.commit()

        browser = Browser(self.layer['app'])
        browser.handleErrors = False
        browser.open(
            self.portalURL +
            '/@@plone.app.standardtiles.existingcontent/unique?content_uid=' +
            page_uuid)

        self.assertNotIn(u'Hello World!', browser.contents)
        self.assertIn(u'<body></body>', browser.contents)
コード例 #24
0
ファイル: test_view.py プロジェクト: adam139/emc.kb
    def testtopicfollowView(self):
        app = self.layer['app']
        portal = self.layer['portal']
        
        browser = Browser(app)
        browser.handleErrors = False
        
        import transaction
        transaction.commit()
        event.notify(FollowedEvent(self.q1))
        event.notify(FollowedEvent(self.q2))
        event.notify(FollowedEvent(self.q3))        
        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
        import transaction
        transaction.commit()
        
        questionfollowed = portal.absolute_url() + '/@@followed'
        browser.open(questionfollowed)
        
        self.assertTrue("questionone" in browser.contents)
        self.assertTrue("questiontwo" in browser.contents)
        self.assertTrue("questionthree" in browser.contents)
        self.assertTrue("col-md-2 unfollow" in browser.contents)
        
        event.notify(FollowedEvent(self.t1))
        event.notify(FollowedEvent(self.t2))        
        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
        import transaction
        transaction.commit()        
        browser.open(portal.absolute_url() + "/@@topicfollowed")

        
        self.assertTrue("topicone" in browser.contents)
        self.assertTrue("topictwo" in browser.contents)
コード例 #25
0
ファイル: test_view.py プロジェクト: adam139/emc.kb
 def testpersonalhomepageView(self):
     app = self.layer['app']
     portal = self.layer['portal']
     browser = Browser(app)
     browser.handleErrors = False
     
     browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
     import transaction
     transaction.commit()
     
     event.notify(FollowedEvent(self.t1))
     event.notify(FollowedEvent(self.t2))
     event.notify(FollowedEvent(self.q3))
     intids = getUtility(IIntIds)
     portal['folder']['questionfolder']['question3'].invokeFactory('emc.kb.answer', 'answer5',
                              content=u"answerfour"
                             )
      
     portal['folder']['questionfolder'].invokeFactory('emc.kb.question', 'question4',
                                         title='questionfour',
                                         affiliatedtopics=[RelationValue(intids.getId(self.t1))],
                                         )
     q4 = portal['folder']['questionfolder']['question4']
     event.notify(FollowedEvent(q4))        
     import transaction
     transaction.commit()
     browser.open(portal['folder']['feedsfolder'].absolute_url())        
     self.assertTrue("questionthree" in browser.contents)        
     self.assertTrue("questionfour" in browser.contents)
コード例 #26
0
ファイル: test_view.py プロジェクト: adam139/emc.kb
    def testmyfavoritefolderView(self):

        app = self.layer['app']
        portal = self.layer['portal']
        browser = Browser(app)
        browser.handleErrors = False
        
        event.notify(FavoriteEvent(self.answer1))
        event.notify(FavoriteEvent(self.answer2))
        event.notify(FavoriteEvent(self.answer3))
        
        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
        import transaction
        transaction.commit()
        
        myfavoritefolder = portal.absolute_url() + '/@@myfavoritefolder'
        browser.open(myfavoritefolder)
        
        self.assertTrue("questionone" in browser.contents)
        self.assertTrue("questiontwo" in browser.contents)
        self.assertTrue("questionthree" in browser.contents)
        self.assertTrue("answerone" in browser.contents)
        self.assertTrue("answertwo" in browser.contents)
        self.assertTrue("answerthree" in browser.contents)
        
        self.assertTrue("test_user_1_" in browser.contents)
コード例 #27
0
    def test_controlpanel(self):
        portal = self.layer['portal']

        # Now as an admin user, go through the steps in the browser
        browser = Browser(portal)
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % (SITE_OWNER_NAME, SITE_OWNER_PASSWORD,))
        browser.open('http://nohost/plone/plone_control_panel')

        settings_link = browser.getLink('Stripe Payment Processing')
        settings_link.click()
        self.assertEqual('http://nohost/plone/@@stripe-settings', browser.url)
        
        # Set the values in the control panel
        browser.getControl(name='form.widgets.mode:list').value = ["test",]
        browser.getControl(name='form.widgets.live_secret_key').value = "1234567890"
        browser.getControl(name='form.widgets.live_publishable_key').value = "9876543210"
        browser.getControl(name='form.widgets.test_secret_key').value = "qwertyuiop"
        browser.getControl(name='form.widgets.test_publishable_key').value = "poiuytrewq"
        browser.getControl(name='form.buttons.save').click()

        # Check that the settings were changed in the registry
        settings = get_settings()
        self.assertEqual(settings.mode, "test")
        self.assertEqual(settings.live_secret_key, "1234567890")
        self.assertEqual(settings.live_publishable_key, "9876543210")
        self.assertEqual(settings.test_secret_key, "qwertyuiop")
        self.assertEqual(settings.test_publishable_key, "poiuytrewq")
コード例 #28
0
    def test_controlpanel(self):
        setRoles(self.portal, TEST_USER_ID, ('Manager', ))
        transaction.commit()

        from uniofleicester.jscontent.interfaces import IAllowedSectionsSchema
        registry = getUtility(IRegistry)

        settings = registry.forInterface(IAllowedSectionsSchema)
        self.assertEqual(settings.section, [
            '/',
        ])

        browser = Browser(self.layer['app'])
        browser.handleErrors = False

        browser.open("{}/login".format(self.portal.absolute_url()))
        browser.getControl(name='__ac_name').value = TEST_USER_NAME
        browser.getControl(name='__ac_password').value = TEST_USER_PASSWORD
        browser.getControl(name='submit').click()

        browser.open("{}/@@allowed-sections".format(
            self.portal.absolute_url()))
        browser.getControl(name='form.widgets.section').value = "/news\n/study"
        browser.getControl(name='form.buttons.save').click()

        self.assertEqual(settings.section, [u'/news', u'/study'])
コード例 #29
0
    def prepare_for_acquisition_tests(self):
        """create content and an alternate authenticated browser session

        creates the following content structure:

        |-- f1
        |   |-- test
        |-- test
        """
        # create a page at the root and one nested with the same id.
        p1 = self.portal.invokeFactory(
            type_name='Document', id='test', title='Test Page at Root')
        folder_1 = self.portal['f1']
        p2 = folder_1.invokeFactory(
            type_name='Document', id='test', title='Test Page in Folder')
        contained_test_page = folder_1[p2]

        transaction.commit()

        # create an alternate browser also logged in with manager
        browser_2 = Browser(self.layer['app'])
        browser_2.handleErrors = False
        browser_2.addHeader(
            'Authorization', 'Basic {0}:{1}'.format(TEST_USER_NAME, 'secret'))

        # return the id of the root page, the nested page itself, and the
        # alternate browser
        return p1, contained_test_page, browser_2
コード例 #30
0
ファイル: test_actions.py プロジェクト: urska19/Plone_site
    def prepare_for_acquisition_tests(self):
        """create content and an alternate authenticated browser session

        creates the following content structure:

        |-- f1
        |   |-- test
        |-- test
        """
        # create a page at the root and one nested with the same id.
        p1 = self.portal.invokeFactory(type_name='Document',
                                       id='test',
                                       title='Test Page at Root')
        folder_1 = self.portal['f1']
        p2 = folder_1.invokeFactory(type_name='Document',
                                    id='test',
                                    title='Test Page in Folder')
        contained_test_page = folder_1[p2]

        transaction.commit()

        # create an alternate browser also logged in with manager
        browser_2 = Browser(self.layer['app'])
        browser_2.handleErrors = False
        browser_2.addHeader('Authorization',
                            'Basic {0}:{1}'.format(TEST_USER_NAME, 'secret'))

        # return the id of the root page, the nested page itself, and the
        # alternate browser
        return p1, contained_test_page, browser_2
コード例 #31
0
    def testGalleryFolder(self):
        login(self.portal, TEST_USER_NAME)
        setRoles(self.portal, TEST_USER_ID, ('Manager', ))

        gallery = api.content.create(self.portal, "Gallery", "gallery",
                                     "Gallery")

        # Adding a page should fail
        self.assertRaises(api.content.InvalidParameterError,
                          api.content.create, gallery, "Page", "page", "Page")

        # Adding an image should pass
        img = api.content.create(gallery,
                                 "Image",
                                 "img1",
                                 "Image 1",
                                 image=getData('image.jpg'))

        # Commit so it is visible in the browser
        transaction.commit()

        browser = Browser(self.layer['app'])
        browser.handleErrors = False
        browser.open(gallery.absolute_url())

        self.assertTrue('uol-gallery' in browser.contents)
        self.assertTrue(img.absolute_url() in browser.contents)
        self.assertTrue("photoSwipe" in browser.contents)
コード例 #32
0
    def test_view(self):

        app = self.layer["app"]
        portal = self.layer["portal"]

        browser = Browser(app)
        browser.handleErrors = False
        browser.addHeader("Authorization", "Basic %s:%s" % (TEST_USER_ID, TEST_USER_PASSWORD))

        import transaction

        transaction.commit()

        page = portal.absolute_url() + "/marketfolder1/marketpreview"
        browser.open(page)
        open("/tmp/test.html", "w").write(browser.contents)
        # 我申请的会议
        self.assertTrue("meetapply1" in browser.contents)

        # 我申请的礼品
        self.assertTrue("gift1" in browser.contents)
        # 我申请的彩页
        self.assertTrue("promotion1" in browser.contents)
        # 部门费用
        self.assertTrue("3" in browser.contents)
        self.assertTrue("15000" in browser.contents)
        # 地区拓展费用
        self.assertTrue("爱数" in browser.contents)
        self.assertTrue("1000.0" in browser.contents)
コード例 #33
0
    def test_tile_rendering(self):
        try:
            self.portal.invokeFactory('Folder', 'test-folder')
        except:
            self.portal.invokeFactory('Document', 'test-folder')
        self.folder = self.portal['test-folder']
        self.folder.invokeFactory('Document', 'd1')
        d1 = self.folder.get('d1')
        d1.setTitle(u'New title')
        d1.text = RichTextValue(u"""\
<p>
    <img
        src="/++resource++collective.tinymcetiles.plugin/placeholder.gif"
        alt="./@@dummy.tile/tile-1"
        class="mceItem mceTile"
        />
</p>
""", 'text/html', 'text/x-html-safe', 'utf-8')

        transaction.commit()

        browser = Browser(self.portal)
        browser.handleErrors = False

        browser.open(d1.absolute_url())
        self.assertIn('Test tile rendered', browser.contents)
        self.assertIn('<p>With child tags</p>', browser.contents)
        self.assertIn('And tail text', browser.contents)
コード例 #34
0
 def test_collection_templates(self):
     data = getData('image.png')
     # add an image that will be listed by the collection
     self.portal.invokeFactory("Image",
                          "image",
                          title="Image example",
                          image=data)
     # Search for images
     query = [{
         'i': 'Type',
         'o': 'plone.app.querystring.operation.string.is',
         'v': 'Image',
     }]
     # set the query and publish the collection
     self.collection.setQuery(query)
     commit()
     logout()
     # open a browser to see if our image is in the results
     browser = Browser(self.layer['app'])
     browser.handleErrors = False
     browser.open(self.collection.absolute_url())
     self.assertTrue("Image example" in browser.contents)
     # open summary_view template
     browser.open('%s/summary_view' % self.collection.absolute_url())
     self.assertTrue("Image example" in browser.contents)
     # open folder_summary_view template
     browser.open('%s/folder_summary_view' % self.collection.absolute_url())
     self.assertTrue("Image example" in browser.contents)
     # open thumbnail_view template
     browser.open('%s/thumbnail_view' % self.collection.absolute_url())
     self.assertTrue("Image example" in browser.contents)
コード例 #35
0
    def _workplace_inline_link_test(self, id_, label):
        browser = Browser(self.layer['app'])
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % (
                SITE_OWNER_NAME, SITE_OWNER_PASSWORD))

        portal_url = self.layer['portal'].portal_url()
        browser.open('/'.join((portal_url, self.translated('workplace'))))
        doc = PyQuery(browser.contents)

        links = doc('#content .sl-text-wrapper a')
        filtered_links = filter(
            lambda node: node.text_content() == label,
            links)

        self.assertEquals(
            len(filtered_links),
            1,
            'Expected one link "%s", but found: %s' % (
                label,
                str(map(lambda node: node.text_content(), filtered_links))))

        self.assertEquals(
            '/'.join((browser.url, id_)),
            filtered_links[0].get('href'),
            'Link "%s" seems to point to a wrong place.' % filtered_links[0].text_content())
コード例 #36
0
ファイル: test_question.py プロジェクト: adam139/emc.kb
    def testquestion(self):
        app = self.layer['app']        
        portal = self.layer['portal']
        
        browser = Browser(app)
        browser.handleErrors = False
        
        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
        import transaction
        transaction.commit()
        
        ques = portal['questionfolder']['question'].absolute_url()
        browser.open(ques)
        
        browser.getControl(name='form.submit').click()
        
        open('/tmp/test.html','w').write(browser.contents)
        
        self.assertTrue("question" in browser.contents)
        self.assertTrue("question description" in browser.contents)
        
        self.assertTrue("4" in browser.contents)

        self.assertTrue("test_user_1_" in browser.contents)
        self.assertTrue("defaultUser.png" in browser.contents)
        
        self.assertTrue("answerone" in browser.contents)
        
        self.assertTrue("answertwo" in browser.contents)
        self.assertTrue("answerthree" in browser.contents)
        self.assertTrue("add an answer" in browser.contents)
コード例 #37
0
    def test_publishing_a_hotfix_makes_it_visible_to_anonymous(self):
        plonesite = self.layer["portal"]
        workflow = plonesite.portal_workflow

        login(plonesite, TEST_USER_NAME)
        setRoles(plonesite, TEST_USER_ID, ["Manager", "Member"])
        transaction.commit()
        plonesite.invokeFactory('hotfix', 'h1', title=u"Hotfix 1")
        transaction.commit()
        hotfix = plonesite["h1"]

        app = self.layer["app"]
        browser = Browser(app)
        browser.handleErrors = False

        # Try navigating to a draft vulnerability as an Anonymous user
        with self.assertRaises(Unauthorized):
            browser.open(hotfix.absolute_url())

        # Publish the vulnerability and try visiting it again
        workflow.doActionFor(hotfix, 'publish')
        transaction.commit()

        browser.open(hotfix.absolute_url())
        self.assertTrue(u"Hotfix 1" in browser.contents)
コード例 #38
0
ファイル: test_view.py プロジェクト: adam139/emc.kb
    def testtopicView(self):

        app = self.layer['app']
        portal = self.layer['portal']
        setRoles(portal, TEST_USER_ID, ('Manager',))
        browser = Browser(app)
        browser.handleErrors = False
        
        
        intids = getUtility(IIntIds)
        portal['folder']['questionfolder'].invokeFactory('emc.kb.question', 'question4',
                                            title='newquestion',
                                            affiliatedtopics=[RelationValue(intids.getId(self.t1))],
                                            )
        
#        browser.addHeader('Authorization', 'Basic %s:%s' % (TEST_USER_NAME, TEST_USER_PASSWORD,))
        browser.addHeader('Authorization', 'Basic %s:%s' % ('user3', 'secret',))
        import transaction
        transaction.commit()
        browser.open(self.t1.absolute_url())
        
        self.assertTrue("topicone" in browser.contents)
        self.assertTrue("descriptionone" in browser.contents)
        
#         self.assertTrue("newquestion" in browser.contents)
        
        self.assertTrue("questionone" in browser.contents)
        self.assertTrue("answerone" in browser.contents)
コード例 #39
0
    def test_sendmessage_view(self):
        app = self.layer['app']
        portal = self.layer['portal']
        browser = Browser(app)
        browser.handleErrors = False
        browser.addHeader(
            'Authorization', 'Basic %s:%s' % (
                TEST_USER_NAME,
                TEST_USER_PASSWORD,
            ))

        import transaction
        transaction.commit()
        from emc.memberArea.content.outputbox import IOutputbox
        obj = portal['work1']['folder1']['output1']
        self.assertTrue(IOutputbox.providedBy(obj))


#         import pdb
#         pdb.set_trace()
#
#         page = obj.absolute_url()  + '/@@write_message'
# #        import pdb
# #        pdb.set_trace()
#         browser.open(page)
#         outstr = "send message to member"
#         self.assertTrue(outstr in browser.contents)
コード例 #40
0
 def test_navigate_save(self):
     from zope.component import getUtility
     from plone.registry.interfaces import IRegistry
     from my315ok.products.interfaces import IMy315okProductsSettings
     
     app = self.layer['app']
     portal = self.layer['portal']
     
     browser = Browser(app)
     browser.handleErrors = False
     
     # Simulate HTTP Basic authentication
     browser.addHeader('Authorization',
             'Basic %s:%s' % (SITE_OWNER_NAME, SITE_OWNER_PASSWORD,)
         )
     
     # Open Plone's site setup
     browser.open("%s/plone_control_panel" % portal.absolute_url())
     
     # Go to the control panel
     browser.getLink('My315okProducts settings').click()
     
     # Edit the DAM codes field
     browser.getControl(name='form.widgets.wordsNum').value = "32"
     browser.getControl('Save').click()
     
     # Verify that this made it into the registry
     registry = getUtility(IRegistry)
     settings = registry.forInterface(IMy315okProductsSettings)
     self.assertEqual(settings.wordsNum,32)
コード例 #41
0
    def test_publishing_a_hotfix_makes_it_visible_to_anonymous(self):
        plonesite = self.layer["portal"]
        workflow = plonesite.portal_workflow

        login(plonesite, TEST_USER_NAME)
        setRoles(plonesite, TEST_USER_ID, ["Manager", "Member"])
        transaction.commit()
        plonesite.invokeFactory('hotfix', 'h1', title=u"Hotfix 1")
        transaction.commit()
        hotfix = plonesite["h1"]

        app = self.layer["app"]
        browser = Browser(app)
        browser.handleErrors = False

        # Try navigating to a draft vulnerability as an Anonymous user
        with self.assertRaises(Unauthorized):
            browser.open(hotfix.absolute_url())

        # Publish the vulnerability and try visiting it again
        workflow.doActionFor(hotfix, 'publish')
        transaction.commit()

        browser.open(hotfix.absolute_url())
        self.assertTrue(u"Hotfix 1" in browser.contents)
コード例 #42
0
    def test_project_workflow(self):
        # m/c/s/d chain
        app = self.layer['app']
        portal = self.layer['portal']

        browser = Browser(app)
        browser.handleErrors = False
        browser.addHeader(
            'Authorization', 'Basic %s:%s' % (
                TEST_USER_NAME,
                TEST_USER_PASSWORD,
            ))
        import transaction
        transaction.commit()
        page = portal['folder1']['project1'].absolute_url() + '/@@view'

        browser.open(page)
        outstr = "submit to chuyang"

        self.assertTrue(outstr in browser.contents)
        wf = getToolByName(portal, 'portal_workflow')

        wt = wf.emc_project_workflow
        dummy = portal['folder1']['project1']

        wf.notifyCreated(dummy)

        chain = wf.getChainFor(dummy)
        self.failUnless(chain[0] == 'emc_project_workflow')

        review_state = wf.getInfoFor(dummy, 'review_state')
        self.assertEqual(review_state, 'fangan')
        wf.doActionFor(dummy, 'submit2chuyang', comment='submit to chu yang')

        ## available variants is actor,action,comments,time, and review_history
        review_state = wf.getInfoFor(dummy, 'review_state')
        self.assertEqual(review_state, 'chuyang')
        comment = wf.getInfoFor(dummy, 'comments')
        self.assertEqual(comment, 'submit to chu yang')

        browser.open(page)
        outstr = "submit to shiyang"
        self.assertTrue(outstr in browser.contents)

        wf.doActionFor(dummy, 'submit2shiyang', comment='submit to shiyang')
        review_state = wf.getInfoFor(dummy, 'review_state')
        self.assertEqual(review_state, 'shiyang')
        comment = wf.getInfoFor(dummy, 'comments')
        self.assertEqual(comment, 'submit to shiyang')

        browser.open(page)
        outstr = "submit to dingxing"
        self.assertTrue(outstr in browser.contents)

        wf.doActionFor(dummy, 'submit2dingxing', comment='submit to dingxing')
        review_state = wf.getInfoFor(dummy, 'review_state')
        self.assertEqual(review_state, 'dingxing')
        comment = wf.getInfoFor(dummy, 'comments')
        self.assertEqual(comment, 'submit to dingxing')
コード例 #43
0
    def setUp(self):
        self.app = self.layer['app']
        self.portal = self.layer['portal']

        browser = Browser(self.app)
        browser.handleErrors = False
        browser.raiseHttpErrors = False
        self.browser = browser
コード例 #44
0
 def get_browser(self):
     browser = Browser(self.layer["app"])
     browser.handleErrors = False
     browser.addHeader(
         "Authorization",
         "Basic {0}:{1}".format(SITE_OWNER_NAME, SITE_OWNER_PASSWORD),
     )
     return browser
コード例 #45
0
 def test_userid_header_underscore_dash(self):
     self.plugin.userid_header = "REMOTE_USER"
     transaction.commit()
     browser = Browser(self.app)
     browser.handleErrors = False
     browser.addHeader("REMOTE-USER", SITE_OWNER_NAME)
     browser.open(self.portal_url + "/headerlogin")
     self.assertEqual(browser.url, self.portal_url)
コード例 #46
0
 def test_anonymous_hotfixes_generation_is_not_allowed(self):
     plonesite = self.layer["portal"]
     app = self.layer["app"]
     browser = Browser(app)
     browser.handleErrors = False
     # Try adding a vulnerability as an Anonymous user
     with self.assertRaises(Unauthorized):
         browser.open(plonesite.absolute_url() + "/++add++hotfix")
コード例 #47
0
def setUp(doctest):
    layer = doctest.globs['layer']
    app = layer['app']
    portal = layer['portal']
    anon_browser = Browser(app)
    admin_browser = Browser(app)
    admin_browser.addHeader('Authorization', 'Basic admin:secret')
    admin_browser.open(portal.absolute_url())

    user_id = TEST_USER_NAME
    user_password = TEST_USER_PASSWORD

    def config_property(**kw):
        for key, value in kw.items():
            try:
                registry = getUtility(IRegistry)
                settings = registry.forInterface(
                    ILoginLockoutSettings, prefix="Products.LoginLockout")
                setattr(settings, key, value)
                continue
            except ComponentLookupError:
                pass
            try:
                p_tool = getToolByName(portal, 'portal_properties')
                p_tool.loginlockout_properties.setProperty(key, value)
                continue
            except AttributeError:
                raise
        commit()

    def get_loginlockout_settings():
        registry = getUtility(IRegistry)
        settings = registry.forInterface(ILoginLockoutSettings,
                                         prefix="Products.LoginLockout")
        return settings

    doctest.globs.update(locals())
    #
    #     def afterSetUp(self):
    #        # sm = getSiteManager(context=self.portal)
    #         # sm.unregisterUtility(provided=IMailHost)
    #         # sm.registerUtility(mailhost, provided=IMailHost)
    #     #
    #     # def setStatusCode(self, key, value):
    #     #     from ZPublisher import HTTPResponse
    #     #     HTTPResponse.status_codes[key.lower()] = value
    #
    anon_browser.handleErrors = False
    portal.error_log._ignored_exceptions = ('Unauthorized', )

    def raising(self, info):
        import traceback
        traceback.print_tb(info[2])
        print info[1]

    from Products.SiteErrorLog.SiteErrorLog import SiteErrorLog
    SiteErrorLog.raising = raising
コード例 #48
0
ファイル: tests.py プロジェクト: bduncan137/plone.app.drafts
    def test_add_to_portal_root_save(self):
        browser = Browser(self.layer['app'])
        browser.handleErrors = False

        # Login
        browser.open(self.portal.absolute_url() + '/login')
        browser.getControl(name='__ac_name').value = TEST_USER_NAME
        browser.getControl(name='__ac_password').value = TEST_USER_PASSWORD
        browser.getControl('Log in').click()

        # Enter the add screen for a temporary portal_factory-managed object
        browser.open(self.portal.absolute_url() + '/++add++MyDocument')

        # We should now have cookies with the drafts information
        cookies = browser.cookies.forURL(browser.url)
        self.assertEqual('"/plone"', cookies['plone.app.drafts.path'])
        self.assertEqual(  # noqa
            '"%2B%2Badd%2B%2BMyDocument"',
            cookies['plone.app.drafts.targetKey'],
        )
        self.assertNotIn(
            'plone.app.drafts.draftName',
            browser.cookies.forURL(browser.url),
        )

        # Simulate save action for creating a draft
        storage = queryUtility(IDraftStorage)
        draft = storage.createDraft(TEST_USER_ID, '++add++MyDocument')
        target = createContent('MyDocument')
        draft._draftAddFormTarget = target
        transaction.commit()

        browser.cookies.create(
            DRAFT_NAME_KEY,
            u'draft',
            path='/plone',
        )

        # We can now fill in the required fields and save. The cookies should
        # expire.

        browser.getControl(
            name='form.widgets.IDublinCore.title').value = u'New Document'
        browser.getControl(name='form.buttons.save').click()
        self.assertNotIn(
            'plone.app.drafts.targetKey',
            browser.cookies.forURL(browser.url),
        )
        self.assertNotIn(
            'plone.app.drafts.path',
            browser.cookies.forURL(browser.url),
        )
        self.assertNotIn(
            'plone.app.drafts.draftName',
            browser.cookies.forURL(browser.url),
        )
コード例 #49
0
ファイル: base.py プロジェクト: zubryan/Bika-LIMS
 def browserLogin(self):
     baseurl = self.portal.absolute_url()
     browser = Browser(self.portal)
     browser.handleErrors = False
     browser.open(baseurl)
     browser.getControl(name='__ac_name').value = TEST_USER_NAME
     browser.getControl(name='__ac_password').value = TEST_USER_PASSWORD
     browser.getControl(name='submit').click()
     self.assertEqual(browser.url, baseurl, "Error, unable to authenticate")
     return browser
コード例 #50
0
def get_browser(layer, auth=True):
    browser = Browser(layer["app"])
    browser.handleErrors = False
    if auth:
        api.user.create(
            username="******", password="******", email="*****@*****.**", roles=("Manager",)
        )
        transaction.commit()
        browser.addHeader("Authorization", "Basic adm:secret")
    return browser
コード例 #51
0
    def test_controlpanel(self):
        browser = Browser(self.app)
        browser.handleErrors = False
        browser.addHeader(
            'Authorization',
            'Basic {0}:{1}'.format(SITE_OWNER_NAME, SITE_OWNER_PASSWORD, ),
        )

        browser.open("{}/@@caching-controlpanel".format(self.portal.absolute_url()))  # noqa
        browser.getControl(name='enabled:boolean').value = 'checked'
        browser.getControl('Save').click()
コード例 #52
0
 def test_userid_header_underscores_http(self):
     self.plugin.userid_header = "REMOTE_USER"
     transaction.commit()
     browser = Browser(self.app)
     browser.handleErrors = False
     # This will fail because it will really result in a
     # header HTTP_HTTP_REMOTE_USER.
     browser.addHeader("HTTP_REMOTE_USER", SITE_OWNER_NAME)
     browser.open(self.portal_url + "/headerlogin")
     # We are anonymous, so headerlogin redirects us to standard login.
     self.assertEqual(browser.url, self.portal_url + "/login")
コード例 #53
0
 def getBrowser(self, loggedIn=True):
     """ instantiate and return a testbrowser for convenience """
     browser = Browser(self.portal)
     browser.handleErrors = False
     if loggedIn:
         browser.open(self.portal.absolute_url())
         browser.getControl('Login Name').value = TEST_USER_NAME
         browser.getControl('Password').value = TEST_USER_PASSWORD
         browser.getControl('Log in').click()
         self.assertTrue('You are now logged in' in browser.contents)
     return browser
コード例 #54
0
 def test_captcha_prevents_send(self):
     browser = Browser(self.layer['app'])
     browser.handleErrors = False
     browser.open(self.portal.absolute_url())
     browser.getControl('Your Name').value = 'Roman'
     browser.getControl('Your Email').value = '*****@*****.**'
     browser.getControl('Your Message').value = 'Good stuff'
     browser.getControl('Captcha').value = 'ignored'
     browser.getControl('Submit').click()
     self.assertTrue('There were some errors' in browser.contents)
     self.assertTrue('The code you entered was wrong' in browser.contents)
コード例 #55
0
ファイル: test_reservations.py プロジェクト: emcupdate/emc.kb
    def test_view_cinemas_for_film(self):
        app = self.layer['app']
        portal = self.layer['portal']

        browser = Browser(app)
        browser.handleErrors = False

        browser.open(portal['films']['film1'].absolute_url())

        self.assertEqual(
            browser.getLink('Cinema 1').url,
            portal['cinemas']['cinema1'].absolute_url())
コード例 #56
0
    def get_browser(self, login=True):
        from plone.testing.z2 import Browser
        browser = Browser(self.layer['app'])
        browser.handleErrors = False

        if login:
            browser.addHeader(
                'Authorization',
                'Basic %s:%s' % (self.testing.SITE_OWNER_NAME,
                                 self.testing.SITE_OWNER_PASSWORD))

        return browser
コード例 #57
0
    def test_restrictedTraverse(self):
        portal = self.layer['portal']
        app = self.layer['app']
        browser = Browser(app)
        browser.handleErrors = False

        # The easiest way to look up a tile in Zope 2 is to use traversal:

        traversed = portal.restrictedTraverse(
            '@@plone.app.tiles.demo.transient/tile-1')
        self.failUnless(isinstance(traversed, TransientTile))
        self.assertEquals('plone.app.tiles.demo.transient', traversed.__name__)
        self.assertEquals('tile-1', traversed.id)
コード例 #58
0
 def test_addsite_view(self):
     import base64
     browser = Browser(self.layer['app'])
     browser.handleErrors = False
     basic_auth = 'Basic {0}'.format(
         base64.encodestring('{0}:{1}'.format(SITE_OWNER_NAME,
                                              SITE_OWNER_PASSWORD)))
     browser.addHeader('Authorization', basic_auth)
     browser.open('{0}/@@plone-addsite?site_id=site'.format(
         self.app.absolute_url()))
     # site_id veio do parametro de query string
     self.assertIn('"site"', browser.contents)
     self.assertIn('Name of Ministry or', browser.contents)