Commit Graph

1263 Commits

Author SHA1 Message Date
JC Brand
fdd0583a0c Rename RosterItem to RosterContact 2014-08-02 11:35:03 +02:00
JC Brand
76a18bae0d Finish the test which checks that contacts can appear in more than one group 2014-08-01 21:36:20 +02:00
JC Brand
2b927f21be Big refactor. The RosterView is no longer an overview.
This is because we can no longer assume a one to one mapping between roster
contacts and their views. Roster contacts can belong to more than one group,
each group needs to show the contact, which means we need a view for each group
the contact belongs to.

updates #83
2014-08-01 21:31:21 +02:00
JC Brand
6a82c087c3 Refactor to eventually allow buddies to belong to multiple groups.
In order to make group values non-distinct, (i.e. buddies can be in multiple
groups), we can't assume there's one view per roster item.

This means we cannot manage the rosterview as an overview (since it makes this
assumption).
2014-07-31 21:50:34 +02:00
JC Brand
d0f07f26a5 Check that users are sorted per group and that groups are in the correct order.
updates #83
2014-07-31 20:52:38 +02:00
JC Brand
64580bfd3d Refactor to make more manageable 2014-07-31 18:20:20 +02:00
JC Brand
9b65b57024 Ensure that group headings appear in alphabetical order.
updates #83
2014-07-30 19:20:38 +02:00
JC Brand
303041a980 Test for more variance within group names. updates #83 2014-07-30 09:11:28 +02:00
JC Brand
3984aadb9f More work (with tests) on showing roster items under groups.
updates #83
2014-07-29 19:53:57 +02:00
JC Brand
be76156292 All tests pass \o/ 2014-07-25 10:18:59 +02:00
JC Brand
cfa55896a5 Trying to use a document fragment for the roster view 2014-07-25 09:58:42 +02:00
JC Brand
0640dd5ae5 Clean up the initialize method of RosterView
by moving event handers out
2014-07-25 08:59:38 +02:00
JC Brand
434e21d046 Some sorting optimizations
* Differentiate between adding new roster items and rendering existing ones.
* Also, only sort pending and requesting contacts once they've all been added
  (similar to what was already being done with existing contacts)
2014-07-24 20:48:52 +02:00
JC Brand
ce617f1f31 Some refactoring of RosterView and skeleton for groups test 2014-07-20 22:44:50 +02:00
JC Brand
0f6d1f9edb Add tests for toggleable headings. updates #83 2014-07-20 20:45:59 +02:00
JC Brand
3236d251e5 JShint doesn't like functions inside loops 2014-07-20 19:36:53 +02:00
JC Brand
04d2b3aefd Some initial refactoring to support roster groups. updates #83
Made sure that the non-group usecase is still covered.
2014-07-19 23:45:21 +02:00
JC Brand
0be33b81ef Fix tests 2014-07-19 15:26:30 +02:00
JC Brand
df91f17894 Fix tests. Emitted events weren't yet renamed in the tests. 2014-07-14 23:29:08 +02:00
JC Brand
38b26784b6 trimmed views are minimized by default 2014-07-06 11:00:43 +02:00
JC Brand
c25f33b181 Add proper separation between controlbox tests 2014-07-04 21:18:28 +02:00
JC Brand
5034ae33f2 Work on getting proper separation between tests. 2014-06-30 20:26:45 +02:00
JC Brand
718f75a464 Make sure sessionStorage is cleared 2014-06-30 19:55:26 +02:00
JC Brand
4950bb9120 Fixing tests after latest refactoring 2014-06-30 19:21:16 +02:00
JC Brand
75a94fb2b7 Merge branch 'master' of https://github.com/derek-wangpch/converse.js into derek-wangpch-master 2014-06-30 18:59:49 +02:00
JC Brand
180d175e54 Fix tests. Make sure the min chats toggle gets updated 2014-06-29 18:30:01 +02:00
JC Brand
27cce2c229 Refactor to store number of unread messages 2014-06-29 15:59:39 +02:00
JC Brand
4b8196cd7e Add more tests around minimized chats. 2014-06-21 23:01:56 +02:00
JC Brand
c3dcbbc660 Fix last failing tests. 2014-06-21 11:46:23 +02:00
JC Brand
f0091c9c9c Control box toggle's class has been changed. 2014-06-21 11:32:05 +02:00
JC Brand
1bea7a1a97 Fix trimming/minimize tests broken after recent refactor 2014-06-16 00:03:34 +02:00
JC Brand
c9d7e17a10 Fix test failures due to previous commit 2014-06-14 22:03:04 +02:00
JC Brand
e2d494f0ad Unread chat messages now appear on the minimized chat view. 2014-06-04 09:32:40 +02:00
JC Brand
0d3c101cbf Start fixing message count bugs 2014-06-02 21:51:30 +02:00
JC Brand
c6a32b847e Fix chatroom tests 2014-06-02 05:13:53 +02:00
JC Brand
6e5bf44ada This branch marks the start of a significant conceptual change.
Instead of differentiating between trimmed chats and minimized chats, the two
are now combined into the same thing.

