testUNG.py 24.3 KB
Newer Older
Gabriel Monnerat's avatar
Gabriel Monnerat committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
##############################################################################
#
# Copyright (c) 2002-2011 Nexedi SA and Contributors. All Rights Reserved.
#                         Gabriel M. Monnerat <gabriel@tiolive.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility 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
# guarantees 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################

from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
30 31
from Products.ERP5Type.tests.utils import FileUpload
from Products.ERP5Type.tests.ERP5TypeTestCase import  _getConversionServerDict
32
from DateTime import DateTime
33 34
import os.path
import Products.ERP5.tests
35
import re
36
import json
37

Gabriel Monnerat's avatar
Gabriel Monnerat committed
38 39 40 41 42 43 44 45 46 47

class TestUNG(ERP5TypeTestCase):
  """
    UNG Test Case
  """

  def getTitle(self):
    return "UNG Tests"

  def getBusinessTemplateList(self):
48
    return ('erp5_ingestion_mysql_innodb_catalog',
49
            'erp5_full_text_myisam_catalog',
50 51
            'erp5_base',
            'erp5_jquery',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
52
            'erp5_web',
53
            'erp5_core_proxy_field_legacy',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
54
            'erp5_ingestion',
55
            'erp5_jquery_ui',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
56
            'erp5_dms',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
57 58 59
            'erp5_crm',
            'erp5_knowledge_pad',
            'erp5_jquery_plugin_spinbtn',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
60 61
            'erp5_jquery_plugin_jgraduate',
            'erp5_jquery_plugin_svgicon',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
62
            'erp5_jquery_plugin_hotkey',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
63 64
            'erp5_jquery_plugin_jquerybbq',
            'erp5_jquery_plugin_svg_editor',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
65 66 67 68 69
            'erp5_jquery_plugin_sheet',
            'erp5_jquery_plugin_mbmenu',
            'erp5_jquery_plugin_jqchart',
            'erp5_jquery_plugin_colorpicker',
            'erp5_jquery_plugin_elastic',
Rafael Monnerat's avatar
Rafael Monnerat committed
70
            'erp5_jquery_plugin_wdcalendar',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
71
            'erp5_jquery_sheet_editor',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
72
            'erp5_xinha_editor',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
73
            'erp5_svg_editor',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
74
            'erp5_web_ung_core',
Gabriel Monnerat's avatar
Gabriel Monnerat committed
75
            'erp5_web_ung_theme',)
Gabriel Monnerat's avatar
Gabriel Monnerat committed
76

77 78 79 80
  def afterSetUp(self):
    """Clean up form"""
    self.portal.REQUEST.form.clear()

81 82 83 84 85 86 87 88
  def getDocumentPath(self):
    """ It returns a full path of document """
    folder_path = os.path.dirname(Products.ERP5.tests.__file__)
    filename = "tiolive-ERP5.Freedom.TioLive.Spreadsheet-001-en.ods"
    return os.path.join(folder_path,
                        "test_data",
                        filename), filename

89 90
  def assertCreateDocumentUsingTemplate(self, template, **kw):
    web_page_module = self.portal.web_page_module
91
    self.changeSkin("UNGDoc")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
92
    self.portal.ERP5Site_createNewWebDocument(template)
93
    self.tic()
94 95 96 97 98
    web_page_search = web_page_module.searchFolder(**kw)
    self.assertEquals(1, len(web_page_search))

  def getTitleListToBySubjectDomain(self):
    parent = self.portal.portal_domains.ung_domain.by_subject
99
    self.changeSkin("UNGDoc")
100
    return [domain.getTitle() for domain in self.portal.ERP5Site_generateDomain(0, parent)]
Gabriel Monnerat's avatar
Gabriel Monnerat committed
101 102

  def testERP5Site_createNewWebDocument(self):
103
    """Test if the script creates the objects using Templates correctly"""
104
    web_page_module = self.portal.web_page_module
105
    self.assertCreateDocumentUsingTemplate("web_page_template",
106 107
                                           portal_type="Web Page",
                                           reference="default-Web.Page.Reference")
