Files
odoo_source/addons/sms/static/tests/sms_widget_test.js
T
Thibault DelavalléeandPierre Rousseau 14ccc770bb [IMP] sms: improve SMS widget
Related to task 1922163
Linked to PR #33510

Co-Authored-By: Thibault Delavallee <tde@odoo.com>
Co-Authored-By: Pierre Rousseau <pro@odoo.com>
2019-07-12 14:54:11 +00:00

75 lines
3.3 KiB
JavaScript

odoo.define('sms.sms_widget_tests', function (require) {
"use strict";
var FormView = require('web.FormView');
var testUtils = require('web.test_utils');
var createView = testUtils.createView;
QUnit.module('fields', {
beforeEach: function () {
this.data = {
partner: {
fields: {
message: {string: "message", type: "text"},
},
records: [{
id: 1,
message: "",
}]
},
};
}
}, function () {
QUnit.module('SmsWidget');
QUnit.test('Sms widgets are correctly rendered', async function (assert) {
assert.expect(9);
var form = await createView({
View: FormView,
model: 'partner',
data: this.data,
arch: '<form><sheet><field name="message" widget="sms_widget"/></sheet></form>',
});
assert.containsOnce(form, '.o_sms_count', "Should have a sms counter");
assert.strictEqual(form.$('.o_sms_count').text(), '0 chars, fits in 0 SMS (GSM7) ',
'Should be "0 chars, fits in 0 SMS (GSM7) " by default');
// GSM-7
await testUtils.fields.editAndTrigger(form.$('.o_input'), "Hello from Odoo", 'input');
assert.strictEqual(form.$('.o_sms_count').text(), '15 chars, fits in 1 SMS (GSM7) ',
'Should be "15 chars, fits in 1 SMS (GSM7) " for "Hello from Odoo"');
// GSM-7 with \n => this one count as 2 characters
form.$('.o_input').val("Hello from Odoo\n").trigger('input');
assert.strictEqual(form.$('.o_sms_count').text(), '17 chars, fits in 1 SMS (GSM7) ',
'Should be "17 chars, fits in 1 SMS (GSM7) " for "Hello from Odoo\\n"');
// Unicode => ê
form.$('.o_input').val("Hêllo from Odoo").trigger('input');
assert.strictEqual(form.$('.o_sms_count').text(), '15 chars, fits in 1 SMS (UNICODE) ',
'Should be "15 chars, fits in 1 SMS (UNICODE) " for "Hêllo from Odoo"');
// GSM-7 with 160c
var text = Array(161).join('a');
await testUtils.fields.editAndTrigger(form.$('.o_input'), text, 'input');
assert.strictEqual(form.$('.o_sms_count').text(), '160 chars, fits in 1 SMS (GSM7) ',
'Should be "160 chars, fits in 1 SMS (GSM7) " for 160 x "a"');
// GSM-7 with 161c
text = Array(162).join('a');
await testUtils.fields.editAndTrigger(form.$('.o_input'), text, 'input');
assert.strictEqual(form.$('.o_sms_count').text(), '161 chars, fits in 2 SMS (GSM7) ',
'Should be "161 chars, fits in 2 SMS (GSM7) " for 161 x "a"');
// Unicode with 70c
text = Array(71).join('ê');
await testUtils.fields.editAndTrigger(form.$('.o_input'), text, 'input');
assert.strictEqual(form.$('.o_sms_count').text(), '70 chars, fits in 1 SMS (UNICODE) ',
'Should be "70 chars, fits in 1 SMS (UNICODE) " for 70 x "ê"');
// Unicode with 71c
text = Array(72).join('ê');
await testUtils.fields.editAndTrigger(form.$('.o_input'), text, 'input');
assert.strictEqual(form.$('.o_sms_count').text(), '71 chars, fits in 2 SMS (UNICODE) ',
'Should be "71 chars, fits in 2 SMS (UNICODE) " for 71 x "ê"');
form.destroy();
});
});
});