summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/web/static/src/js/search.js3
-rw-r--r--addons/web/static/test/search.js36
-rw-r--r--addons/web/static/test/test.html.THIS63
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>