diff options
Diffstat (limited to 'addons/web/static')
| -rw-r--r-- | addons/web/static/src/js/search.js | 3 | ||||
| -rw-r--r-- | addons/web/static/test/search.js | 36 | ||||
| -rw-r--r-- | addons/web/static/test/test.html.THIS | 63 |
3 files changed, 39 insertions, 63 deletions
diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index 5b59c7d6912..3917f342391 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -1009,6 +1009,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in get_context: function (facet) { var contexts = facet.values.chain() .map(function (f) { return f.get('value').attrs.context; }) + .without('{}') .reject(_.isEmpty) .value(); @@ -1027,6 +1028,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in get_groupby: function (facet) { return facet.values.chain() .map(function (f) { return f.get('value').attrs.context; }) + .without('{}') .reject(_.isEmpty) .value(); }, @@ -1039,6 +1041,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in get_domain: function (facet) { var domains = facet.values.chain() .map(function (f) { return f.get('value').attrs.domain; }) + .without('[]') .reject(_.isEmpty) .value(); diff --git a/addons/web/static/test/search.js b/addons/web/static/test/search.js index 45f6d2c715b..db9e7aa3ed9 100644 --- a/addons/web/static/test/search.js +++ b/addons/web/static/test/search.js @@ -845,6 +845,42 @@ openerp.testing.section('search-serialization', { ok(!context.get_eval_context(), "context should have no evaluation context"); }); }); + test('Empty filter domains', {asserts: 4}, function (instance) { + var view = {inputs: [], query: {on: function () {}}}; + var filter_a = new instance.web.search.Filter( + {attrs: {name: 'a', context: '{}', domain: '[]'}}, view); + var filter_b = new instance.web.search.Filter( + {attrs: {name: 'b', context: '{}', domain: '[]'}}, view); + var filter_c = new instance.web.search.Filter( + {attrs: {name: 'c', context: '{b: 42}', domain: '[["a", "=", 3]]'}}, view); + var group = new instance.web.search.FilterGroup( + [filter_a, filter_b, filter_c], view); + var t1 = group.facet_for_defaults({a: true, c: true}) + .done(function (facet) { + var model = facet; + if (!(model instanceof instance.web.search.Facet)) { + model = new instance.web.search.Facet(facet); + } + + var domain = group.get_domain(model); + deepEqual(domain, '[["a", "=", 3]]', "domain should ignore empties"); + var context = group.get_context(model); + deepEqual(context, '{b: 42}', "context should ignore empties"); + }); + var t2 = group.facet_for_defaults({a: true, b: true}) + .done(function (facet) { + var model = facet; + if (!(model instanceof instance.web.search.Facet)) { + model = new instance.web.search.Facet(facet); + } + + var domain = group.get_domain(model); + equal(domain, null, "domain should ignore empties"); + var context = group.get_context(model); + equal(context, null, "context should ignore empties"); + }); + return $.when(t1, t2); + }); }); openerp.testing.section('removal', { dependencies: ['web.search'], diff --git a/addons/web/static/test/test.html.THIS b/addons/web/static/test/test.html.THIS deleted file mode 100644 index f5f29f88d7c..00000000000 --- a/addons/web/static/test/test.html.THIS +++ /dev/null @@ -1,63 +0,0 @@ -<!DOCTYPE html> -<html style="height: 100%"> -<head> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - <title>OpenERP Web Test Suite</title> - <link rel="shortcut icon" href="/web/static/src/img/favicon.ico" type="image/x-icon"/> - - <link rel="stylesheet" href="/web/static/lib/qunit/qunit.css"> - <script src="/web/static/lib/qunit/qunit.js" type="text/javascript"></script> - - <script src="/web/static/lib/underscore/underscore.js" type="text/javascript"></script> - <script src="/web/static/lib/underscore/underscore.string.js" type="text/javascript"></script> - <script src="/web/static/lib/backbone/backbone.js" type="text/javascript"></script> - - <!-- jquery --> - <script src="/web/static/lib/jquery/jquery-1.7.2.js"></script> - <script src="/web/static/lib/jquery.ui/js/jquery-ui-1.8.17.custom.min.js"></script> - <script src="/web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js"></script> - - <script src="/web/static/lib/datejs/globalization/en-US.js"></script> - <script src="/web/static/lib/datejs/core.js"></script> - <script src="/web/static/lib/datejs/parser.js"></script> - <script src="/web/static/lib/datejs/sugarpak.js"></script> - <script src="/web/static/lib/datejs/extras.js"></script> - - <script src="/web/static/lib/qweb/qweb2.js"></script> - - <script src="/web/static/lib/py.js/lib/py.js"></script> - - <script src="/web/static/src/js/boot.js"></script> - <script src="/web/static/src/js/pyeval.js"></script> - <script src="/web/static/src/js/corelib.js"></script> - <script src="/web/static/src/js/coresetup.js"></script> - <script src="/web/static/src/js/dates.js"></script> - <script src="/web/static/src/js/formats.js"></script> - <script src="/web/static/src/js/chrome.js"></script> - <script src="/web/static/src/js/data.js"></script> - <script src="/web/static/src/js/views.js"></script> - <script src="/web/static/src/js/search.js"></script> - <script src="/web/static/src/js/view_form.js"></script> - <script src="/web/static/src/js/view_list.js"></script> - <script src="/web/static/src/js/view_list_editable.js"></script> - - <script src="/web/static/test/testing.js"></script> - <script type="text/javascript"> - QUnit.config.testTimeout = 2000; - </script> -</head> - <body id="oe" class="openerp"> - <div id="qunit"></div> - <div id="qunit-fixture"></div> - </body> - <script type="text/javascript" src="/web/static/test/class.js"></script> - <script type="text/javascript" src="/web/static/test/registry.js"></script> - <script type="text/javascript" src="/web/static/test/form.js"></script> - <script type="text/javascript" src="/web/static/test/list-utils.js"></script> - <script type="text/javascript" src="/web/static/test/formats.js"></script> - <script type="text/javascript" src="/web/static/test/rpc.js"></script> - <script type="text/javascript" src="/web/static/test/evals.js"></script> - <script type="text/javascript" src="/web/static/test/search.js"></script> - <script type="text/javascript" src="/web/static/test/Widget.js"></script> - <script type="text/javascript" src="/web/static/test/list-editable.js"></script> -</html> |