This commit contains some initial work, but functionality is still impaired.
2014-06-01 20:09:09 +02:00
JC Brand
88d20d0372 Add test for restoring of trimmed chats 2014-06-01 18:16:32 +02:00
JC Brand
c594e5a1e9 Add new test for trimmed chats 2014-06-01 17:57:03 +02:00
JC Brand
eb424a9dbe Check that chat boxes are created to the right
of any existing ones, but left of the control box.
2014-06-01 16:26:51 +02:00
JC Brand
b84fb41341 Trimmed chats can now be restored. 2014-05-27 22:51:11 +02:00
JC Brand
38e0668372 Fix tests. 2014-05-27 19:18:02 +02:00
JC Brand
ad51e1c0f7 More working on trimming chats. (still very buggy)
More flesh on the view and superview for trimmed chats.
Add event handlers.
Renamed some methods to make them shorter, more consistent.
2014-05-27 18:34:22 +02:00
Derek Wang
fffc0213c4 Fix format 2014-05-19 22:12:55 +08:00
Derek Wang
f0bb123e7f Fix a bug that emoticon of '<3' and '>:)' cannot be displayed correctly in the message 2014-05-19 22:06:11 +08:00
JC Brand
aa52ba5b94 Add method trimOpenChats. Updates #61 2014-04-26 06:55:52 +02:00
JC Brand
b307d5170b Date handling is now done with moment.js 2014-04-25 23:44:10 +02:00
JC Brand
dec674fae2 Bugfix. Opened chatboxes weren't focused...
...when clicking on a contact in the roster
2014-04-24 20:55:07 +02:00
JC Brand
4937fafea4 Add tests for new "clear" button. 2014-04-24 19:21:38 +02:00
JC Brand
14d90bc99c Upgrade dependencies to their latest versions 2014-04-19 05:12:24 +02:00
JC Brand
bf6474ff6d Upgrade jquery to 1.11.0 and add jquery.browser 2014-04-19 01:52:44 +02:00
JC Brand
7d472eb26d Add new dependency moment.js
Use it to better compare dates when trying to determine whether a message falls
on a different day.

Also upgraded some dependencies' versions.
2014-04-19 01:30:48 +02:00
JC Brand
b88113c246 Fixed some failing tests.
Some of the tests were failing because they didn't expect the controlbox to be
returned from localStorage.
It's too long ago that I've looked at this branch for me to say whether this is
a legitimate bug or not.
Will have to investigate further.
2014-04-18 17:42:35 +02:00
JC Brand
3cfcb2ae34 2 controlbox bugfixes and spec typo.
* Save controlbox to containing collection
* Call refreshWebkit after closing controlbox
2014-03-15 05:52:00 +02:00
JC Brand
6290f954a7 Add toggle test for chatrooms 2014-03-14 21:35:43 +02:00
JC Brand
bb0f49cf4d Add a counter to show unread msgs when chat is minimized 2014-03-09 13:31:01 +02:00
JC Brand
9849daacf9 Merge branch 'master' into 0.8
Conflicts:
	bower.json
	converse.js
	docs/CHANGES.rst
	spec/chatbox.js
	tests/utils.js
	tests_main.js
2014-03-09 08:18:00 +02:00
JC Brand
8001444a1c Add another URL test with double quotes. 2014-03-09 05:51:21 +02:00
JC Brand
74779afd66 Ensure that URLs in messages are properly escaped 2014-03-05 08:03:52 +02:00
JC Brand
34fa05888d Add (currently still disabled) test for...
message counter for minimized chats
2014-03-05 02:10:29 +02:00
JC Brand
25cc229019 Refactor message handling
- use the same method for both normal and OTR messages
- fix /me actions for OTR messages
- rename messaging methods to minimize ambiguity

