Пример #1
0
 def getBrowser(self, loggedIn=True):
     """ instantiate and return a testbrowser for convenience """
     browser = Browser()
     if loggedIn:
         browser.addHeader('Authorization',
             'Basic %s:%s' % ('manager', 's3kr3t'))
     return browser
Пример #2
0
 def test_add_new_sector(self):
     import json
     from ..authentication import generate_token
     self.loginAsPortalOwner()
     country = self.portal.sectors['nl']
     country.invokeFactory('euphorie.countrymanager', 'manager',
             login='******', password=u'manager')
     browser = Browser()
     browser.handleErrors = False
     browser.raiseHttpErrors = False
     browser.addHeader('X-Euphorie-Token', generate_token(country['manager']))
     browser.post('http://nohost/plone/api/countries/nl/sectors',
             json.dumps({'title': u'IT development',
                         'login': '******',
                         'contact': {
                             'name': u'Jony Smith',
                             'email': u'*****@*****.**',
                         },
                         'password': u'cobol-for-the-win'}))
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'sector')
     self.assertEqual(response['id'], 'it-development')
     self.assertTrue('it-development' in country)
     sector = country['it-development']
     self.assertEqual(sector.title, u'IT development')
     self.assertEqual(sector.login, 'it')
     self.assertEqual(sector.password, u'cobol-for-the-win')
Пример #3
0
 def test_get(self):
     import datetime
     import json
     from z3c.saconfig import Session
     from euphorie.client.model import Company
     from euphorie.client.model import SurveySession
     from euphorie.content.tests.utils import BASIC_SURVEY
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.tests.utils import addSurvey
     from euphorie.client.api.authentication import generate_token
     from Products.Five.testbrowser import Browser
     self.loginAsPortalOwner()
     addSurvey(self.portal, BASIC_SURVEY)
     account = addAccount(password='******')
     survey_session = SurveySession(
             title=u'Dummy session',
             created=datetime.datetime(2012, 4, 22, 23, 5, 12),
             modified=datetime.datetime(2012, 4, 23, 11, 50, 30),
             zodb_path='nl/ict/software-development',
             account=account,
             company=Company(country='nl',
                             employees='1-9',
                             referer='other'))
     Session.add(survey_session)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open(
             'http://nohost/plone/client/api/users/1/sessions/1/company')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'company')
Пример #4
0
    def test6734(self):
        self.loginAsPortalOwner()

        # We start off by copying the existing SimpleFolder type to
        # our own type 'MySimpleFolder'.  For this type, we set the
        # SimpleFolder type to be the sole allowed content type.
        types = self.portal.portal_types
        types.manage_pasteObjects(types.manage_copyObjects(['SimpleFolder']))
        types.manage_renameObjects(['copy_of_SimpleFolder'], ['MySimpleFolder'])
        my_type = types['MySimpleFolder']
        attrs = dict(allowed_content_types=('SimpleFolder',),
                     filter_content_types=True,
                     portal_type='MySimpleFolder',
                     title='MySimpleFolder')
        my_type.__dict__.update(attrs)

        browser = Browser()
        browser.addHeader('Authorization',
                          'Basic %s:%s' % ('portal_owner', user_password))
        browser.open(self.folder.absolute_url())
        browser.getLink('Add new').click()
        browser.getControl('MySimpleFolder').click()
        browser.getControl('Add').click()

        browser.getControl('Title').value = 'My dope folder'
        browser.getControl('Save').click()
        self.failUnless('Changes saved.' in browser.contents)
        self.failUnless('My dope folder' in browser.contents)
class ReviewListTestCase(FunctionalTestCase):
    """dsfsdaf"""
    def afterSetUp(self):
        super(ReviewListTestCase, self).afterSetUp()

        self.uf = self.portal.acl_users
        self.uf.userFolderAddUser('reviewer', 'secret', ['Reviewer'], [])
        self.browser = Browser()
        self.wftool = getToolByName(self.portal, 'portal_workflow')

    def createDocument(self, id, title, description):
        self.setRoles([
            'Manager',
        ])
        self.portal.invokeFactory(id=id, type_name='Document')
        doc = getattr(self.portal, id)
        doc.setTitle(title)
        doc.setDescription(description)
        # we don't want it in the navigation
        doc.setExcludeFromNav(True)
        doc.reindexObject()
        return doc

    def submitToReview(self, obj):
        '''call the workflow action 'submit' for an object'''
        self.wftool.doActionFor(obj, 'submit')

    def test_unauthenticated(self):
        '''
        unauthenticated users do not have the necessary permissions to view
        the review list
        '''
        self.browser.open('http://nohost/plone/full_review_list')
        self.assertTrue('Login Name' in self.browser.contents)

    def test_authenticated(self):
        '''
        unauthenticated users do not have the necessary permissions to view
        the review list
        '''
        self.browser.addHeader('Authorization',
                               'Basic %s:%s' % ('reviewer', 'secret'))
        self.browser.open('http://nohost/plone/full_review_list')
        self.assertTrue('Full review list:' in self.browser.contents)

    def test_with_content(self):
        '''
        unauthenticated users do not have the necessary permissions to view
        the review list
        '''
        doc = self.createDocument('testdoc', 'Test Document',
                                  'Test Description')
        self.wftool.doActionFor(doc, 'submit')

        self.browser.addHeader('Authorization',
                               'Basic %s:%s' % ('reviewer', 'secret'))
        self.browser.open('http://nohost/plone/full_review_list')
        self.assertTrue('Full review list:' in self.browser.contents)
        # test if the table with review items contains an entry for testdoc
        self.assertTrue('value="/plone/testdoc"' in self.browser.contents)