108
    self.assertCreateDocumentUsingTemplate("web_table_template",
109 110
                                           portal_type="Web Table",
                                           reference="default-Web.Table.Reference")
111
    self.assertCreateDocumentUsingTemplate("web_illustration_template",
112 113 114
                                           portal_type="Web Illustration",
                                           reference="default-Web.Illustration.Reference")

115 116
  def testERP5Site_generateDomain(self):
    """Test if script ERP5Site_generateDomain generates the list of
117
    domains correctly"""
118
    self.changeSkin('UNGDoc')
119
    web_page = self.portal.web_page_module.newContent(portal_type="Web Page")
120
    self.tic()
121 122 123
    title_list = self.getTitleListToBySubjectDomain()
    self.assertFalse("Ung" in title_list)
    web_page.setSubjectList("Ung")
124
    self.tic()
125 126
    # The script uses cache (short) to store the results
    self.portal.portal_caches.clearAllCache()
127
    title_list = self.getTitleListToBySubjectDomain()
Rafael Monnerat's avatar
Rafael Monnerat committed
128
    self.assertTrue("Ung" in title_list, title_list)
Gabriel Monnerat's avatar
Gabriel Monnerat committed
129 130 131

  def testBase_changeWorkflowState(self):
    """Test if script change the state of object correctly"""
132
    self.changeSkin('UNGDoc')
Gabriel Monnerat's avatar
Gabriel Monnerat committed
133 134
    web_table = self.portal.web_page_module.newContent(portal_type="Web Table")
    web_table.Base_changeWorkflowState("publish_action")
135
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
136
    self.assertEquals(web_table.getValidationState(), "published")
137
    self.changeSkin("UNGDoc")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
138 139 140 141 142 143 144 145
    web_table.Base_changeWorkflowState("reject_action")
    self.assertEquals(web_table.getValidationState(), "draft")

  def testWebPage_getUNGIcon(self):
    """Test if the paths are returned correctly"""
    web_page = self.portal.web_page_module.newContent(portal_type="Web Page")
    web_table = self.portal.web_page_module.newContent(portal_type="Web Table")
    web_illustration = self.portal.web_page_module.newContent(portal_type="Web Illustration")
146
    self.tic()
147
    self.changeSkin("UNGDoc")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
148 149 150 151 152 153
    self.assertEquals(web_page.WebPage_getUNGIcon(),
                      "<img src='ung_images/document.gif'/>")
    self.assertEquals(web_table.WebPage_getUNGIcon(),
                      "<img src='ung_images/table.jpg'/>")
    self.assertEquals(web_illustration.WebPage_getUNGIcon(),
                      "<img src='ung_images/svg.png'/>")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
154 155 156

  def testWebSection_deleteObjectList(self):
    """Test if objects are deleted correctly"""
Gabriel Monnerat's avatar
Gabriel Monnerat committed
157 158
    web_page_module = self.portal.web_page_module
    web_page = web_page_module.newContent(portal_type="Web Page")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
159
    relative_url = web_page.getRelativeUrl()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
160
    self.portal.REQUEST.set("uids", [web_page.getUid(),])
161
    self.tic()
162
    self.changeSkin("UNGDoc")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
163
    self.portal.WebSection_deleteObjectList()
164
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
165 166
    self.assertEquals(web_page.getValidationState(), "deleted")
    self.portal.REQUEST.set("uids", [web_page.getUid(),])
167
    self.tic()
168
    self.changeSkin("UNGDoc")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
169
    self.portal.WebSection_deleteObjectList()
170
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
171
    self.assertEquals(len(self.portal.portal_catalog(relative_url=relative_url)), 0)
Gabriel Monnerat's avatar
Gabriel Monnerat committed
172 173 174
    web_page = web_page_module.newContent(portal_type="Web Page")
    web_table = web_page_module.newContent(portal_type="Web Table")
    web_illustration = web_page_module.newContent(portal_type="Web Illustration")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
175 176 177
    web_page.publish()
    web_table.publish()
    web_illustration.publish()
178
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
179 180 181 182
    uid_list = [web_page.getUid(),
               web_table.getUid(),
               web_illustration.getUid()]
    self.portal.REQUEST.set("uids", uid_list)
