You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.7 KiB
59 lines
2.7 KiB
# -*- coding: utf-8 -*-
|
|
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
|
|
import mock
|
|
|
|
import odoo.tests.common as common
|
|
from .common import TestWizardCommon
|
|
|
|
|
|
class TestHelpOnline(TestWizardCommon, common.TransactionCase):
|
|
|
|
def test_get_page_url(self):
|
|
model = 'res.partner'
|
|
help_online = self.env['help.online']
|
|
user = self.env.user
|
|
group_writer = self.env.ref('help_online.help_online_group_writer')
|
|
group_reader = self.env.ref('help_online.help_online_group_reader')
|
|
self.assertTrue(user.has_group('help_online.help_online_group_writer'))
|
|
website = self.env['website']
|
|
with mock.patch.object(website.__class__,
|
|
'search_pages') as search_pages:
|
|
# The expected page dosn't exist
|
|
search_pages.return_value = []
|
|
info = help_online.get_page_url(model, 'form')
|
|
self.assertDictEqual(
|
|
{'exists': False,
|
|
'title': 'Create Help page for Partner',
|
|
'url': 'website/add/help-res-partner'}, info,
|
|
"If the user is member of help_online_group_writer "
|
|
"and the page doesn't exist, the module should return an url "
|
|
"to create the page")
|
|
# remove user of group writer.
|
|
group_writer.write({'users': [(3, self.env.user.id)]})
|
|
info = help_online.get_page_url(model, 'form')
|
|
self.assertDictEqual(
|
|
{}, info,
|
|
"If the user is not member of help_online_group_writer "
|
|
"and the page doesn't exist, the module should return an "
|
|
"empty dict")
|
|
# The expected page exists
|
|
search_pages.return_value = [{'loc': 'pages/help-res-partner'}]
|
|
self.assertTrue(
|
|
user.has_group('help_online.help_online_group_reader'))
|
|
info = help_online.get_page_url(model, 'form')
|
|
self.assertDictEqual(
|
|
{'exists': True,
|
|
'title': 'Help on Partner',
|
|
'url': 'pages/help-res-partner#form'}, info,
|
|
"If the user is member of help_online_group_reader "
|
|
"and the page exists, the module should return an url "
|
|
"to the page")
|
|
# remove user from group reader
|
|
group_reader.write({'users': [(3, self.env.user.id)]})
|
|
info = help_online.get_page_url(model, 'form')
|
|
self.assertDictEqual(
|
|
{}, info,
|
|
"If the user is not member of help_online_group_reader "
|
|
"and the page exists, the module should return an empty dict")
|