Пример #6
0
 def test_with_introduction(self):
     import datetime
     import json
     from z3c.saconfig import Session
     from euphorie.client.model import SurveySession
     from euphorie.client.api.authentication import generate_token
     from euphorie.content.tests.utils import BASIC_SURVEY
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.tests.utils import addSurvey
     self.loginAsPortalOwner()
     addSurvey(self.portal, BASIC_SURVEY)
     survey = self.portal.client['nl']['ict']['software-development']
     survey.introduction = u'<p>Fancy intro.</p>'
     account = addAccount(password='******')
     survey_session = SurveySession(
             title=u'Dummy session',
             created=datetime.datetime(2012, 4, 22, 23, 5, 12),
             modified=datetime.datetime(2012, 4, 23, 11, 50, 30),
             zodb_path='nl/ict/software-development',
             account=account)
     Session.add(survey_session)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open('http://nohost/plone/client/api/users/1/sessions/1')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertTrue('introduction' in response)
     self.assertEqual(response['introduction'], u'<p>Fancy intro.</p>')
Пример #7
0
 def test_get_empty_profile(self):
     import datetime
     import json
     from z3c.saconfig import Session
     from euphorie.client.model import SurveySession
     from euphorie.content.tests.utils import PROFILE_SURVEY
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.tests.utils import addSurvey
     from euphorie.client.api.authentication import generate_token
     self.loginAsPortalOwner()
     addSurvey(self.portal, PROFILE_SURVEY)
     account = addAccount(password='******')
     survey_session = SurveySession(
         title=u'Dummy session',
         created=datetime.datetime(2012, 4, 22, 23, 5, 12),
         modified=datetime.datetime(2012, 4, 23, 11, 50, 30),
         zodb_path='nl/ict/software-development',
         account=account)
     Session.add(survey_session)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open(
         'http://nohost/plone/client/api/users/1/sessions/1/profile')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertEqual(set(response), set(['id', 'type', 'title',
                                          'profile']))
     self.assertEqual(response['id'], 1)
     self.assertEqual(response['type'], 'profile')
     self.assertEqual(response['title'], u'Dummy session')
     self.assertEqual(response['profile'], [{
         'id': u'1',
         'question': u'List all your departments:',
         'value': []
     }])
Пример #8
0
    def test_recurrence(self):
        browser = Browser()
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic %s:%s' % (portal_owner, default_password))
        folder_url = self.folder.absolute_url()

        # Add event
        browser.open(folder_url + '/createObject?type_name=Event')
        form = browser.getForm('event-base-edit')
        form.getControl(name='title').value = 'An Event'
        form.getControl(name='startDate_year').value = ['2007']
        form.getControl(name='startDate_month').value = ['04']
        form.getControl(name='startDate_day').value = ['01']
        form.getControl(name='startDate_hour').value = ['11']
        form.getControl(name='startDate_minute').value = ['00']
        form.getControl(name='endDate_year').value = ['2007']
        form.getControl(name='endDate_month').value = ['04']
        form.getControl(name='endDate_day').value = ['01']
        form.getControl(name='endDate_hour').value = ['11']
        form.getControl(name='endDate_minute').value = ['00']
        # Edit the recurrence info:
        form.getControl(name='frequency').value = ['1']
        form.getControl(name='interval').value = '6'
        form.getControl(name='form.button.save').click()

        # Make sure it's properly indexed:
        cat = self.portal.portal_catalog
        self.failUnless(len(cat(portal_type='Event', recurrence_days=732950)) == 1)
 def getBrowser(self, loggedIn=True):
     """ instantiate and return a testbrowser for convenience """
     browser = Browser()
     if loggedIn:
         auth = 'Basic %s' % self.getCredentials()
         browser.addHeader('Authorization', auth)
     return browser
Пример #10
0
 def test_get_no_company_data_present(self):
     import datetime
     import json
     from z3c.saconfig import Session
     from euphorie.client.model import SurveySession
     from euphorie.content.tests.utils import BASIC_SURVEY
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.tests.utils import addSurvey
     from euphorie.client.api.authentication import generate_token
     from Products.Five.testbrowser import Browser
     self.loginAsPortalOwner()
     addSurvey(self.portal, BASIC_SURVEY)
     account = addAccount(password='******')
     survey_session = SurveySession(
             title=u'Dummy session',
             created=datetime.datetime(2012, 4, 22, 23, 5, 12),
             modified=datetime.datetime(2012, 4, 23, 11, 50, 30),
             zodb_path='nl/ict/software-development',
             account=account)
     Session.add(survey_session)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open(
             'http://nohost/plone/client/api/users/1/sessions/1/company')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'company')
