Commit 1a3bf5cd authored by Nicolas Delaby's avatar Nicolas Delaby

Test standard Contact-US form


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@41797 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent d123bf92
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved.
# Nicolas Delaby <nicolas@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import unittest
import transaction
from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase,\
_getConversionServerDict
class TestERP5WebWithCRM(ERP5TypeTestCase):
"""Test for erp5_web and erp5_crm features
"""
def getTitle(self):
return "ERP5 Web with CRM"
def getBusinessTemplateList(self):
"""
Return the list of required business templates.
"""
return ('erp5_base',
'erp5_ingestion',
'erp5_ingestion_mysql_innodb_catalog',
'erp5_crm',
'erp5_web',
)
def afterSetUp(self):
self.login()
self.setSystemPreference()
user = self.createUser('robby')
self.createUserAssignment(user, {})
def setSystemPreference(self):
portal_type = 'System Preference'
preference_list = self.portal.portal_preferences.contentValues(
portal_type=portal_type)
if not preference_list:
preference = self.portal.portal_preferences.newContent(
portal_type=portal_type)
else:
preference = preference_list[0]
conversion_dict = _getConversionServerDict()
preference.setPreferredOoodocServerAddress(conversion_dict['hostname'])
preference.setPreferredOoodocServerPortNumber(conversion_dict['port'])
if self.portal.portal_workflow.isTransitionPossible(preference, 'enable'):
preference.enable()
def clearModule(self, module):
module.manage_delObjects(list(module.objectIds()))
transaction.commit()
self.tic()
def beforeTearDown(self):
self.clearModule(self.portal.web_site_module)
self.clearModule(self.portal.event_module)
self.clearModule(self.portal.person_module)
def setupWebSection(self, **kw):
"""
Setup Web Site
"""
portal = self.getPortal()
website = self.getPortal().web_site_module.newContent(portal_type='Web Site',
**kw)
websection = website.newContent(portal_type='Web Section', **kw)
website.publish()
transaction.commit()
self.tic()
return websection
def test_01_Contact_Us_with_Anonymous_user(self):
"""Test creation of Web Message with Anonymous User
"""
web_section = self.setupWebSection()
self.logout()
form_kw = {'source_organisation_title': 'John Doe Industries',
'source_person_first_name': 'John',
'source_person_last_name': 'Doe',
'source_person_default_email_text': 'John.Doe@example.com',
'source_person_default_telephone_text': '34343434',
'description': 'I want ERP5 for my company',
}
web_section.WebSection_addWebMessage(**form_kw)
transaction.commit()
self.tic()
self.login()
# Now a web message has been created
event = self.portal.event_module.objectValues()[0]
for property_id, value in form_kw.iteritems():
self.assertEquals(event.getProperty(property_id), value)
self.assertEquals(event.getSourceCarrier(), web_section.getRelativeUrl())
self.assertTrue(event.hasStartDate())
# Trig alarm execution
self.portal.portal_alarms.fetch_incoming_web_message_list.activeSense()
transaction.commit()
self.tic()
self.assertEquals(event.getSimulationState(), 'new')
def test_02_Contact_Us_with_Aunthenticated_user(self):
"""Test creation of Web Message with Authenticted User
"""
web_section = self.setupWebSection()
self.logout()
self.login('robby')
form_kw = {'source_organisation_title': 'John Doe Industries',
'source_person_first_name': 'John',
'source_person_last_name': 'Doe',
'source_person_default_email_text': 'John.Doe@example.com',
'source_person_default_telephone_text': '34343434',
'description': 'I want ERP5 for my company',
}
web_section.WebSection_addWebMessage(**form_kw)
transaction.commit()
self.tic()
self.logout()
self.login()
# Now a web message has been created
event = self.portal.event_module.objectValues()[0]
for property_id, value in form_kw.iteritems():
self.assertEquals(event.getProperty(property_id), value)
self.assertEquals(event.getSourceCarrier(), web_section.getRelativeUrl())
self.assertTrue(event.hasStartDate())
self.assertTrue(event.hasSource()) # User was connected
# he became source of event
# Trig alarm execution
self.portal.portal_alarms.fetch_incoming_web_message_list.activeSense()
transaction.commit()
self.tic()
self.assertEquals(event.getSimulationState(), 'new')
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestERP5WebWithCRM))
return suite
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment