From 4cdd39ebf73e09eb9ae57aeabb73c2c280cb7a14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Fri, 21 May 2010 11:26:10 +0000 Subject: [PATCH] test new features from 34467, and update test accordingly. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@35517 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/tests/testTemplate.py | 81 ++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 4 deletions(-) diff --git a/product/ERP5/tests/testTemplate.py b/product/ERP5/tests/testTemplate.py index b0ae449a2b..da7ab9ea0b 100644 --- a/product/ERP5/tests/testTemplate.py +++ b/product/ERP5/tests/testTemplate.py @@ -188,6 +188,79 @@ class TestTemplate(ERP5TypeTestCase): self.assertEquals('enabled', user_preference.getPreferenceState()) self.assertEqual(len(user_preference.objectIds()), 1) + def test_TemplateCreatePreferenceWithExistingNonAuthorizedPreference(self): + # When there is an active preference, but without add permission in that + # preference, another preference is created when making a template + self.createUserAndLogin(self.id()) + unauthorized_preference = self.portal.portal_preferences.newContent( + portal_type='Preference') + unauthorized_preference.enable() + # it's not authorized to add content in this preference + unauthorized_preference.manage_permission('Add portal content', (), acquire=0) + preference_id_list = list(self.portal.portal_preferences.objectIds()) + + transaction.commit() + self.tic() + + document = self.portal.foo_module.newContent(portal_type='Foo') + transaction.commit() + self.tic() + + document.Base_makeTemplateFromDocument(form_id=None) + transaction.commit() + self.tic() + + # this preference was not used + self.assertEqual(len(unauthorized_preference.objectIds()), 0) + + # a new preference is created + new_preference_id_list = list(self.portal.portal_preferences.objectIds()) + self.assertEqual(len(preference_id_list) + 1, len(new_preference_id_list)) + preference_id = [x for x in new_preference_id_list if x not in + preference_id_list][0] + preference = self.portal.portal_preferences._getOb(preference_id) + self.assertEquals('Preference', preference.getPortalType()) + self.assertEquals('enabled', preference.getPreferenceState()) + + self.assertEqual(len(preference.objectIds()), 1) + + def test_TemplateCreateWithSameTitleUpdateExisting(self): + # When we create a template with the same title as an existing template, it + # replaces the existing one. + self.createUserAndLogin(self.id()) + user_preference = self.portal.portal_preferences.newContent( + portal_type='Preference') + user_preference.setPriority(Priority.USER) + user_preference.enable() + transaction.commit() + self.tic() + + document = self.portal.foo_module.newContent(portal_type='Foo', + title='template', + description='First document') + transaction.commit() + self.tic() + + document.Base_makeTemplateFromDocument(form_id=None) + transaction.commit() + self.tic() + + self.assertEqual(len(user_preference.objectIds()), 1) + self.assertEqual(user_preference.objectValues()[0].getDescription(), + 'First document') + + other_document = self.portal.foo_module.newContent( + portal_type='Foo', + title='template', + description="Another document") + other_document.Base_makeTemplateFromDocument(form_id=None) + transaction.commit() + self.tic() + self.assertEqual(len(user_preference.objectIds()), 1) + self.assertEqual(user_preference.objectValues()[0].getDescription(), + 'Another document') + + def test_TemplateCreatePreferenceWithSystemPreferenceEnabled(self): # TODO: This test *might* be removed if it is good to trust # getActivePreference to return only Preference portal type @@ -240,7 +313,6 @@ class TestTemplate(ERP5TypeTestCase): preference_id = [x for x in new_preference_id_list if x not in preference_id_list][0] preference = self.portal.portal_preferences._getOb(preference_id) - self.assertEquals('Preference', preference.getPortalType()) self.assertEquals('Document Template Container', preference.getTitle()) self.assertEquals(Priority.USER, preference.getPriority()) @@ -280,10 +352,7 @@ class TestTemplate(ERP5TypeTestCase): preference = self.portal.portal_preferences._getOb(preference_id) self.assertEquals('Preference', preference.getPortalType()) - self.assertEquals('Document Template Container', preference.getTitle()) - self.assertEquals(Priority.USER, preference.getPriority()) self.assertEquals('enabled', preference.getPreferenceState()) - self.assertEqual(len(preference.objectIds()), 2) def _testTemplateNotIndexable(self, document): @@ -315,6 +384,10 @@ class TestTemplate(ERP5TypeTestCase): self.assertEquals(0, len(self.portal.portal_catalog(uid=template_line.getUid()))) + # change the title, because creating another template with same title will + # replace the first one + document.setTitle('%sb' % document.getTitle()) + # and this is still true if you create two templates from the same document # #929 document.Base_makeTemplateFromDocument(form_id=None) -- 2.30.9