Fixes the duplication bug in adding contact and adds test for the same

This commit is contained in:
Anshul Singhal 2017-03-08 20:03:00 +05:30 committed by JC Brand
parent 5efb7fbf82
commit 3dd6ff1751
3 changed files with 31 additions and 2 deletions

View File

@ -69,6 +69,7 @@
New configuration setting:
[muc_show_join_leave](https://conversejs.org/docs/html/configuration.html#muc-show-join-leave)
- #366 Show the chat room occupant's JID in the tooltip (if you're allowed to see it). [jcbrand]
- #585 Fixes the duplication bug due to case sensivity in adding contacts [saganshul]
- #610, #785 Add presence priority handling [w3host, jcbrand]
- #620 `auto_away` shouldn't change the user's status if it's set to `dnd`. [jcbrand]
- #694 The `notification_option` wasn't being used consistently. [jcbrand]

View File

@ -1087,6 +1087,34 @@
// XXX: Awaiting more tests, close it again for now...
panel.$el.find('a.toggle-xmpp-contact-form').click();
}));
it("can be used to add contact and it checks for case-sensivity", mock.initConverse(function (_converse) {
spyOn(_converse, 'emit');
spyOn(_converse.rosterview, 'update').andCallThrough();
runs(function () {
test_utils.openControlBox();
// Adding two contacts one with Capital initials and one with small initials of same JID (Case sensitive check)
_converse.roster.create({
jid: mock.pend_names[0].replace(/ /g,'.').toLowerCase() + '@localhost',
subscription: 'none',
ask: 'subscribe',
fullname: mock.pend_names[0]
});
_converse.roster.create({
jid: mock.pend_names[0].replace(/ /g,'.') + '@localhost',
subscription: 'none',
ask: 'subscribe',
fullname: mock.pend_names[0]
});
});
waits(300);
runs(function () {
// Checking that only one entry is created because both JID is same (Case sensitive check)
expect(_converse.rosterview.$el.find('dd:visible').length).toBe(1);
expect(_converse.rosterview.update).toHaveBeenCalled();
});
}));
});
describe("The Controlbox Tabs", function () {

View File

@ -778,7 +778,7 @@
initialize: function (attributes) {
var jid = attributes.jid;
var bare_jid = Strophe.getBareJidFromJid(jid);
var bare_jid = Strophe.getBareJidFromJid(jid).toLowerCase();
var resource = Strophe.getResourceFromJid(jid);
attributes.jid = bare_jid;
this.set(_.assignIn({
@ -887,7 +887,7 @@
resources[resource] = {
'priority': priority,
'status': chat_status,
'timestamp': timestamp
'timestamp': timestamp
};
var changed = {'resources': resources};
var hpr = this.getHighestPriorityResource();