59 lines
2.4 KiB
Python
59 lines
2.4 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.tests import HttpCase, tagged
|
|
from odoo.tools import mute_logger
|
|
|
|
|
|
@tagged('-at_install', 'post_install')
|
|
class WithContext(HttpCase):
|
|
def test_01_homepage_url(self):
|
|
# Setup
|
|
website = self.env['website'].browse([1])
|
|
website.write({
|
|
'name': 'Test Website',
|
|
'domain': self.base_url(),
|
|
'homepage_url': '/unexisting',
|
|
})
|
|
home_url = '/'
|
|
contactus_url = '/contactus'
|
|
contactus_url_full = website.domain + contactus_url
|
|
contactus_content = b'content="Contact Us | Test Website"'
|
|
self.env['website.menu'].search([
|
|
('website_id', '=', website.id),
|
|
('url', '=', contactus_url),
|
|
]).sequence = 1
|
|
|
|
# 404 shouldn't be served but fallback on first menu
|
|
# -------------------------------------------
|
|
# / page exists | first menu | homepage_url
|
|
# -------------------------------------------
|
|
# yes | /contactus | /unexisting
|
|
# -------------------------------------------
|
|
r = self.url_open(website.homepage_url)
|
|
self.assertEqual(r.status_code, 404, "The website homepage_url should be a 404")
|
|
r = self.url_open(home_url)
|
|
self.assertEqual(r.status_code, 200)
|
|
self.assertEqual(r.history[0].status_code, 303)
|
|
self.assertURLEqual(r.url, contactus_url_full)
|
|
self.assertIn(contactus_content, r.content)
|
|
|
|
# same with 403
|
|
# -------------------------------------------
|
|
# / page exists | first menu | homepage_url
|
|
# -------------------------------------------
|
|
# yes | /contactus | /test_website/200/name-1
|
|
# -------------------------------------------
|
|
rec_unpublished = self.env['test.model'].create({
|
|
'name': 'name',
|
|
'is_published': False,
|
|
})
|
|
website.homepage_url = f"/test_website/200/name-{rec_unpublished.id}"
|
|
with mute_logger('odoo.http'): # mute 403 warning
|
|
r = self.url_open(website.homepage_url)
|
|
self.assertEqual(r.status_code, 403, "The website homepage_url should be a 403")
|
|
r = self.url_open(home_url)
|
|
self.assertEqual(r.status_code, 200)
|
|
self.assertEqual(r.history[0].status_code, 303)
|
|
self.assertURLEqual(r.url, contactus_url_full)
|
|
self.assertIn(contactus_content, r.content)
|