Пример #11
0
 def test_browser(self):
     import datetime
     from z3c.saconfig import Session
     from euphorie.client.model import SurveySession
     from euphorie.client.api.authentication import generate_token
     from euphorie.content.tests.utils import BASIC_SURVEY
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.tests.utils import addSurvey
     self.loginAsPortalOwner()
     addSurvey(self.portal, BASIC_SURVEY)
     account = addAccount(password='******')
     survey_session = SurveySession(
             title=u'Dummy session',
             created=datetime.datetime(2012, 4, 22, 23, 5, 12),
             modified=datetime.datetime(2012, 4, 23, 11, 50, 30),
             zodb_path='nl/ict/software-development',
             account=account)
     Session.add(survey_session)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.handleErrors = False
     browser.open('http://nohost/plone/client/api/users/1/'
                     'sessions/1/report-timeline')
     self.assertEqual(
             browser.headers['Content-Type'],
             'application/vnd.openxmlformats-'
                                     'officedocument.spreadsheetml.sheet')
Пример #12
0
    def test_get_no_company_data_present(self):
        import datetime
        import json
        from z3c.saconfig import Session
        from euphorie.client.model import SurveySession
        from euphorie.content.tests.utils import BASIC_SURVEY
        from euphorie.client.tests.utils import addAccount
        from euphorie.client.tests.utils import addSurvey
        from euphorie.client.api.authentication import generate_token
        from Products.Five.testbrowser import Browser

        self.loginAsPortalOwner()
        addSurvey(self.portal, BASIC_SURVEY)
        account = addAccount(password="******")
        survey_session = SurveySession(
            title=u"Dummy session",
            created=datetime.datetime(2012, 4, 22, 23, 5, 12),
            modified=datetime.datetime(2012, 4, 23, 11, 50, 30),
            zodb_path="nl/ict/software-development",
            account=account,
        )
        Session.add(survey_session)
        browser = Browser()
        browser.addHeader("X-Euphorie-Token", generate_token(account))
        browser.open("http://nohost/plone/client/api/users/1/sessions/1/company")
        self.assertEqual(browser.headers["Content-Type"], "application/json")
        response = json.loads(browser.contents)
        self.assertEqual(response["type"], "company")
Пример #13
0
 def test_browser(self):
     import datetime
     from z3c.saconfig import Session
     from euphorie.client.model import SurveySession
     from euphorie.client.api.authentication import generate_token
     from euphorie.content.tests.utils import BASIC_SURVEY
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.tests.utils import addSurvey
     self.loginAsPortalOwner()
     addSurvey(self.portal, BASIC_SURVEY)
     account = addAccount(password='******')
     survey_session = SurveySession(
         title=u'Dummy session',
         created=datetime.datetime(2012, 4, 22, 23, 5, 12),
         modified=datetime.datetime(2012, 4, 23, 11, 50, 30),
         zodb_path='nl/ict/software-development',
         account=account)
     Session.add(survey_session)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.handleErrors = False
     browser.open('http://nohost/plone/client/api/users/1/'
                  'sessions/1/report-timeline')
     self.assertEqual(
         browser.headers['Content-Type'], 'application/vnd.openxmlformats-'
         'officedocument.spreadsheetml.sheet')
Пример #14
0
 def getBrowser(self, loggedIn=True):
     """ instantiate and return a testbrowser for convenience """
     browser = Browser()
     if loggedIn:
         auth = 'Basic %s' % self.getCredentials()
         browser.addHeader('Authorization', auth)
     return browser
Пример #15
0
 def test_with_introduction(self):
     import datetime
     import json
     from z3c.saconfig import Session
     from euphorie.client.model import SurveySession
     from euphorie.client.api.authentication import generate_token
     from euphorie.content.tests.utils import BASIC_SURVEY
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.tests.utils import addSurvey
     self.loginAsPortalOwner()
     addSurvey(self.portal, BASIC_SURVEY)
     survey = self.portal.client['nl']['ict']['software-development']
     survey.introduction = u'<p>Fancy intro.</p>'
     account = addAccount(password='******')
     survey_session = SurveySession(
         title=u'Dummy session',
         created=datetime.datetime(2012, 4, 22, 23, 5, 12),
         modified=datetime.datetime(2012, 4, 23, 11, 50, 30),
         zodb_path='nl/ict/software-development',
         account=account)
     Session.add(survey_session)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open('http://nohost/plone/client/api/users/1/sessions/1')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertTrue('introduction' in response)
     self.assertEqual(response['introduction'], u'<p>Fancy intro.</p>')
