Server IP : 127.0.0.2 / Your IP : 18.222.188.103 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /opt/odoo/addons/web/static/test/ |
Upload File : |
odoo.define_section('web.dataset', ['web.data'], function (test, mock) { test('read_ids', function (assert, data) { assert.expect(2); mock.add('foo:read', function (args) { var ids = args[0]; assert.deepEqual(ids, [3, 1, 2]); return [ {id: 1, a: 'bar'}, {id: 2, a: 'baz'}, {id: 3, a: 'foo'} ]; }); var d = new data.DataSet(null, 'foo'); return d.read_ids([3,1,2]).then(function (records) { assert.deepEqual( records, [ {id:3, a: 'foo'}, {id:1, a: 'bar'}, {id:2, a: 'baz'} ] ); }); }); }); odoo.define_section('data.model.group_by', ['web.DataModel'], function (test, mock) { var group_result = [ { bar: 3, bar_count: 5, __context: {}, __domain: [['bar', '=', 3]], }, { bar: 5, bar_count: 3, __context: {}, __domain: [['bar', '=', 5]], }, { bar: 8, bar_count: 0, __context: {}, __domain: [['bar', '=', 8]], } ]; test('basic', function (assert, Model) { assert.expect(7); mock.add('foo:read_group', function (args, kwargs) { assert.deepEqual(kwargs.fields, ['bar'], "should read grouping field"); assert.deepEqual(kwargs.groupby, ['bar'], "should have single grouping field"); return group_result; }); mock.add('/web/dataset/search_read', function (args) { deepEqual(args.params.domain, [['bar', '=', 3]], "should have domain matching that of group_by result"); return {records: [ {bar: 3, id: 1}, {bar: 3, id: 2}, {bar: 3, id: 4}, {bar: 3, id: 8}, {bar: 3, id: 16} ], length: 5}; }); var m = new Model('foo'); return m.query().group_by('bar') .then(function (groups) { assert.ok(groups, "should have data"); assert.equal(groups.length, 3, "should have three results"); var first = groups[0]; assert.ok(first.attributes.has_children, "should have children"); return first.query().all(); }).then(function (first) { assert.equal(first.length, 5, "should have 5 records"); }); }); test('noleaf', function (assert, Model) { assert.expect(5); var m = new Model('foo', {group_by_no_leaf: true}); mock.add('foo:read_group', function (args, kwargs) { assert.deepEqual(kwargs.fields, ['bar'], "should read grouping field"); assert.deepEqual(kwargs.groupby, ['bar'], "should have single grouping field"); return group_result; }); return m.query().group_by('bar') .then(function (groups) { assert.ok(groups, "should have data"); assert.equal(groups.length, 3, "should have three results"); assert.ok(!groups[0].attributes.has_children, "should not have children because no_leaf"); }); }); test('nogroup', function (assert, Model) { var m = new Model('foo'); strictEqual(m.query().group_by(), null, "should not group"); }); test('empty.noleaf', function (assert, Model) { assert.expect(1); var m = new Model('foo', {group_by_no_leaf: true}); mock.add('foo:read_group', function (args, kwargs) { return [{__context: [], __domain: []}]; }); return m.query().group_by().done(function (groups) { assert.strictEqual(groups.length, 1, "should generate a single fake-ish group"); }); }); });