diff --git a/addons/web/static/src/webclient/settings_form_view/settings/setting.js b/addons/web/static/src/webclient/settings_form_view/settings/setting.js index 20cf493b4d5..719443aabb6 100644 --- a/addons/web/static/src/webclient/settings_form_view/settings/setting.js +++ b/addons/web/static/src/webclient/settings_form_view/settings/setting.js @@ -6,6 +6,8 @@ import { session } from "@web/session"; import { FormLabelHighlightText } from "../highlight_text/form_label_highlight_text"; import { Component, useState } from "@odoo/owl"; + +const LINK_REGEX = new RegExp("^https?://"); export class Setting extends Component { setup() { this.state = useState({ @@ -56,7 +58,7 @@ export class Setting extends Component { } get url() { - if (this.props.documentation.startsWith("^https?://")) { + if (LINK_REGEX.test(this.props.documentation)) { return this.props.documentation; } else { const serverVersion = session.server_version.includes("alpha") diff --git a/addons/web/static/tests/webclient/settings_form_view/settings_form_view_tests.js b/addons/web/static/tests/webclient/settings_form_view/settings_form_view_tests.js index 84e7f734340..ba3234a46b6 100644 --- a/addons/web/static/tests/webclient/settings_form_view/settings_form_view_tests.js +++ b/addons/web/static/tests/webclient/settings_form_view/settings_form_view_tests.js @@ -89,7 +89,7 @@ QUnit.module("SettingsFormView", (hooks) => { - + @@ -139,10 +139,16 @@ QUnit.module("SettingsFormView", (hooks) => { target, ".app_settings_block:not(.d-none) .app_settings_header .o_setting_box" ); + const docLinks = [...target.querySelectorAll(".o_setting_box a")]; + assert.strictEqual(docLinks.length, 2); assert.strictEqual( - target.querySelector(".o_setting_box a").href, + docLinks[0].href, "https://www.odoo.com/documentation/1.0/applications/technical/web/settings/this_is_a_test.html" ); + assert.strictEqual( + docLinks[1].href, + "https://www.odoo.com/documentation/1.0/applications/technical/web/settings/this_is_another_test.html" + ); await editSearch(target, "Hello there"); await execTimeouts();