Пример #16
0
 def test_browser_get(self):
     import datetime
     from z3c.saconfig import Session
     from euphorie.client.model import SurveySession
     from euphorie.content.tests.utils import BASIC_SURVEY
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.tests.utils import addSurvey
     from euphorie.client.api.authentication import generate_token
     from tno.euphorie.model import DutchCompany
     from Products.Five.testbrowser import Browser
     self.loginAsPortalOwner()
     addSurvey(self.portal, BASIC_SURVEY)
     account = addAccount(password='******')
     survey_session = SurveySession(
             title=u'Dummy session',
             created=datetime.datetime(2012, 4, 22, 23, 5, 12),
             modified=datetime.datetime(2012, 4, 23, 11, 50, 30),
             zodb_path='nl/ict/software-development',
             account=account)
     survey_session.dutch_company = DutchCompany(
             title=u'Acme B.V.',
             employees='40h',
             email='*****@*****.**',
             submit_date=datetime.date(2012, 6, 6))
     Session.add(survey_session)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.handleErrors = False
     browser.open(
             'http://nohost/plone/client/api/users/1/sessions/1/'
             'report-actionplan')
     self.assertEqual(browser.headers['Content-Type'], 'application/rtf')
     self.assertTrue('Bedrijfsnaam' in browser.contents)
Пример #17
0
 def test_add_new_sector(self):
     import json
     from ..authentication import generate_token
     self.loginAsPortalOwner()
     country = self.portal.sectors['nl']
     country.invokeFactory('euphorie.countrymanager', 'manager',
             login='******', password=u'manager')
     browser = Browser()
     browser.handleErrors = False
     browser.raiseHttpErrors = False
     browser.addHeader('X-Euphorie-Token', generate_token(country['manager']))
     browser.post('http://nohost/plone/api/countries/nl/sectors',
             json.dumps({'title': u'IT development',
                         'login': '******',
                         'contact': {
                             'name': 'Jony Smith',
                             'email': '*****@*****.**',
                         },
                         'password': u'cobol-for-the-win'}))
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'sector')
     self.assertEqual(response['id'], 'it-development')
     self.assertTrue('it-development' in country)
     sector = country['it-development']
     self.assertEqual(sector.title, u'IT development')
     self.assertEqual(sector.login, 'it')
     self.assertEqual(sector.password, u'cobol-for-the-win')
Пример #18
0
class ReviewListTestCase(FunctionalTestCase):
    """dsfsdaf"""

    def afterSetUp(self):
        super(ReviewListTestCase, self).afterSetUp()

        self.uf = self.portal.acl_users
        self.uf.userFolderAddUser('reviewer', 'secret', ['Reviewer'], [])
        self.browser = Browser()
        self.wftool = getToolByName(self.portal, 'portal_workflow')

    def createDocument(self, id, title, description):
        self.setRoles(['Manager', ])
        self.portal.invokeFactory(id=id, type_name='Document')
        doc = getattr(self.portal, id)
        doc.setTitle(title)
        doc.setDescription(description)
        # we don't want it in the navigation
        doc.setExcludeFromNav(True)
        doc.reindexObject()
        return doc

    def submitToReview(self, obj):
        '''call the workflow action 'submit' for an object'''
        self.wftool.doActionFor(obj, 'submit')

    def test_unauthenticated(self):
        '''
        unauthenticated users do not have the necessary permissions to view
        the review list
        '''
        self.browser.open('http://nohost/plone/full_review_list')
        self.assertTrue('Login Name' in self.browser.contents)

    def test_authenticated(self):
        '''
        unauthenticated users do not have the necessary permissions to view
        the review list
        '''
        self.browser.addHeader('Authorization',
                               'Basic %s:%s' % ('reviewer', 'secret'))
        self.browser.open('http://nohost/plone/full_review_list')
        self.assertTrue('Full review list:' in self.browser.contents)

    def test_with_content(self):
        '''
        unauthenticated users do not have the necessary permissions to view
        the review list
        '''
        doc = self.createDocument(
            'testdoc', 'Test Document', 'Test Description')
        self.wftool.doActionFor(doc, 'submit')

        self.browser.addHeader('Authorization',
                               'Basic %s:%s' % ('reviewer', 'secret'))
        self.browser.open('http://nohost/plone/full_review_list')
        self.assertTrue('Full review list:' in self.browser.contents)
        # test if the table with review items contains an entry for testdoc
        self.assertTrue('value="/plone/testdoc"' in self.browser.contents)
Пример #19
0
 def getBrowser(self, loggedIn=True):
     """ instantiate and return a testbrowser for convenience """
     browser = Browser()
     if loggedIn:
         user = ptc.default_user
         pwd = ptc.default_password
         browser.addHeader('Authorization', 'Basic %s:%s' % (user, pwd))
     return browser
Пример #20
0
 def getBrowser(self, loggedIn=True):
     """ instantiate and return a testbrowser for convenience """
     browser = Browser()
     if loggedIn:
         user = ptc.default_user
         pwd = ptc.default_password
         browser.addHeader('Authorization', 'Basic %s:%s' % (user, pwd))
     return browser