183
    self.changeSkin("UNGDoc")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
184
    self.portal.web_site_module.ung.WebSection_deleteObjectList()
185
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
186 187 188 189
    self.assertEquals(web_page.getValidationState(), "deleted")
    self.assertEquals(web_table.getValidationState(), "deleted")
    self.assertEquals(web_illustration.getValidationState(), "deleted")
    self.portal.REQUEST.set("uids", uid_list)
Gabriel Monnerat's avatar
Gabriel Monnerat committed
190 191 192
    id_list = [web_page.getId(),
               web_table.getId(),
               web_illustration.getId()]
193
    self.changeSkin("UNGDoc")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
194
    self.portal.web_site_module.ung.WebSection_deleteObjectList()
195
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
196 197 198
    self.assertFalse(id_list[0] in web_page_module.objectIds())
    self.assertFalse(id_list[1] in web_page_module.objectIds())
    self.assertFalse(id_list[2] in web_page_module.objectIds())
Gabriel Monnerat's avatar
Gabriel Monnerat committed
199

200
  def testERP5Site_userFollowUpWebPage(self):
201
    """Test if user is added in field Follow Up of Web Page"""
202
    self.changeSkin('UNGDoc')
Gabriel Monnerat's avatar
Gabriel Monnerat committed
203 204
    web_page = self.portal.web_page_module.newContent(portal_type="Web Page")
    web_page.setReference("new.Web-Page")
205
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
206 207 208 209 210 211 212 213 214
    portal = self.portal
    person = portal.person_module.newContent(portal_type='Person',
                                             reference="ung_new_user")
    assignment = person.newContent(portal_type='Assignment')
    assignment.open()
    person = portal.person_module.newContent(portal_type='Person',
                                             reference="ung_new_user2")
    assignment = person.newContent(portal_type='Assignment')
    assignment.open()
215
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
216
    self.login("ung_new_user")
217
    self.changeSkin("UNGDoc")
218
    self.portal.ERP5Site_userFollowUpWebPage("new.Web-Page")
219
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
220 221
    self.login("ERP5TypeTestCase")
    self.assertEquals("ung_new_user", web_page.getFollowUpValue().getReference())
Gabriel Monnerat's avatar
Gabriel Monnerat committed
222
    self.login("ung_new_user2")
223
    self.changeSkin("UNGDoc")
224
    self.portal.ERP5Site_userFollowUpWebPage("new.Web-Page")
225
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
226 227 228 229
    self.login("ERP5TypeTestCase")
    reference_list = [user.getReference() for user in web_page.getFollowUpValueList()]
    self.assertEquals(["ung_new_user", "ung_new_user2"],
                      sorted(reference_list))
Gabriel Monnerat's avatar
Gabriel Monnerat committed
230 231

  def testWebSection_getGadgetPathList(self):
232
    """Validate the gadget list"""
233
    self.changeSkin("UNGDoc")
234
    gadget_list = json.loads((self.portal.WebSection_getGadgetPathList()))
Gabriel Monnerat's avatar
Gabriel Monnerat committed
235 236 237 238 239
    for gadget in gadget_list:
      url = gadget.get("image_url").split("?")[0]
      url = url.replace("/default_image", "")
      catalog_result = self.portal.portal_catalog(relative_url=url)
      self.assertEquals(len(catalog_result), 1)
240 241 242
      self.assertEquals(catalog_result[0].getTitle(), gadget.get('title'))

  def testEventModule_createNewEvent(self):
243
    """Test if script creates correctly a new event"""
244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
    portal = self.portal
    event_dict = dict(portal_type="Note",
                      title="Buy Phone",
                      event_text_content="testUNG Sample",
                      start_date_hour=11,
                      start_date_minute=12,
                      start_date_day=12,
                      start_date_month=02,
                      start_date_year=2011,
                      stop_date_hour=12,
                      stop_date_minute=12,
                      stop_date_day=13,
                      stop_date_month=02,
                      stop_date_year=2011)
    portal.REQUEST.form.update(event_dict)
259
    self.changeSkin("UNGDoc")