Conflicts:
	converse.js
	tests/utils.js
2014-03-05 01:46:19 +02:00
JC Brand
317ab95cd8 Refactor message handling
- use the same method for both normal and OTR messages
- fix /me actions for OTR messages
- rename messaging methods to minimize ambiguity
2014-03-05 01:23:45 +02:00
JC Brand
c2b7caaedf Add a test for chatbox toggling. 2014-03-04 20:16:39 +02:00
JC Brand
b14538b441 Rename ChatBoxesView to ChatBoxViews 2014-03-04 15:54:36 +02:00
JC Brand
1567b212c3 Add closure get/set methods for rosteritem views 2014-03-04 15:49:02 +02:00
JC Brand
d20ca10638 Add closured get/set methods for views from chatboxesview 2014-03-04 15:09:16 +02:00
JC Brand
ac0042fdf9 Extend the "close chat" test with a normal chatbox usecase 2014-03-04 13:22:49 +02:00
JC Brand
11b59b31d3 Fix tests after all the refactoring... 2014-03-01 01:57:20 +02:00
JC Brand
1ce7620b88 Merge remote-tracking branch 'origin' into 0.8
Conflicts:
	converse.js
	docs/CHANGES.rst
	index.html
2014-02-23 02:54:35 +02:00
JC Brand
18d6a91881 Add API method to retrieve the SID. Fixes #93 2014-02-12 12:37:39 +02:00
JC Brand
30f3114c7c Add method to get the latest RID. Updates #93 2014-02-12 12:19:12 +02:00
JC Brand
62d59ff3e4 Refactor some OTR code into a Backbone model and adapt tests. 2014-02-12 07:12:00 +02:00
JC Brand
398142c7de Add a test for the passphrase storage. Updates #111 2014-02-12 02:02:45 +02:00
JC Brand
e3b8a8f9dd Move event emitter tests out into their own spec 2014-02-12 02:02:25 +02:00
JC Brand
18cacdc94b More templates refactored into separate files. 2014-01-19 11:22:56 +02:00
JC Brand
4e9dc08b0b Clean up after running tests, by closing chatboxes. 2014-01-19 07:02:18 +02:00
Pete Nicholls
6002e0fdf9 Use converse.emit to dispatch call button event 2013-12-19 12:26:11 +13:00
Pete Nicholls
db60894834 Add optional call button to chat box toolbar 2013-12-19 12:26:07 +13:00
JC Brand
4186bf3ca3 Throw event onRosterViewUpdated whenever the roster HTML changes. Fixes #101 2013-12-18 16:30:19 +02:00
JC Brand
8633d23738 Sanitize text messages to disable Javascript injection attacks.
Thanks to hejsan.
2013-12-18 13:51:59 +02:00
JC Brand
c8bf0491c8 Add new spec to test converse.js's API. Fixes #48 2013-12-16 20:00:21 +02:00
JC Brand
326e5a188b Rename the spec files 2013-12-16 20:00:15 +02:00
JC Brand
d1bf5b8466 Add event emitter tests for chatrooms. Updates #48 2013-12-16 19:19:25 +02:00
JC Brand
cdc350f592 Add more tests for events emitting. Updates #48 2013-12-16 15:27:07 +02:00
JC Brand
1939ddac23 Test events emitted when own status or status message is changed. Updates #48 2013-12-15 18:13:39 +02:00
JC Brand
7a5bc7fe65 'ask' attribute of 'subscribe' is only for 'pending out' requests.
Did more investigation with regards to subscription requests.

As far as I can tell, roster updates will only show ask='request' for 'pending
out' requests.

For 'pending in' requests (what converse.js calls requesting contacts), roster
updates are not used and instead a presence stanza with type 'subscribe' is
used.

This makes sense. When sending a presence with type 'subscribe', we need a way
to keep track of our outgoing subscriptions. The XMPP server helps us do this by
adding a user to our roster with ask='request' and subscription='none'.