class FunctionalTestCase(PloneTestCase.FunctionalTestCase):
    def _setup(self):
        PloneTestCase.FunctionalTestCase._setup(self)
        self.app.REQUEST['SESSION'] = Session()
        self.browser = Browser()
        self.app.acl_users.userFolderAddUser('root', 'secret', ['Manager'], [])
        self.browser.addHeader('Authorization', 'Basic root:secret')
        self.portal_url = 'http://nohost/plone'
Пример #22
0
 def getBrowser(self, loggedIn=True):
     """ instantiate and return a testbrowser for convenience """
     browser = Browser()
     if loggedIn:
         user = PloneTestCase.default_user
         pwd = PloneTestCase.default_password
         browser.addHeader("Authorization", "Basic %s:%s" % (user, pwd))
     return browser
Пример #23
0
def getBrowser(loggedIn=False):
    """ instantiate and return a testbrowser for convenience """
    browser = Browser()
    browser.handleErrors = True
    if loggedIn:
        user = PloneTestCase.default_user
        pwd = PloneTestCase.default_password
        browser.addHeader('Authorization', 'Basic %s:%s' % (user, pwd))
    return browser
Пример #24
0
class FunctionalTestCase(PloneTestCase.FunctionalTestCase):

    def _setup(self):
        PloneTestCase.FunctionalTestCase._setup(self)
        self.app.REQUEST['SESSION'] = Session()
        self.browser = Browser()
        self.app.acl_users.userFolderAddUser('root', 'secret', ['Manager'], [])
        self.browser.addHeader('Authorization', 'Basic root:secret')
        self.portal_url = 'http://nohost/plone'
Пример #25
0
 def testSecurity(self):
     browser = Browser()
     portal_url = self.portal.absolute_url()
     url = portal_url + '/@@manage-aliases'
     browser.open(url)
     self.assertNotEquals(url, browser.url)
     browser.addHeader("Authorization", "Basic %s:%s" % (portal_owner, default_password))
     browser.open(url)
     self.assertEquals(url, browser.url)
Пример #26
0
 def test_authenticated_user(self):
     import json
     from ...tests.utils import createSector
     from ..authentication import generate_token
     sector = createSector(self.portal, login='******', password=u'sector')
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(sector))
     browser.open('http://nohost/plone/api')
     response = json.loads(browser.contents)
     self.assertEqual(response['account'], 'sector')
Пример #27
0
 def test_authenticated_user(self):
     import json
     from ...tests.utils import createSector
     from ..authentication import generate_token
     sector = createSector(self.portal, login='******', password=u'sector')
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(sector))
     browser.open('http://nohost/plone/api')
     response = json.loads(browser.contents)
     self.assertEqual(response['account'], 'sector')
Пример #28
0
 def test_get(self):
     import json
     from euphorie.client.api.authentication import generate_token
     self.loginAsPortalOwner()
     (account, survey, survey_session) = _setup_session(self.portal)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open('http://nohost/plone/client/api/users/1/sessions/1/1/1')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'risk')
Пример #29
0
 def test_user_info(self):
     import json
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.api.authentication import generate_token
     account = addAccount()
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.handleErrors = False
     browser.open('http://nohost/plone/client/api/users/1')
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'user')
Пример #30
0
 def test_get(self):
     import json
     from euphorie.client.api.authentication import generate_token
     self.loginAsPortalOwner()
     (account, survey, survey_session) = _setup_session(self.portal)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open('http://nohost/plone/client/api/users/1/sessions/1/1/1')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'risk')
Пример #31
0
 def test_user_info(self):
     import json
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.api.authentication import generate_token
     account = addAccount()
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.handleErrors = False
     browser.open('http://nohost/plone/client/api/users/1')
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'user')
Пример #32
0
 def testAddingAlias(self):
     browser = Browser()
     browser.addHeader("Authorization", "Basic %s:%s" % (portal_owner, default_password))
     portal_url = self.portal.absolute_url()
     url = portal_url + '/@@manage-aliases'
     browser.open(url)
     control = browser.getControl(name='redirection')
     control.value = '/bar'
     browser.getControl(name='form.button.Add').click()
     self.failUnless('Alias added' in browser.contents)
     self.assertEquals(self.rt.getRedirectObject('/bar'), self.portal)
Пример #33
0
 def test_authenticated_user(self):
     import json
     from ...tests.utils import createSector
     from ..authentication import generate_token
     sector = createSector(self.portal, login='******', password=u'sector')
     browser = Browser()
     browser.handleErrors = False
     browser.addHeader('X-Euphorie-Token', generate_token(sector))
     browser.open('http://nohost/plone/api/countries/nl/managers')
     response = json.loads(browser.contents)
     self.assertEqual(set(response), set(['managers']))
     self.assertEqual(response['managers'], [])
Пример #34
0
 def test_do_GET_basic(self):
     import json
     from euphorie.client.api.authentication import generate_token
     from euphorie.client.tests.utils import addAccount
     account = addAccount()
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open('http://nohost/plone/client/api/users/1/sessions')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertEqual(set(response), set(['sessions']))
     self.assertEqual(response['sessions'], [])