260
    portal.event_module.EventModule_createNewEvent()
261
    self.tic()
262 263 264
    event = portal.portal_catalog.getResultValue(
      portal_type="Note",
      title='Buy Phone' )
265 266 267
    self.assertEquals(event.getDescription(), "testUNG Sample")
    start_date = event.getStartDate()
    self.assertEquals(start_date.month(), 2)
268 269 270 271 272
    self.assertEquals(start_date.minute(), 12)

  def testWebPage_setSubjectList(self):
    """Test if string is inserted as subjects in object correctly"""
    web_table = self.portal.web_page_module.newContent(portal_type="Web Table")
273
    self.tic()
274
    self.changeSkin("UNGDoc")
275
    web_table.WebPage_setSubjectList("VPN")
276
    self.tic()
277 278
    subject_list = web_table.getSubjectList()
    self.assertEquals(["VPN"], subject_list)
279
    self.changeSkin("UNGDoc")
280
    web_table.WebPage_setSubjectList("VPN,ERP5")
281
    self.tic()
282
    self.changeSkin("UNGDoc")
283 284 285 286 287 288 289 290
    subject_list = web_table.getSubjectList()
    self.assertEquals(["ERP5", "VPN"], sorted(subject_list))

  def testWebSection_getDocumentUrl(self):
    """Test if script used to generated custom url to listbox works
    correctly"""
    web_illustration = self.portal.web_page_module.newContent(portal_type="Web Illustration")
    web_page = self.portal.web_page_module.newContent(portal_type="Web Page")
291
    self.tic()
292
    kw = dict(brain=web_illustration)
293
    self.changeSkin('UNGDoc')
294
    url = self.portal.WebSection_getDocumentUrl(**kw)
295
    pattern = "^http.*\/web_page_module\/[0-9]+\?editable_mode\:int\=1"
296 297 298
    self.assertNotEquals(re.search(pattern, url), None)
    kw = dict(brain=web_page)
    url = self.portal.WebSection_getDocumentUrl(**kw)
299
    pattern = "^http.*\/web_page_module\/[0-9]+\?editable_mode\:int\=1"
300
    self.assertNotEquals(re.search(pattern, url), None, url)
301 302 303
 
  def testBase_updateCalendarEventList(self):
    """Test script used to manage events in UNG Calendar """
304
    self.changeSkin('UNGDoc')
305 306 307 308 309
    event_dict = json.loads(self.portal.Base_updateCalendarEventList("list"))
    self.assertEquals(event_dict.get("events"), [])
    event = self.portal.event_module.newContent(portal_type="Note")
    event.setStartDate(DateTime())
    event.setStopDate(DateTime()+1)
310
    self.tic()
311
    self.changeSkin("UNGDoc")
312 313 314 315 316 317 318 319 320
    event_dict = json.loads(self.portal.Base_updateCalendarEventList("list"))
    event_list = event_dict.get("events")
    self.assertEquals(event_list[0][-2], "Note")
    form_dict = dict(CalendarStartTime=DateTime().strftime("%m/%d/%Y %H:%M"),
                     CalendarEndTime=DateTime().strftime("%m/%d/%Y %H:%M"),
                     CalendarTitle="One Sample",
                     portal_type="Web Message")
    self.portal.REQUEST.form.update(form_dict)
    self.portal.Base_updateCalendarEventList("add")
321
    self.tic()
322 323 324 325 326 327 328 329
    web_message = self.portal.portal_catalog.getResultValue(portal_type="Web Message")
    self.assertEquals(web_message.getTitle(), "One Sample")
    self.portal.REQUEST.form.clear()
    form_dict = dict(CalendarStartTime=DateTime().strftime("%m/%d/%Y %H:%M"),
                     CalendarEndTime=DateTime().strftime("%m/%d/%Y %H:%M"),
                     title="Buy Coffee",
                     event_id=web_message.getId())
    self.portal.REQUEST.form.update(form_dict)
330
    self.changeSkin("UNGDoc")
331
    self.portal.Base_updateCalendarEventList("update")
332
    self.tic()
333
    self.assertEquals(web_message.getTitle(), "Buy Coffee")