When our contact receives our presence with type 'subscribe', they have the
information they need. If they go offline and online again, the XMPP server
will resend the presence with type 'subscribe'. So a roster item is not needed.

In convere.js's internal representation of the roster (via the RosterItems backbone
object) we need to add roster items for 'pending in' contacts so that we can
render them and we need to know whether they are 'pending in' or 'pending out'.

We already know they're 'pending out' when ask='subscribe' and
subscription='none'. For 'pending in', since these roster items are only stored
locally and not on the XMPP server (because 'pending in' requests are handled
via <presence> stanzas and not the roster) we add a special attribute
'requesting'.
2013-11-06 09:54:58 +02:00
JC Brand
fb8e2cde72 Roster item 'ask' property is always 'subscribe' for subscription requests
* 'pending' state is denoted by subscription='none', ask='subscribe'
* 'requesting' state is denoted by subscription='from', ask='subscribe'

Reference: http://xmpp.org/rfcs/rfc3921.html#int

I'm not yet 100% sure with regards to the 'requesting' state, I can't find
anything about it in the above mentioned reference, but apparantly that's what
prosody's roster response looks like (e.g. <item jid='XYZ' ask='subscribe'
subscription='from'/> ).

With ejabberd I haven't yet received such a roster response and contact
requests are always handled via presence stanzas.

updates #81
2013-11-06 09:04:44 +02:00
JC Brand
fc3a08400e Add tests for the chat toolbar.
Including the emoticon menu and the OTR menu.
More tests needed for OTR in particular.
2013-11-03 22:28:44 +02:00
JC Brand
00e0782576 Add a test that checks for delayed messages. Fixes #76
Messages older than one day do indicate it.
2013-11-03 13:24:18 +02:00
JC Brand
d7d8948eba Refactor ChatRoom tests (move code to utils.js) 2013-11-03 12:02:25 +02:00
JC Brand
13babe4fae Refactored chatbox tests to be run independently 2013-11-03 11:38:48 +02:00
JC Brand
44fe406a34 Refactored tests.
Split MainSpec out into ChatBoxSpec and ControlBoxSpec.

Part of trying to have looser coupling between tests so that they can be run
independently.
2013-11-02 13:37:38 +02:00
JC Brand
b0f12d0f79 $.proxy can be used to pass in extra args, no need for fn.bind 2013-11-02 12:03:57 +02:00
JC Brand
ff345dcf51 Move mock.js to tests dir. Add utils.js
Both changes from tests-refactor branch
2013-11-02 11:32:52 +02:00
JC Brand
38c26013d0 Simplify the boilerplate HTML require even more.
Use id 'conversejs' instead of 'chatpanel'.

The controlbox toggle is now generated via a backbone view, you don't need to
manually include it in your markup.
2013-10-20 22:42:34 +02:00
JC Brand
0deb8be9e7 Fix tests. sendPresence is now sent out at a different place 2013-10-15 21:05:07 +02:00
JC Brand
e883d137fc Bugfixes. RosterItemView didn't rebind events. Undefined vars in onConnect.
When using show_only_online_users, roster item DOM elements are removed from
the DOM if their status changed from 'online' to something else.

When their status changed to 'online' again, they were re-added.

Their views (RosterItemView) instances however didn't listen to events anymore.

Calling delegateEvents on the view after calling $.remove() fixed this.
2013-10-07 09:16:26 +02:00
JC Brand
6d026f010e Fix tests that were broken after vCard changes
Conflicts:
	tests_main.js
2013-10-03 13:51:29 +02:00
JC Brand
7f4bdb4098 Don't use id for controlbox panes 2013-10-03 13:45:50 +02:00
JC Brand
be66284748 Add a test for /clear functionality 2013-09-13 12:18:49 +02:00
JC Brand
cc37d6a183 The xa chat state wasn't being handled properly 2013-09-13 10:57:53 +02:00
JC Brand
b34a706132 We didn't have an icon for unavailable state.
Also, the status description was not translation aware
2013-09-13 10:35:37 +02:00
JC Brand
0a1a837391 Three more tests for pending contacts.
Trying to flesh out the bug where in certain instances the 'pending contacts'
header doesn't get removed after the last pending contact is removed.
2013-08-24 15:33:06 +02:00
JC Brand
bc0e200cee Fixed tests 2013-08-24 03:13:25 +02:00
JC Brand
304b275714 Fix tests. removeRoom method doesn't exist anymore 2013-08-20 22:03:46 +02:00
JC Brand
2d4a14ac2d Don't expose the Strophe connection object globally.
Instead, expose only the initialize and onConnected functions.
Updated the tests to work with this.
2013-08-05 09:25:29 +02:00
JC Brand
c5192f8ade Bugfix. Updates #32
Users without roster contacts didn't have XMPPStatus.initStatus called and
therefore had a default status of offline.