Пример #35
0
 def test_do_GET_basic(self):
     import json
     from euphorie.client.api.authentication import generate_token
     from euphorie.client.tests.utils import addAccount
     account = addAccount()
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open('http://nohost/plone/client/api/users/1/sessions')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertEqual(set(response), set(['sessions']))
     self.assertEqual(response['sessions'], [])
Пример #36
0
 def test_control_panel(self):
     browser = Browser()
     browser.addHeader('Authorization', 'Basic %s:%s' %
                       (portal_owner, default_password))
     jstool = self.portal.portal_javascripts
     # This is probably not the best way to test this
     # we want resources to be cooked after a form save
     # so we empty them first
     jstool.cookedresources = ()
     browser.open(self.portal.absolute_url() + '/@@maps-controlpanel')
     browser.getControl('Default coordinates').value = "1.0, 1.5"
     browser.getControl('Save').click()
     self.failUnless(jstool.cookedresources)
Пример #37
0
 def test_browser_authenticated_user(self):
     import json
     from ...tests.utils import createSector
     from ..authentication import generate_token
     self.loginAsPortalOwner()
     self.portal.sectors['nl'].invokeFactory('euphorie.countrymanager', 'manager')
     sector = createSector(self.portal, login='******', password=u'sector')
     browser = Browser()
     browser.handleErrors = False
     browser.addHeader('X-Euphorie-Token', generate_token(sector))
     browser.open('http://nohost/plone/api/countries/nl/managers/manager')
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'countrymanager')
    def test_download_signatures(self):
        self.browser.open('http://nohost/plone/megaphone/signers')
        self.failIf('Download signatures' in self.browser.contents)

        browser = Browser()
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic root:secret')
        
        browser.open('http://nohost/plone/megaphone/signers')
        browser.getLink('Download signatures as CSV').click()
        self.assertEqual('attachment; filename="saved-letters.csv"', browser.headers['content-disposition'])
        self.assertEqual('text/comma-separated-values;charset=utf-8', browser.headers['content-type'])
        self.assertEqual('body,Harvey,Frank,[email protected],,Seattle,WA,,body\r\n', browser.contents)
    def test_delete_all_signatures(self):
        self.browser.open('http://nohost/plone/megaphone/signers')
        self.failIf('Delete all signatures' in self.browser.contents)

        browser = Browser()
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic root:secret')
        
        browser.open('http://nohost/plone/megaphone/signers')
        self.failUnless('Harvey' in browser.contents)
        browser.getLink('Delete all signatures').click()
        self.assertEqual('http://nohost/plone/megaphone/signers', browser.url)
        self.failIf('Harvey' in browser.contents)
    def test_remove_signature(self):
        # users can't remove unless they have Manage Portal permission
        self.browser.open('http://nohost/plone/megaphone/signers')
        self.failIf('Delete' in self.browser.contents)

        browser = Browser()
        browser.handleErrors = False
        browser.addHeader('Authorization', 'Basic root:secret')
        
        browser.open('http://nohost/plone/megaphone/signers')
        self.failUnless('Harvey' in browser.contents)
        browser.getLink('Delete').click()
        self.assertEqual('http://nohost/plone/megaphone/signers', browser.url)
        self.failIf('Harvey' in browser.contents)
Пример #41
0
 def test_browser_authenticated_user(self):
     import json
     from ...tests.utils import createSector
     from ..authentication import generate_token
     self.loginAsPortalOwner()
     self.portal.sectors['nl'].invokeFactory('euphorie.countrymanager',
                                             'manager')
     sector = createSector(self.portal, login='******', password=u'sector')
     browser = Browser()
     browser.handleErrors = False
     browser.addHeader('X-Euphorie-Token', generate_token(sector))
     browser.open('http://nohost/plone/api/countries/nl/managers/manager')
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'countrymanager')
Пример #42
0
 def test_get_translation(self):
     import json
     from euphorie.client.api.authentication import generate_token
     self.loginAsPortalOwner()
     (account, survey, survey_session) = _setup_session(self.portal)
     survey.language = 'nl'
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open('http://nohost/plone/client/api/users/1/sessions/1/1/1')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     options = dict((opt['value'], opt['title'])
                    for opt in response['frequency-options'])
     self.assertEqual(options['constant'], u'Voortdurend')
Пример #43
0
 def test_get_translation(self):
     import json
     from euphorie.client.api.authentication import generate_token
     self.loginAsPortalOwner()
     (account, survey, survey_session) = _setup_session(self.portal)
     survey.language = 'nl'
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open('http://nohost/plone/client/api/users/1/sessions/1/1/1')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     options = dict((opt['value'], opt['title'])
                        for opt in response['frequency-options'])
     self.assertEqual(options['constant'], u'Voortdurend')
