Add filter.is_pm_with_only().

This commit is contained in:
Steve Howell
2018-05-02 11:31:51 +00:00
committed by Tim Abbott
parent 2a70f0dba4
commit 0232e92038
2 changed files with 33 additions and 0 deletions

View File

@@ -676,6 +676,7 @@ function make_sub(name, stream_id) {
var filter = new Filter(terms); var filter = new Filter(terms);
assert.equal(filter.is_stream_only(), true); assert.equal(filter.is_stream_only(), true);
assert.equal(filter.is_stream_topic_only(), false); assert.equal(filter.is_stream_topic_only(), false);
assert.equal(filter.is_pm_with_only(), false);
terms = [ terms = [
{operator: 'stream', operand: 'My Stream'}, {operator: 'stream', operand: 'My Stream'},
@@ -684,6 +685,7 @@ function make_sub(name, stream_id) {
filter = new Filter(terms); filter = new Filter(terms);
assert.equal(filter.is_stream_only(), false); assert.equal(filter.is_stream_only(), false);
assert.equal(filter.is_stream_topic_only(), true); assert.equal(filter.is_stream_topic_only(), true);
assert.equal(filter.is_pm_with_only(), false);
terms = [ terms = [
{operator: 'stream', operand: 'My Stream', negated: true}, {operator: 'stream', operand: 'My Stream', negated: true},
@@ -692,6 +694,23 @@ function make_sub(name, stream_id) {
filter = new Filter(terms); filter = new Filter(terms);
assert.equal(filter.is_stream_only(), false); assert.equal(filter.is_stream_only(), false);
assert.equal(filter.is_stream_topic_only(), false); assert.equal(filter.is_stream_topic_only(), false);
assert.equal(filter.is_pm_with_only(), false);
terms = [
{operator: 'pm-with', operand: 'foo@example.com', negated: true},
];
filter = new Filter(terms);
assert.equal(filter.is_stream_only(), false);
assert.equal(filter.is_stream_topic_only(), false);
assert.equal(filter.is_pm_with_only(), false);
terms = [
{operator: 'pm-with', operand: 'foo@example.com,bar@example.com'},
];
filter = new Filter(terms);
assert.equal(filter.is_stream_only(), false);
assert.equal(filter.is_stream_topic_only(), false);
assert.equal(filter.is_pm_with_only(), true);
}()); }());
(function test_update_email() { (function test_update_email() {

View File

@@ -419,6 +419,20 @@ Filter.prototype = {
return this.has_operator('stream') && this.has_operator('topic'); return this.has_operator('stream') && this.has_operator('topic');
}, },
is_pm_with_only: function () {
if (this._operators.length !== 1) {
return false;
}
var term = this._operators[0];
if (term.negated) {
return false;
}
return (term.operator === 'pm-with');
},
update_email: function (user_id, new_email) { update_email: function (user_id, new_email) {
_.each(this._operators, function (term) { _.each(this._operators, function (term) {
switch (term.operator) { switch (term.operator) {