def testAddRedirectToPathAndGetRedirect(self): self.setRoles(['Manager']) testid = 'testobj' testfolderid = 'testfolder' testurl = '/testredirect' testfolderurl = '/testfolderredirect' testfolder = utils.makeContent(self.portal, 'Folder', testfolderid) testobj = utils.makeContent(testfolder, 'Document', testid) self.failUnless( self.rt.addRedirect( testurl, self.portal.portal_url.getRelativeContentURL(testobj))) self.failUnless(self.rt.getRedirect(testurl)) self.failUnlessEqual(self.rt.getRedirectObject(testurl), testobj) self.failUnless(self.rt.getRedirect(testurl + '/')) self.failUnlessEqual(self.rt.getRedirectObject(testurl + '/'), testobj) self.failUnless( self.rt.addRedirect( testfolderurl, self.portal.portal_url.getRelativeContentURL(testfolder))) self.failUnless(self.rt.getRedirect(testfolderurl)) self.failUnlessEqual(self.rt.getRedirectObject(testfolderurl), testfolder) self.failUnless(self.rt.getRedirect('%s/%s' % (testfolderurl, testid))) self.failUnlessEqual( self.rt.getRedirectObject('%s/%s' % (testfolderurl, testid)), testobj) self.setRoles(['Member'])
def testBasicAddRedirectToUIDAndGetRedirect(self): self.setRoles(['Manager']) testurl = '/testredirect' testobj = utils.makeContent(self.portal, 'Document', 'testobj') self.failUnless(self.rt.addRedirect(testurl, testobj.UID())) self.failUnless(self.rt.getRedirect(testurl)) self.failUnlessEqual(self.rt.getRedirectObject(testurl), testobj) self.setRoles(['Member'])
def testBasicAddRedirectToPathAndGetRedirect(self): self.setRoles(['Manager']) testurl = '/testredirect' testobj = utils.makeContent(self.portal, 'Document', 'testobj') testpath = self.portal.portal_url.getRelativeContentURL(testobj) self.failUnless(self.rt.addRedirect(testurl, testpath)) self.failUnless(self.rt.getRedirect(testurl)) self.failUnlessEqual(self.rt.getRedirectObject(testurl), testobj) self.setRoles(['Member'])
def testRemoveRedirect(self): self.setRoles(['Manager']) testurl = '/testredirect' testobj = utils.makeContent(self.portal, 'Document', 'testobj') self.rt.addRedirect(testurl, testobj) self.failUnless(self.rt.getRedirect(testurl)) self.failUnless(self.rt.removeRedirect(testurl)) self.failIf(self.rt.getRedirect(testurl)) self.setRoles(['Member'])
def testMigrationOfUIDs(self): logger = logging.getLogger("RedirectionTool") storage = getUtility(IRedirectionStorage) self.setRoles(['Manager']) testurl = '/testredirect' testobj = utils.makeContent(self.portal, 'Document', 'testobj') self.rt._redirectionmap[testurl] = testobj.UID() self.assertEquals(self.rt.getRedirect(testurl), None) self.assertEquals(storage.get('/plone%s' % testurl), None) self.rt.migrateStorage(logger) self.assertEquals(self.rt.getRedirectObject(testurl), testobj) self.assertEquals(storage.get('/plone%s' % testurl), "/".join(testobj.getPhysicalPath()))
def testExtractReferenceFromATObject(self): self.setRoles(['Manager']) testobj = utils.makeContent(self.portal, 'Document', 'testobj') reference = self.rt.extractReference(testobj) self.failUnless(reference) self.failUnlessEqual(reference, "/".join(testobj.getPhysicalPath())) self.failUnlessEqual(reference, self.rt.extractReference(testobj.UID())) self.failUnlessEqual( reference, self.rt.extractReference( '/%s' % self.portal.portal_url.getRelativeContentURL(testobj))) self.failUnlessEqual( reference, self.rt.extractReference( self.portal.portal_url.getRelativeContentURL(testobj))) self.setRoles(['Member'])
def testCheckPermission(self): portal_path = self.portal.getPhysicalPath() self.login('user1') folder = self.membership.getHomeFolder('user1') testobj = utils.makeContent(folder, 'Document', 'testobj') folder_path = folder.getPhysicalPath()[len(portal_path):] testurl = '/%s/foo' % '/'.join(folder_path) # user should be able to add redirects to his own objects self.failUnless(self.rt.addRedirect(testurl, testobj)) self.failUnlessEqual(self.rt.getRedirectObject(testurl), testobj) folder = self.membership.getHomeFolder('user2') folder_path = folder.getPhysicalPath()[len(portal_path):] testurl = '/%s/foo' % '/'.join(folder_path) # but only if the alias is in a place which belongs to him self.failIf(self.rt.addRedirect(testurl, testobj)) self.failUnlessEqual(self.rt.getRedirectObject(testurl), None) testurl = '/bar' self.failIf(self.rt.addRedirect(testurl, testobj)) self.failUnlessEqual(self.rt.getRedirectObject(testurl), None)