Пример #44
0
 def test_control_panel(self):
     browser = Browser()
     browser.addHeader('Authorization',
                       'Basic %s:%s' % (portal_owner, default_password))
     jstool = self.portal.portal_javascripts
     # This is probably not the best way to test this
     # we want resources to be cooked after a form save
     # so we empty them first
     #jstool.cookedresources = ()
     jstool.cache_duration = 0
     browser.open(self.portal.absolute_url() + '/@@maps-controlpanel')
     browser.getControl('Default coordinates').value = "1.0, 1.5"
     browser.getControl('Save').click()
     self.failUnless(jstool.cookedresources)
Пример #45
0
    def test_get_translation(self):
        import json
        from euphorie.client.api.authentication import generate_token

        self.loginAsPortalOwner()
        (account, survey, survey_session) = _setup_session(self.portal)
        survey.language = "nl"
        browser = Browser()
        browser.addHeader("X-Euphorie-Token", generate_token(account))
        browser.open("http://nohost/plone/client/api/users/1/sessions/1/1/1")
        self.assertEqual(browser.headers["Content-Type"], "application/json")
        response = json.loads(browser.contents)
        options = dict((opt["value"], opt["title"]) for opt in response["frequency-options"])
        self.assertEqual(options["constant"], u"Voortdurend")
Пример #46
0
class PloneFormGenFunctionalTestCase(PloneTestCase.FunctionalTestCase):
    def _setup(self):
        PloneTestCase.FunctionalTestCase._setup(self)
        self.app.REQUEST['SESSION'] = Session()
        self.browser = Browser()
        self.app.acl_users.userFolderAddUser('root', 'secret', ['Manager'], [])
        self.browser.addHeader('Authorization', 'Basic root:secret')
        self.portal_url = 'http://nohost/plone'

    def afterSetUp(self):
        super(PloneTestCase.FunctionalTestCase, self).afterSetUp()
        self.portal.MailHost = MailHostMock()

    def setStatusCode(self, key, value):
        from ZPublisher import HTTPResponse
        HTTPResponse.status_codes[key.lower()] = value
Пример #47
0
 def test_browser_sector_can_not_modify_manager(self):
     import mock
     import json
     from ...tests.utils import createSector
     from ..authentication import generate_token
     self.loginAsPortalOwner()
     self.portal.sectors['nl'].invokeFactory('euphorie.countrymanager', 'manager')
     sector = createSector(self.portal, login='******', password=u'sector')
     browser = Browser()
     browser.raiseHttpErrors = False
     browser.addHeader('X-Euphorie-Token', generate_token(sector))
     with mock.patch('mechanize._opener.Request.get_method', return_value='PUT'):
         browser.post('http://nohost/plone/api/countries/nl/managers/manager',
                 '{"title": "Hacked!"}')
         response = json.loads(browser.contents)
         self.assertEqual(response['type'], 'error')
Пример #48
0
 def test_authenticated_user(self):
     import json
     from ...tests.utils import createSector
     from ..authentication import generate_token
     sector = createSector(self.portal, login='******', password=u'sector')
     browser = Browser()
     browser.handleErrors = False
     browser.addHeader('X-Euphorie-Token', generate_token(sector))
     browser.open('http://nohost/plone/api/countries')
     response = json.loads(browser.contents)
     self.assertEqual(set(response), set(['countries']))
     self.assertGreater(len(response['countries']), 30)
     nl = [c for c in response['countries'] if c['id'] == 'nl'][0]
     self.assertEqual(set(nl), set(['id', 'title', 'country-type']))
     self.assertEqual(nl['id'], u'nl')
     self.assertEqual(nl['title'], u'The Netherlands')
     self.assertEqual(nl['country-type'], u'eu-member')
Пример #49
0
class UWOshSuccessFunctionalTestCase(UWOshSuccessTestCase,
                                     ptc.FunctionalTestCase):
    def __init__(self, methodName='runTest'):
        UWOshSuccessTestCase.__init__(self, methodName)
        ptc.FunctionalTestCase.__init__(self, methodName)
        self.browser = Browser()
        self.browser.addHeader('Accept-Language', 'en-US')

    def browserLogout(self):
        self.browser.open(self.portal.absolute_url() + '/logout')
        self.assertTrue('You are now logged out' in self.browser.contents)

    def browserLogin(self, username, password='******'):
        self.browser.open(self.portal.absolute_url() + '/login_form')
        self.browser.getControl(name='__ac_name').value = username
        self.browser.getControl(name='__ac_password').value = password
        self.browser.getControl(name='submit').click()
        self.assertTrue('You are now logged in' in self.browser.contents)
Пример #50
0
 def test_browser_sector_can_not_modify_manager(self):
     import mock
     import json
     from ...tests.utils import createSector
     from ..authentication import generate_token
     self.loginAsPortalOwner()
     self.portal.sectors['nl'].invokeFactory('euphorie.countrymanager',
                                             'manager')
     sector = createSector(self.portal, login='******', password=u'sector')
     browser = Browser()
     browser.raiseHttpErrors = False
     browser.addHeader('X-Euphorie-Token', generate_token(sector))
     with mock.patch('mechanize._opener.Request.get_method',
                     return_value='PUT'):
         browser.post(
             'http://nohost/plone/api/countries/nl/managers/manager',
             '{"title": "Hacked!"}')
         response = json.loads(browser.contents)
         self.assertEqual(response['type'], 'error')