334
    form_dict["event_portal_type"] = "Note"
335
    self.portal.REQUEST.form.update(form_dict)
336
    self.changeSkin("UNGDoc")
337
    self.portal.Base_updateCalendarEventList("update")
338
    self.tic()
339 340
    web_message = self.portal.portal_catalog.getResultValue(portal_type="Web Message")
    self.assertEquals(web_message, None)
341 342
    note = self.portal.portal_catalog.getResultValue(portal_type="Note",
          title="Buy Coffee")
343 344 345 346 347
    self.assertEquals(note.getTitle(), "Buy Coffee")
    self.portal.REQUEST.form.clear()
    form_dict = dict(title=note.getTitle(),
                     id=note.getId())
    self.portal.REQUEST.form.update(form_dict)
348
    self.changeSkin("UNGDoc")
349
    self.portal.Base_updateCalendarEventList("remove")
350
    self.tic()
351 352 353 354 355 356 357 358 359 360 361
    note = self.portal.portal_catalog.getResultValue(portal_type="Note",
                                                     title="Buy Coffee")
    self.assertEquals(note, None)
    self.portal.REQUEST.form.clear()
    start_date = DateTime()
    end_date = DateTime() + 1
    form_dict = dict(CalendarStartTime=start_date.strftime("%m/%d/%Y %H:%M"),
                     CalendarEndTime=end_date.strftime("%m/%d/%Y %H:%M"),
                     CalendarTitle="Another Sample",
                     portal_type="Letter")
    self.portal.REQUEST.form.update(form_dict)
362
    self.changeSkin("UNGDoc")
363
    self.portal.Base_updateCalendarEventList("add")
364
    self.tic()
365 366 367 368 369 370 371 372 373 374 375 376
    letter = self.portal.portal_catalog.getResultValue(portal_type="Letter",
                                                       title="Another Sample")
    self.assertEquals(letter.getPortalType(), "Letter")
    self.assertEquals(letter.getTitle(), "Another Sample")
    self.assertEquals(letter.getStartDate().hour(), start_date.hour())
    self.assertEquals(letter.getStartDate().day(), start_date.day())
    self.assertEquals(letter.getStopDate().hour(), end_date.hour())
    self.assertEquals(letter.getStopDate().day(), end_date.day())
    self.portal.REQUEST.form.clear()
    form_dict = dict(title="Change only the Title of Sample",
                     event_id=letter.getId())
    self.portal.REQUEST.form.update(form_dict)
377
    self.changeSkin("UNGDoc")
378
    self.portal.Base_updateCalendarEventList("update")
379
    self.tic()
380 381 382 383 384 385 386 387 388
    letter = self.portal.portal_catalog.getResultValue(portal_type="Letter",
                                                       title="Another Sample")
    self.assertEquals(letter, None)
    letter = self.portal.portal_catalog.getResultValue(portal_type="Letter",
                                                       title="Change only the Title of Sample")
    self.assertEquals(letter.getStartDate().hour(), start_date.hour())
    self.assertEquals(letter.getStartDate().day(), start_date.day())
    self.assertEquals(letter.getStopDate().hour(), end_date.hour())
    self.assertEquals(letter.getStopDate().day(), end_date.day())
Gabriel Monnerat's avatar
Gabriel Monnerat committed
389 390 391 392 393
  
  def testERPSite_createUNGUser(self):
    """Test if script creates an user correctly"""
    form_dict = dict(firstname="UNG",
                     lastname="User",
394 395
                     email="g@g.com",
                     password="ung_password",
Gabriel Monnerat's avatar
Gabriel Monnerat committed
396
                     login_name="ung_user")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
397
    self.portal.REQUEST.form.update(form_dict)
398
    self.changeSkin("UNGDoc")
399 400
    response = json.loads(self.portal.ERPSite_createUNGUser())
    self.assertTrue(response)
401
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
402
    person = self.portal.portal_catalog.getResultValue(portal_type="Person",
403 404
                                                       reference="ung_user")
    self.assertEquals(person.getFirstName(), "UNG")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
405
    self.assertEquals(person.getLastName(), "User")
