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.
167 lines
5.5 KiB
167 lines
5.5 KiB
/* Copyright 2016 Jairo Llopis <jairo.llopis@tecnativa.com>
|
|
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
|
|
odoo.define_section('web_readonly_bypass', [], function(test) {
|
|
"use strict";
|
|
test('ignore_readonly', function(assert) {
|
|
var data = {};
|
|
var mode_create = true;
|
|
var options = {};
|
|
var context = {};
|
|
openerp.web_readonly_bypass.ignore_readonly(data, options,
|
|
mode_create, context);
|
|
assert.deepEqual(data,
|
|
{},
|
|
"Empty context and options mode create"
|
|
);
|
|
|
|
mode_create = false;
|
|
data = {};
|
|
openerp.web_readonly_bypass.ignore_readonly(data, options,
|
|
mode_create, context);
|
|
assert.deepEqual(data,
|
|
{},
|
|
"Empty context and options mode write"
|
|
);
|
|
|
|
mode_create = false;
|
|
data = {};
|
|
context = {'readonly_by_pass': true};
|
|
options = {'readonly_fields': {'field_1': 'va1-1',
|
|
'field_2': false,
|
|
'field_3': 'val-3'}};
|
|
openerp.web_readonly_bypass.ignore_readonly(data, options,
|
|
mode_create, context);
|
|
assert.deepEqual(data,
|
|
{'field_1': 'va1-1', 'field_2': false, 'field_3': 'val-3'},
|
|
"all fields mode write"
|
|
);
|
|
|
|
mode_create = true;
|
|
data = {};
|
|
context = {'readonly_by_pass': true};
|
|
options = {'readonly_fields': {'field_1': 'va1-1',
|
|
'field_2': false,
|
|
'field_3': 'val-3'}};
|
|
openerp.web_readonly_bypass.ignore_readonly(data, options,
|
|
mode_create, context);
|
|
assert.deepEqual(data,
|
|
{'field_1': 'va1-1', 'field_3': 'val-3'},
|
|
"all fields mode create (false value are escaped)"
|
|
);
|
|
|
|
mode_create = true;
|
|
data = {};
|
|
context = {};
|
|
options = {'readonly_fields': {'field_1': 'va1-1',
|
|
'field_2': false,
|
|
'field_3': 'val-3'}};
|
|
openerp.web_readonly_bypass.ignore_readonly(data, options,
|
|
mode_create, context);
|
|
assert.deepEqual(data,
|
|
{},
|
|
"without context, default, we won't save readonly fields"
|
|
);
|
|
});
|
|
|
|
test('retrieve_readonly_by_pass_fields', function(assert) {
|
|
var context = {'readonly_by_pass': true}
|
|
var options = {'readonly_fields': {'field_1': 'va1-1',
|
|
'field_2': 'val-2',
|
|
'field_3': 'val-3'}};
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{'field_1': 'va1-1', 'field_2': 'val-2', 'field_3': 'val-3'},
|
|
"All fields should be accepted!"
|
|
);
|
|
|
|
context = {'readonly_by_pass': ['field_1', 'field_3']};
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{'field_1': 'va1-1','field_3': 'val-3'},
|
|
"two field s1"
|
|
);
|
|
|
|
context = {'readonly_by_pass': ['field_1',]};
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{'field_1': 'va1-1'},
|
|
"Only field 1"
|
|
);
|
|
|
|
context = {'readonly_by_pass': []};
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{},
|
|
"Empty context field"
|
|
);
|
|
|
|
context = null;
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{},
|
|
"Null context"
|
|
);
|
|
|
|
context = false;
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{},
|
|
"false context"
|
|
);
|
|
|
|
context = {'readonly_by_pass': true}
|
|
options = {'readonly_fields': {'field_1': 'va1-1'}};
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{'field_1': 'va1-1'},
|
|
"Only one option"
|
|
);
|
|
|
|
options = {'readonly_fields': {}};
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{},
|
|
"Empty readonly_fields option"
|
|
);
|
|
|
|
options = {};
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{},
|
|
"Empty option"
|
|
);
|
|
|
|
options = null;
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{},
|
|
"null option"
|
|
);
|
|
|
|
options = false;
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{},
|
|
"false option"
|
|
);
|
|
|
|
context = false;
|
|
assert.deepEqual(
|
|
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
|
|
options, context),
|
|
{},
|
|
"false option and false context"
|
|
);
|
|
});
|
|
});
|