diff options
| -rw-r--r-- | addons/website/static/src/js/website.backend.js | 25 | ||||
| -rw-r--r-- | addons/website/static/tests/website_tests.js | 79 | ||||
| -rw-r--r-- | addons/website/views/website_templates.xml | 6 |
3 files changed, 105 insertions, 5 deletions
diff --git a/addons/website/static/src/js/website.backend.js b/addons/website/static/src/js/website.backend.js index 6b6f4658ff5..5033d9a690c 100644 --- a/addons/website/static/src/js/website.backend.js +++ b/addons/website/static/src/js/website.backend.js @@ -7,11 +7,29 @@ var field_registry = require('web.field_registry'); var _t = core._t; - var WidgetWebsiteButton = AbstractField.extend({ template: 'WidgetWebsiteButton', - render: function () { + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + /** + * @override + */ + isSet: function () { + return true; + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * @override + * @private + */ + _render: function () { this._super.apply(this, arguments); var $value = this.$('.o_value'); @@ -26,9 +44,6 @@ var WidgetWebsiteButton = AbstractField.extend({ .addClass('text-danger'); } }, - is_set: function () { - return true; - }, }); field_registry.add('website_button', WidgetWebsiteButton); diff --git a/addons/website/static/tests/website_tests.js b/addons/website/static/tests/website_tests.js new file mode 100644 index 00000000000..868e3cc4e8f --- /dev/null +++ b/addons/website/static/tests/website_tests.js @@ -0,0 +1,79 @@ +odoo.define('website.tests', function (require) { +"use strict"; + +var FormView = require('web.FormView'); +var testUtils = require("web.test_utils"); + +var createView = testUtils.createView; + +QUnit.module('website', { + before: function () { + this.data = { + blog_post: { + fields: { + website_published: {string: "Available on the Website", type: "boolean"}, + }, + records: [{ + id: 1, + website_published: false, + }, { + id: 2, + website_published: true, + }] + } + }; + }, +}, function () { + QUnit.test("widget website button: display false value", function (assert) { + assert.expect(2); + + var form = createView({ + View: FormView, + model: 'blog_post', + data: this.data, + arch: + '<form>' + + '<sheet>' + + '<div class="oe_button_box" name="button_box">' + + '<button class="oe_stat_button" name="website_publish_button" type="object" icon="fa-globe">' + + '<field name="website_published" widget="website_button"/>' + + '</button>' + + '</div>' + + '</sheet>' + + '</form>', + res_id: 1, + }); + var selector = '.oe_button_box .oe_stat_button .o_stat_info[name="website_published"] .o_stat_text'; + assert.strictEqual(form.$(selector).length, 2, "there should be two texts displayed"); + selector = '.oe_button_box .oe_stat_button .o_stat_info[name="website_published"] .o_stat_text.o_value.text-danger'; + assert.strictEqual(form.$(selector).length, 1, "there should be one text in red"); + form.destroy(); + }); + QUnit.test("widget website button: display true value", function (assert) { + assert.expect(2); + + var form = createView({ + View: FormView, + model: 'blog_post', + data: this.data, + arch: + '<form>' + + '<sheet>' + + '<div class="oe_button_box" name="button_box">' + + '<button class="oe_stat_button" name="website_publish_button" type="object" icon="fa-globe">' + + '<field name="website_published" widget="website_button"/>' + + '</button>' + + '</div>' + + '</sheet>' + + '</form>', + res_id: 2, + }); + var selector = '.oe_button_box .oe_stat_button .o_stat_info[name="website_published"] .o_stat_text'; + assert.strictEqual(form.$(selector).length, 2, "should be two texts displayed"); + selector = '.oe_button_box .oe_stat_button .o_stat_info[name="website_published"] .o_stat_text.o_value.text-success'; + assert.strictEqual(form.$(selector).length, 1, "there should be one text in green"); + form.destroy(); + }); +}); + +}); diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index 94f8706c41d..380aa35ad51 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -10,6 +10,12 @@ </xpath> </template> +<template id="qunit_suite" inherit_id="web.qunit_suite"> + <xpath expr="//script[last()]" position="after"> + <script type="text/javascript" src="/website/static/tests/website_tests.js"/> + </xpath> +</template> + <template id="assets_frontend" inherit_id="web.assets_frontend" name="Website Assets"> <xpath expr="//link[last()]" position="after"> <link rel="stylesheet" type="text/less" href="/website/static/src/less/website.ui.less"/> |