406 407
    self.assertEquals(person.getValidationState(), "validated")
    self.assertEquals(person.getEmail().getPortalType(), "Email")
408
    self.assertEquals(person.getEmailText(), "g@g.com")
409
    self.changeSkin("UNGDoc")
410 411
    response = json.loads(self.portal.ERPSite_createUNGUser())
    self.assertEquals(response, None)
412

Gabriel Monnerat's avatar
Gabriel Monnerat committed
413 414 415 416 417 418 419 420
  def testERP5Site_checkIfUserExistUsingHttpRequest(self):
    """Test script ERP5Site_checkIfUserExist to simulate the browser request"""
    script_path = self.portal.web_site_module.ung.getPath() + "/ERP5Site_checkIfUserExist"
    response = json.loads(self.publish(script_path).getBody())
    self.assertEquals(response, {'response': False})
    response = json.loads(self.publish(script_path + "?reference=ung_reference").getBody())
    self.assertEquals(response, {'response': True})

421 422
  def testERP5Site_checkIfUserExist(self):
    """Test script ERP5Site_checkIfUserExist"""
423
    self.changeSkin('UNGDoc')
424 425 426 427
    portal = self.portal
    form_dict = dict(firstname="UNG",
                     lastname="User",
                     email="g@g.com",
Gabriel Monnerat's avatar
Gabriel Monnerat committed
428
                     login_name="ung_reference")
429 430
    portal.REQUEST.form.update(form_dict)
    portal.ERPSite_createUNGUser()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
431
    kw = dict(reference=form_dict["login_name"],)
432
    response = json.loads(portal.ERP5Site_checkIfUserExist(**kw))
433
    self.assertEquals(response.get("response"), False)
434
    self.tic()
Gabriel Monnerat's avatar
Gabriel Monnerat committed
435
    param_list = ["%s=%s" % (key,value) for key, value in kw.iteritems()]
436
    self.changeSkin("UNGDoc")
437
    response = json.loads(portal.ERP5Site_checkIfUserExist(**kw))
438 439 440 441
    self.assertEquals(response.get("response"), True)
    kw = dict(first_name="Not Exist",
              reference="no_reference",
             )
442
    self.changeSkin("UNGDoc")
443
    response = json.loads(portal.ERP5Site_checkIfUserExist(**kw))
Gabriel Monnerat's avatar
Gabriel Monnerat committed
444 445 446
    self.assertEquals(response.get("response"), False)
    self.login("ung_reference")
    user = portal.ERP5Site_getAuthenticatedMemberPersonValue()
447
    self.assertEquals(user.getFirstName(), "UNG")
448

449
  def testWebSection_addGadgetList(self):
450 451
    """Test if gadgets are added correctly"""
    obj = self.portal.knowledge_pad_module.newContent(portal_type="Knowledge Pad")
Gabriel Monnerat's avatar
Gabriel Monnerat committed
452
    obj.edit(publication_section_value=self.portal.web_site_module.ung)
453
    obj.visible()
454
    self.tic()
455
    gadget = self.portal.portal_gadgets.searchFolder()[0]
456
    gadget_id_list = gadget.getId()
457
    self.changeSkin("UNGDoc")
458
    self.portal.web_site_module.ung.WebSection_addGadgetList(gadget_id_list)
459
    self.tic()
460
    gadget = self.portal.portal_catalog.getResultValue(portal_type="Gadget",
461
                                                       validation_state="public")
462 463
    self.assertEquals(gadget_id_list, gadget.getId())
    self.portal.knowledge_pad_module.deleteContent(id=obj.getId())
464
    self.tic()
465 466 467
    obj = self.portal.knowledge_pad_module.newContent(portal_type="Knowledge Pad")
    obj.edit(publication_section_value=self.portal.web_site_module.ung)
    obj.visible()
468
    self.tic()
469 470 471 472 473 474 475 476 477
    gadget_id_list = []
    path_list = []
    gadget = self.portal.portal_gadgets.searchFolder()[0].getObject()
    gadget_id_list.append(gadget.getId())
    path_list.append(gadget.getRelativeUrl())
    gadget = self.portal.portal_gadgets.searchFolder()[1].getObject()
    gadget_id_list.append(gadget.getId())
    path_list.append(gadget.getRelativeUrl())
    self.portal.REQUEST.form["gadget_id_list"] = ",".join(gadget_id_list)