Fixed this by setting the status to online from the start. The fetch command
will get the true status from localStorage (if available).

Made sure that the rest of converse's onConnected code is called in the
callback from fetch (so that we know the user's status is correct).

Updated and fixed tests.
2013-08-04 15:39:46 +02:00
JC Brand
18565e7977 Remove trailing whitespace 2013-07-25 09:45:35 +02:00
JC Brand
4c0d4f2ac5 bugfix. Fixes #26. Only the first minute digit was shown. 2013-07-24 22:58:53 +02:00
JC Brand
8293bd0da5 Bugfix in jquery element query 2013-06-02 22:32:33 +02:00
JC Brand
b350efa646 Fix tests 2013-05-31 21:13:01 +02:00
JC Brand
49b99d9693 Refactored status message rendering code
As a result we now implement more status codes from the spec.
Specifically the codes related to forced removal form the room

Also fixed a bug related to wrong authentication when logging in.
2013-05-30 21:25:54 +02:00
JC Brand
33d85cd955 Fix tests after adding nick input field 2013-05-21 16:49:10 +02:00
JC Brand
d83ffde08d Fix tests after status widget changes 2013-05-21 13:55:42 +02:00
JC Brand
b35d71e22f Test chatroom message 2013-05-14 23:20:59 +02:00
JC Brand
2a7031b504 Make the spec independently testable 2013-05-14 22:45:21 +02:00
JC Brand
d568d90a3a Work to make the individual tests independent 2013-05-14 22:39:13 +02:00
JC Brand
feb3695ebe Tweak the error message styling 2013-05-14 22:13:05 +02:00
JC Brand
946bb7730b Fix tests 2013-05-14 09:43:49 +02:00
JC Brand
cc28f7e827 Add a test to check that moderators are highlighted 2013-05-11 14:34:36 +02:00
JC Brand
6d9fe68a25 Split ChatRooms tests out into their own spec file 2013-05-11 14:20:07 +02:00
JC Brand
7c1a9242d5 Add logic to parse error messages when trying to enter a room 2013-05-11 09:59:32 +02:00
JC Brand
dc6c78331f Bugfix in tests, make sure message counter is cleared 2013-05-09 17:12:51 +02:00
JC Brand
c66c7c3f26 Merge branch 'master' of https://github.com/witekdev/converse.js into witekdev-master
Conflicts:
	spec/MainSpec.js
2013-05-08 18:01:03 +02:00
witek
b84d4519a9 add tests for message counter functionality 2013-05-08 17:42:19 +02:00
JC Brand
be9cd59951 Add chatroom test concerning localstorage 2013-05-08 17:29:18 +02:00
JC Brand
743eb1daf3 Reinstate chatpanel tests and add two chatroom tests 2013-05-08 16:53:50 +02:00
JC Brand
fb468f27fb Fix tests and disable chatroom tests for now 2013-04-26 14:45:32 +02:00
JC Brand
58241cbb74 Make converse.js more modular
- Removed the $(document).ready handler. Instead, converse.initialize must be
  called manually together with settings data.
- As a result the Plone specific event listeners are now also gone.
- Update tests and index.html to deal wit these changes
2013-04-20 11:32:54 +02:00
JC Brand
1cae33b06b Globally rename xmppchat to converse 2013-04-20 10:41:10 +02:00
JC Brand
71f4cdb931 Initial work towards decoupling contact adding
New conf variable in converse.js to indicate how contacts are added (either via
XHR or directly).
2013-04-20 00:38:54 +02:00
JC Brand
286b716300 Add initial chatroom tests. 2013-04-19 22:11:40 +02:00
JC Brand
9b445f8455 Small tweaks to tests to provide better visual feedback 2013-04-19 21:03:26 +02:00
JC Brand
3fe3d3546f Bugfix in tests
Controlbox's status widget was being overwritten
2013-04-19 20:17:54 +02:00
JC Brand
abe85c8b90 Update tests
The chat toggle element is now determined by class, not id.
2013-04-19 00:32:46 +02:00
JC Brand
6aed43818c Add XMPP Status Widget tests 2013-04-18 22:13:28 +02:00
JC Brand
3be0f2d89b Tests update
Add empty specs for status widget
Fixed roster localStorage spec to not break the xmppstatus view
2013-04-18 00:10:28 +02:00
JC Brand
fc129c20e4 Add test for message sending 2013-04-17 23:51:00 +02:00
JC Brand
9cc2f2339d Use fewer contacts to make visual output clearer 2013-04-17 12:07:50 +02:00
JC Brand
b1ecdfdadc Found a bug in jasmine
which after being fixed removes the need for the sleep() command because you
can set the execution speed via jasmine's updateInterval attr
2013-04-17 12:00:14 +02:00
JC Brand
da095caa38 Finish the test for receiving messages. 2013-04-17 00:09:16 +02:00
JC Brand
1cfbe0cc8d Add more tests for chat messages 2013-04-16 21:41:28 +02:00
JC Brand
524bda3c47 Two more tests: accept/decline of contact requests 2013-04-15 09:57:46 +02:00
JC Brand
567cfd3501 Reordered the tests
So that we have test suites for each type of contact
- Pending
- Existing
- Requesting
2013-04-15 09:12:42 +02:00
JC Brand
29a6e1d9f1 Move requesting contacts after pending/current. 2013-04-14 03:06:30 +02:00
JC Brand
f4c2327e94 Add sleep funtion to slow down tests
Allows one to visually follow whats going on.
2013-04-14 02:38:27 +02:00
JC Brand
7852f67a03 Split the contacts up into distinct groups.
This reduces some hoops that had to be jumped through to get the proper indexes
to retrieve contacts
2013-04-14 02:00:30 +02:00
JC Brand
e8a55145b9 Call the new initialize method instead of doing setup manually 2013-04-14 01:09:26 +02:00
JC Brand
c0095d4d15 New test
Test that chatboxes are removed from localStorage when closed
2013-04-14 00:03:04 +02:00
JC Brand
66dde5e986 Add another test
Test that chatboxes can also be closed.
2013-04-13 01:24:55 +02:00
JC Brand
acf3f75b7d Test that chatboxes are stored to localStorage 2013-04-13 01:13:30 +02:00
JC Brand
0f0599d5a0 Extended the test 2013-04-13 01:09:25 +02:00
JC Brand
8525ee506e Rename RosterSpec.js to MainSpec.js 2013-04-13 01:00:15 +02:00
JC Brand
ed86b22fe6 Add a new test
Check that a chatbox is created when a roster item is clicked.
2013-04-13 00:56:53 +02:00
JC Brand
7b2dbf9ba4 Add a new test to check that roster items are saved to localstorage
Also renamed some other tests to make them shorter and more legible
2013-04-13 00:16:50 +02:00
JC Brand
2593dd7099 Improve the test names 2013-04-12 23:20:31 +02:00
JC Brand
add9cc8554 Fixed all Roster tests \o/ 2013-04-12 23:08:30 +02:00
JC Brand
367cc14213 Preliminary work to get jasmine tests working again 2013-04-12 20:31:05 +02:00
JC Brand
d7cb92c7af Merge pull request #3 from ichim-david/master
Optimize actions done in RosterView.
2013-02-28 00:31:46 -08:00
ichim-david
732f941e20 Fixed first jasmine test for visibility of xmpp-roster 2013-02-28 07:48:06 +02:00
Alexandru Ghica
b6af624b14 Code clean up
Cleaned up unnecessary spaces, replaced tabs with spaces and fixed line
terminators.
2013-02-22 15:42:35 +02:00
JC Brand
39c0823f2a Alphabetically sort roster contacts according to type and status
Also added a new jasmine spec for this as well as jquery.tinysort to do the
sorting.
2012-12-09 19:55:23 +02:00
JC Brand
624ab458d0 Improve suite names. Use toMatch matcher 2012-12-09 19:54:26 +02:00
JC Brand
0edc57107d Add spec dir with jasmine.js test for ClientStorage 2012-12-08 07:22:40 +02:00