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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
##############################################################################
#
# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
# Lucas Carvalho <lucas@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
from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
class TestUrl(ERP5TypeTestCase):
"""
Tests Url
"""
def getBusinessTemplateList(self):
return ('erp5_base',
'erp5_web',
'erp5_ingestion',
'erp5_dms',)
def test_document_asUrl(self):
"""
This test should make sure that asURL should return the correct url.
"""
portal = self.getPortalObject()
url_crawler = portal.external_source_module.newContent(
portal_type='URL Crawler')
url_protocol_list = ['http', 'https']
for url_protocol in url_protocol_list:
url_crawler.setUrlProtocol(url_protocol)
self.stepTic()
url_without_port = 'localhost/test_client'
url_crawler.setUrlString(url_without_port)
self.stepTic()
self.assertEquals('%s://%s' % (url_protocol, url_without_port),
url_crawler.asURL())
full_url_without_port = '%s://localhost/test_client' % url_protocol
url_crawler.setUrlString(full_url_without_port)
self.stepTic()
self.assertEquals(full_url_without_port, url_crawler.asURL())
full_url_with_port = '%s://localhost:8191/test_client' % url_protocol
url_crawler.setUrlString(full_url_with_port)
self.stepTic()
self.assertEquals(full_url_with_port, url_crawler.asURL())
url_with_port = 'localhost:8191/test_client'
url_crawler.setUrlString(url_with_port)
self.stepTic()
self.assertEquals('%s://%s' % (url_protocol, url_with_port),
url_crawler.asURL())
production_url = 'www.example.com/foo'
url_crawler.setUrlString(production_url)
self.stepTic()
self.assertEquals('%s://%s' % (url_protocol, production_url),
url_crawler.asURL())
production_url_with_port = 'www.example.com:8191/foo'
url_crawler.setUrlString(production_url_with_port)
self.stepTic()
self.assertEquals('%s://%s' % (url_protocol, production_url_with_port),
url_crawler.asURL())
production_url_with_protocol = '%s://www.example.com/foo' % url_protocol
url_crawler.setUrlString(production_url_with_protocol)
self.stepTic()
self.assertEquals(production_url_with_protocol, url_crawler.asURL())
production_url_with_port = '%s://www.example.com:8191/foo' % url_protocol
url_crawler.setUrlString(production_url)
self.stepTic()
self.assertEquals('%s://%s' % (url_protocol, production_url),
url_crawler.asURL())
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestUrl))
return suite