478
    self.changeSkin("UNGDoc")
479
    self.portal.web_site_module.ung.WebSection_addGadgetList()
480
    self.tic()
481 482 483
    self.assertEquals(len(obj.searchFolder()), 2)
    self.assertEquals(sorted([x.getSpecialise() for x in obj.searchFolder()]),
                      sorted(path_list))
484 485 486

  def testBase_getPreferencePathList(self):
    """Test if the paths of preference objects are returned correctly"""
487
    self.changeSkin('UNGDoc')
488 489 490
    self.logout()
    self.assertEquals(json.loads(self.portal.Base_getPreferencePathList()), None)
    self.login("ERP5TypeTestCase")
Jérome Perrin's avatar
Jérome Perrin committed
491 492 493
    self.changeSkin("UNGDoc")
    preference_dict = json.loads(self.portal.Base_getPreferencePathList())
    self.assertEquals(preference_dict, {})
494
    self.portal.portal_preferences.ung_preference.enable()
495
    self.tic()
496
    self.changeSkin("UNGDoc")
497
    preference_dict = json.loads(self.portal.Base_getPreferencePathList())
498
    self.assertEquals(preference_dict["preference"], "portal_preferences/ung_preference")
499

500 501 502
  def testWebSection_getWebPageObjectList(self):
    """Test if the paths of preference objects are returned correctly"""
    self.portal.web_page_module.manage_delObjects(list(self.portal.web_page_module.objectIds()))
503
    self.tic()
504 505 506
    self.portal.web_page_module.newContent(portal_type="Web Page")
    self.portal.web_page_module.newContent(portal_type="Web Table")
    self.portal.web_page_module.newContent(portal_type="Web Illustration")
507
    self.tic()
508
    kw = {"portal_type": "Web Page"}
509
    self.changeSkin('UNGDoc')
510 511 512 513 514 515 516 517 518 519
    result_list = self.portal.web_site_module.ung.WebSection_getWebPageObjectList(**kw)
    self.assertEquals(len(result_list), 1)
    self.assertEquals(result_list[0].getPortalType(), "Web Page")
    kw["portal_type"] = "Web Illustration"
    result_list = self.portal.web_site_module.ung.WebSection_getWebPageObjectList(**kw)
    self.assertEquals(len(result_list), 1)
    self.assertEquals(result_list[0].getPortalType(), "Web Illustration")
    kw["portal_type"] = "Web Table"
    result_list = self.portal.web_site_module.ung.WebSection_getWebPageObjectList(**kw)
    self.assertEquals(len(result_list), 1)
520 521 522
    self.assertEquals(result_list[0].getPortalType(), "Web Table")

  def testWebPage_updateWebDocument(self):
Gabriel Monnerat's avatar
Gabriel Monnerat committed
523 524
    """ Test if script load correctly the Web Page with data of one document
    """
525 526 527 528 529 530 531 532 533
    portal = self.portal
    portal_preferences = portal.portal_preferences
    web_page_module = portal.web_page_module
    portal_contributions = portal.portal_contributions
    system_preference = portal_preferences.newContent(portal_type='System Preference')
    conversion_dict = _getConversionServerDict()
    system_preference.setPreferredOoodocServerAddress(conversion_dict["hostname"])
    system_preference.setPreferredOoodocServerPortNumber(conversion_dict["port"])
    system_preference.enable()
534
    self.tic()
535 536 537 538
    document_path, filename = self.getDocumentPath()
    file = FileUpload(document_path, filename)
    document = portal_contributions.newContent(file=file)
    web_page = web_page_module.newContent(portal_type="Web Page")
539
    self.tic()
540
    self.changeSkin("UNGDoc")
541
    web_page.WebPage_updateWebDocument(document.getPath())
542
    self.tic()
543 544
    self.assertTrue(re.search("\>tiolive\<", web_page.getTextContent()) is not None)
    self.assertEquals(web_page.getTitle(), document.getTitle())