Example #1
0
 def setUp(self):
     SetupMixin.setUp(self)
     d=self.config.db.lookup('cn=fred,dc=example,dc=com')
     ldapconfig.loadConfig(configFiles=[], reload=True)
     def _setPassword(e, password):
         return e.setPassword(password)
     d.addCallback(_setPassword, 'flintstone')
     ldaptestutil.pumpingDeferredResult(d)
     os.mkdir(os.path.join(self.spool, 'example.com', 'h1'))
Example #2
0
    def test_existing(self):
        # TODO cookies don't work because there's nothing that would carry over their state
        data = self.checkPage(
            'http://localhost/dc=example,dc=com/delete/uid=foo,dc=example,dc=com',
            cookies=False)
        self.assertEquals(data['title'], u'Ldaptor Delete Page')
        self.failUnless('<p>Remove <span>uid=foo,dc=example,dc=com</span>?</p>'
                        in data['page'])

        # fill form, submit
        forms = data['tree'].getElementsByTagName('form')
        self.assertEquals(len(forms), 1)
        form = forms[0]
        # TODO support multipart/form-data, that's what the form tells us to use
        ##         self.assertEquals(form.getAttribute('enctype', 'application/x-www-form-urlencoded'),
        ##                           'application/x-www-form-urlencoded')
        action = data['url'].clear().click(form.getAttribute('action'))
        data = self.getPage(
            action,
            cookies=False,
            method=form.getAttribute('method', 'get').upper(),
            headers={'Content-Type': 'application/x-www-form-urlencoded'},
        )

        self.assertEquals(data['title'], 'Ldaptor Search Page')
        self.failUnless('Deleted uid=foo,dc=example,dc=com.' in data['page'])

        d = self.example.children()
        children = util.pumpingDeferredResult(d)
        self.assertEquals(children, [])
Example #3
0
    def test_existing(self):
        # TODO cookies don't work because there's nothing that would carry over their state
        data = self.checkPage('http://localhost/dc=example,dc=com/delete/uid=foo,dc=example,dc=com', cookies=False)
        self.assertEquals(data['title'], u'Ldaptor Delete Page')
        self.failUnless('<p>Remove <span>uid=foo,dc=example,dc=com</span>?</p>' in data['page'])

        # fill form, submit
        forms = data['tree'].getElementsByTagName('form')
        self.assertEquals(len(forms), 1)
        form = forms[0]
        # TODO support multipart/form-data, that's what the form tells us to use
##         self.assertEquals(form.getAttribute('enctype', 'application/x-www-form-urlencoded'),
##                           'application/x-www-form-urlencoded')
        action = data['url'].clear().click(form.getAttribute('action'))
        data = self.getPage(action,
                            cookies=False,
                            method=form.getAttribute('method', 'get').upper(),
                            headers={'Content-Type': 'application/x-www-form-urlencoded'},
                            )

        self.assertEquals(data['title'], 'Ldaptor Search Page')
        self.failUnless('Deleted uid=foo,dc=example,dc=com.' in data['page'])

        d = self.example.children()
        children = util.pumpingDeferredResult(d)
        self.assertEquals(children, [])
Example #4
0
 def test_map_alias_multiple(self):
     d = self.map.get('*****@*****.**')
     r = ldaptestutil.pumpingDeferredResult(d)
     got = r.split(', ')
     got.sort()
     wanted = ['*****@*****.**', '*****@*****.**']
     wanted.sort()
     self.assertEquals(got, wanted)
Example #5
0
    def testSimple(self):
        d = fetchschema.fetch(self.client, 'dc=example,dc=com')
        (attributeTypes, objectClasses) = util.pumpingDeferredResult(d)

        self.failUnlessEqual(
            [to_bytes(x) for x in attributeTypes],
            [to_bytes(schema.AttributeTypeDescription(x)) for x in [
                test_schema.AttributeType_KnownValues.knownValues[0][0]]])

        self.failUnlessEqual(
            [to_bytes(x) for x in objectClasses],
            [to_bytes(schema.ObjectClassDescription(x)) for x in [
                test_schema.OBJECTCLASSES['organization'],
                test_schema.OBJECTCLASSES['organizationalUnit']]])
Example #6
0
 def test_success(self):
     env = {}
     d = defer.maybeDeferred(courier_login.main,
                             config=self.config,
                             argv=['you', 'someone-else', 'foo'],
                             env=env,
                             service='fakeserv',
                             authtype='login',
                             authdata='[email protected]\nflintstone')
     r = ldaptestutil.pumpingDeferredResult(d)
     self.assertEquals(r, (os.path.join(self.spool,
                                       'example.com',
                                       'h1',
                                       'fr'),
                           'fred'))
     self.assertEquals(env.get('AUTHENTICATED'),
                       '*****@*****.**')
     self.assertEquals(env.get('MAILDIR'), '.')
Example #7
0
    def getPage(self, url, cookies, *a, **kw):
        parse = kw.pop('parse', True)

        if cookies:
            getter = mockweb.getPage
        else:
            getter = mockweb.getPage_noCookies
        kw['extraInfo'] = True
        d = getter(self.site, url, *a, **kw)
        data = util.pumpingDeferredResult(d)

        if parse:
            tree = microdom.parseString(data['page'], beExtremelyLenient=True)
            assert 'tree' not in data
            data['tree'] = tree

            title = data['tree'].getElementsByTagName('title')[0]
            assert 'title' not in data
            data['title'] = getTextContents(title)

        return data
Example #8
0
    def getPage(self, url, cookies, *a, **kw):
        parse = kw.pop('parse', True)

        if cookies:
            getter = mockweb.getPage
        else:
            getter = mockweb.getPage_noCookies
        kw['extraInfo'] = True
        d = getter(self.site, url, *a, **kw)
        data = util.pumpingDeferredResult(d)

        if parse:
            tree = microdom.parseString(data['page'], beExtremelyLenient=True)
            assert 'tree' not in data
            data['tree'] = tree

            title = data['tree'].getElementsByTagName('title')[0]
            assert 'title' not in data
            data['title'] = getTextContents(title)

        return data
Example #9
0
 def test_extension_alias(self):
     d = self.map.get('*****@*****.**')
     r = ldaptestutil.pumpingDeferredResult(d)
     self.assertEquals(r, '*****@*****.**')
Example #10
0
 def test_extension_simple(self):
     d = self.map.get('*****@*****.**')
     r = ldaptestutil.pumpingDeferredResult(d)
     self.assertEquals(r, '*****@*****.**')
Example #11
0
 def testUgly_has_local(self):
     d = defer.execute(self.map.get, 'foo@')
     r = ldaptestutil.pumpingDeferredResult(d)
     self.failUnlessIdentical(r, None)
Example #12
0
 def test_map_alias_simple(self):
     d = self.map.get('*****@*****.**')
     r = ldaptestutil.pumpingDeferredResult(d)
     self.assertEquals(r, '*****@*****.**')
Example #13
0
 def test_map_hasUser_noBox_validDomain_noUser(self):
     d = self.map.get('*****@*****.**')
     r = ldaptestutil.pumpingDeferredResult(d)
     self.assertEquals(r, None)
Example #14
0
 def test_map_hasUser_noBox_validDomain_validUser(self):
     d = self.map.get('*****@*****.**')
     r = ldaptestutil.pumpingDeferredResult(d)
     self.assertEquals(r, '*****@*****.**')