Пример #51
0
 def test_get(self):
     import datetime
     import json
     from sqlalchemy.orm import object_session
     from euphorie.client.model import Risk
     from euphorie.client.model import ActionPlan
     from euphorie.client.api.authentication import generate_token
     from euphorie.client.api.tests.test_risk import _setup_session
     self.loginAsPortalOwner()
     (account, survey, survey_session) = _setup_session(self.portal)
     risk = object_session(survey_session).query(Risk).one()
     risk.action_plans.append(
         ActionPlan(action_plan=u'This is the plan',
                    planning_start=datetime.date(2012, 6, 3)))
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open('http://nohost/plone/client/api/users/1/'
                  'sessions/1/1/1/actionplans')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertTrue('action-plans' in response)
Пример #52
0
 def test_get(self):
     import datetime
     import json
     from z3c.saconfig import Session
     from euphorie.client.model import SurveySession
     from euphorie.client.api.authentication import generate_token
     from euphorie.content.tests.utils import BASIC_SURVEY
     from euphorie.client.tests.utils import addAccount
     from euphorie.client.tests.utils import addSurvey
     self.loginAsPortalOwner()
     addSurvey(self.portal, BASIC_SURVEY)
     account = addAccount(password='******')
     survey_session = SurveySession(
         title=u'Dummy session',
         created=datetime.datetime(2012, 4, 22, 23, 5, 12),
         modified=datetime.datetime(2012, 4, 23, 11, 50, 30),
         zodb_path='nl/ict/software-development',
         account=account)
     Session.add(survey_session)
     browser = Browser()
     browser.addHeader('X-Euphorie-Token', generate_token(account))
     browser.open('http://nohost/plone/client/api/users/1/sessions/1')
     self.assertEqual(browser.headers['Content-Type'], 'application/json')
     response = json.loads(browser.contents)
     self.assertEqual(
         set(response),
         set([
             'id', 'survey', 'type', 'created', 'modified', 'title',
             'next-step'
         ]))
     self.assertEqual(response['id'], 1)
     self.assertEqual(response['survey'], 'nl/ict/software-development')
     self.assertEqual(response['type'], 'session')
     self.assertEqual(response['title'], 'Dummy session')
     self.assertEqual(response['created'], '2012-04-22T23:05:12')
     self.assertEqual(response['modified'], '2012-04-23T11:50:30')
     self.assertEqual(
         response['next-step'],
         'http://nohost/plone/client/api/users/1/sessions/1/'
         'identification')
Пример #53
0
 def test_add_new_manager(self):
     import json
     from ..authentication import generate_token
     self.loginAsPortalOwner()
     country = self.portal.sectors['nl']
     country.invokeFactory('euphorie.countrymanager', 'manager',
             login='******', password=u'manager')
     browser = Browser()
     browser.handleErrors = False
     browser.raiseHttpErrors = False
     browser.addHeader('X-Euphorie-Token', generate_token(country['manager']))
     browser.post('http://nohost/plone/api/countries/nl/managers',
             json.dumps({'title': u'Jane Doe',
                         'login': '******',
                         'password': u'johny'}))
     response = json.loads(browser.contents)
     self.assertEqual(response['type'], 'countrymanager')
     self.assertEqual(response['id'], 'jane-doe')
     self.assertTrue('jane-doe' in country)
     jane = country['jane-doe']
     self.assertEqual(jane.title, u'Jane Doe')
     self.assertEqual(jane.login, 'jane')
     self.assertEqual(jane.password, u'johny')
Пример #54
0
# PloneTestCase set up this product on installation.

setup_product()
ptc.setupPloneSite(products=['collective.weightedportlets'])


class TestCase(ptc.PloneTestCase):
    """We use this base class for all the tests in this package. If
    necessary, we can put common utility or setup code in here. This
    applies to unit test cases.
    """


class FunctionalTestCase(ptc.FunctionalTestCase):
    """We use this class for functional integration tests that use
    doctest syntax. Again, we can put basic common utility or setup
    code in here.
    """

    def afterSetUp(self):
        roles = ('Member', 'Contributor')
        self.portal.portal_membership.addMember('contributor',
                                                'secret',
                                                roles, [])


from Products.Five.testbrowser import Browser
browser = Browser()
from Products.PloneTestCase.setup import portal_owner, default_password
browser.addHeader('Authorization', 'Basic %s:%s' % (portal_owner, default_password))
Пример #55
0
 def testAliasesTab(self):
     browser = Browser()
     browser.addHeader("Authorization", "Basic %s:%s" % (portal_owner, default_password))
     browser.open(self.portal.absolute_url())
     aliases = browser.getLink(text='Aliases')
     self.failUnless('@@manage-aliases' in aliases.url)