25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-12-20 17:27:00 +01:00
Commit Graph

369 Commits

Author SHA1 Message Date
Holger Weiss
13ad754ecc Suppress push notifications for online clients
When a client enabled push notifications during the current session,
notifications should be suppressed as long as the client is online.
Suppressing the notification didn't work for the case where the
notification was triggered by MAM, but this is now fixed.
2017-08-18 16:44:32 +02:00
Christophe Romain
52525eb76d Fix tests for 8679cfd2f 2017-08-07 15:38:17 +02:00
Christophe Romain
766b7c65a6 Merge pull request #1881 from weiss/push
Support XEP-0357: Push Notifications
2017-08-04 12:58:06 +02:00
Christophe Romain
f65492e27f Merge pull request #1837 from marcphilipp/feature/set_room_affiliation_test
Add integration test for set_room_affiliation
2017-08-02 14:34:30 +02:00
Badlop
67918b17d3 Fix extauth.py so support : in passwords (thanks to jmberg)(#1676) 2017-07-31 22:51:31 +02:00
Holger Weiss
66510c1d78 Add mod_push_keepalive
This module tries to keep pending stream management sessions of push
clients alive (as long as the disconnected clients are reachable via
push notifications).
2017-07-21 01:07:36 +02:00
Holger Weiss
d6f1d3df5b Support XEP-0357: Push Notifications
Closes #1379.
2017-07-20 20:22:50 +02:00
Paweł Chmielowski
88ab787ba6 Start gen_mod from elixir tests 2017-07-06 17:57:46 +02:00
Paweł Chmielowski
eb9faffadd Improve elixir tests 2017-07-06 17:19:22 +02:00
Paweł Chmielowski
5ef542a638 Remove tests for old commands interface 2017-07-06 17:19:22 +02:00
Marc Philipp
c69720a1ab Add integration test for set_room_affiliation 2017-07-06 13:33:13 +02:00
Paweł Chmielowski
960cf495c6 Don't use asn1rt:decode, it's not available on R20 2017-06-28 14:51:45 +02:00
Paweł Chmielowski
6353a06a5d Catch exception from Elixir.ExUnit.Server.cases_loaded 2017-06-14 14:56:59 +02:00
Paweł Chmielowski
115cb23bd8 Fix elixir tests on elixir 1.4 2017-06-09 12:59:47 +02:00
Evgeniy Khramtsov
35d19b32f4 Implement cache for mod_privacy/mod_blocking 2017-05-20 22:36:32 +03:00
Evgeniy Khramtsov
5bdc6c0822 Get rid of deprecated option 'resume_timeout' in test config 2017-05-17 17:21:59 +03:00
Evgeniy Khramtsov
1925b94131 Implement cache for mod_vcard and mod_vcard_xupdate 2017-05-17 17:13:34 +03:00
Evgeniy Khramtsov
f782955c06 Implement cache for roster 2017-05-17 14:47:35 +03:00
Evgeniy Khramtsov
81d9770d4f Update Elixir tests for using new auth API 2017-05-11 16:15:18 +03:00
Evgeniy Khramtsov
633b68db11 Use cache for authentication backends
The commit introduces the following API incompatibilities:

In ejabberd_auth.erl:
* dirty_get_registered_users/0 is renamed to get_users/0
* get_vh_registered_users/1 is renamed to get_users/1
* get_vh_registered_users/2 is renamed to get_users/2
* get_vh_registered_users_number/1 is renamed to count_users/1
* get_vh_registered_users_number/2 is renamed to count_users/2

In ejabberd_auth callbacks
* plain_password_required/0 is replaced by plain_password_required/1
  where the argument is a virtual host
* store_type/0 is replaced by store_type/1 where the argument is
  a virtual host
* set_password/3 is now an optional callback
* remove_user/3 callback is no longer needed
* remove_user/2 now should return `ok | {error, atom()}`
* is_user_exists/2 now must only be implemented for backends
  with `external` store type
* check_password/6 is no longer needed
* check_password/4 now must only be implemented for backends
  with `external` store type
* try_register/3 is now an optional callback and should return
  `ok | {error, atom()}`
* dirty_get_registered_users/0 is no longer needed
* get_vh_registered_users/1 is no longer needed
* get_vh_registered_users/2 is renamed to get_users/2
* get_vh_registered_users_number/1 is no longer needed
* get_vh_registered_users_number/2 is renamed to count_users/2
* get_password_s/2 is no longer needed
* get_password/2 now must only be implemented for backends with
  `plain` or `scram` store type

Additionally, the commit introduces two new callbacks:
* use_cache/1 where the argument is a virtual host
* cache_nodes/1 where the argument is a virtual host

New options are also introduced: `auth_use_cache`, `auth_cache_missed`,
`auth_cache_life_time` and `auth_cache_size`.
2017-05-11 14:37:21 +03:00
Paweł Chmielowski
e790e66f47 Fix elixir tests 2017-05-04 12:17:41 +02:00
Evgeniy Khramtsov
fddd6110e0 Don't validate an option in gen_mod:get*opt() functions
The changes are very similar to those from previous commit:
* Now there is no need to pass validating function in
  gen_mod:get_opt() and gen_mod:get_module_opt() functions,
  because the modules' configuration keeps already validated values.
* New functions gen_mod:get_opt/2 and gen_mod:get_module_opt/3 are
  introduced.
* Functions gen_mod:get_opt/4 and get_module_opt/5 are deprecated.
  If the functions are still called, the "function" argument is
  simply ignored.
* Validating callback Mod:listen_opt_type/1 is introduced to validate
  listening options at startup.
2017-04-30 19:01:47 +03:00
Paweł Chmielowski
2988d84cfb Don't check result of jid.start 2017-04-26 09:50:49 +02:00
Paweł Chmielowski
a67b3dc6a6 Don't check result of jid.start 2017-04-25 16:54:01 +02:00
Paweł Chmielowski
f4c98f635b Don't check result of jid.start 2017-04-25 16:46:00 +02:00
Paweł Chmielowski
44ae6bcc83 Fix elixir tests 2017-04-21 12:17:23 +02:00
Evgeniy Khramtsov
f9c24ab16d Add Riak as mod_carboncopy RAM backend 2017-04-15 14:41:14 +03:00
Evgeniy Khramtsov
fcb978248f Add Riak as session manager RAM backend 2017-04-15 10:02:32 +03:00
Evgeniy Khramtsov
5f1f126613 Don't forget to disconnect 2017-04-14 20:32:26 +03:00
Christophe Romain
cf784772c9 Merge pull request #1664 from weiss/fix-routing
Fix routing of groupchat and headline messages
2017-04-07 15:10:26 +02:00
Holger Weiss
179e8934cf ejabberd_sm: Fix routing of headline messages
As per RFC 6121, silently drop headline messages sent to the bare JID of
an offline user or to the full JID of an unavailable resource.
2017-04-05 21:03:13 +02:00
Holger Weiss
8bfb6fdd4e ejabberd_sm: Fix routing of groupchat messages
As per RFC 6121, don't (re)route groupchat messages sent to a bare JID
or to an unavailable resource.
2017-04-05 20:41:10 +02:00
Christophe Romain
578ecad93c Disable mix tests 2017-04-04 17:02:15 +02:00
Evgeniy Khramtsov
085b61eea5 Add Redis as mod_carboncopy RAM backend 2017-03-30 11:45:09 +03:00
Evgeniy Khramtsov
31fd83b2ae Add SQL as mod_carboncopy RAM backend 2017-03-30 10:31:51 +03:00
Evgeniy Khramtsov
12e01a5119 Add SQL as mod_muc RAM backend 2017-03-29 12:58:01 +03:00
Evgeniy Khramtsov
02064ae12a Add support for file-based queues
It's now possible to use files as internal packet queues.
The following options are introduced:

* queue_type: the option can be set to `ram` (default) or `file`.
  The option can be set per virtual host.
* queue_dir: path to the directory where queues will be allocated.
  The default is 'queue' directory inside Mnesia directory.
  This is a global option and cannot be set per virtual host.
2017-03-10 15:12:43 +03:00
Evgeniy Khramtsov
0aa22e5149 Don't call deprecated jid functions from the test suite 2017-03-07 18:11:28 +03:00
Evgeniy Khramtsov
8b29af629b Best Practices for Use of SASL EXTERNAL with Certificates (XEP-0178) support
It is now possible for client connections to login using PKIX certificates.
This is disabled by default, to enable it:

- either set 'tls_verify: true' and 'cafile: /path/to/CAfile'
  in the corresponding listener's section
- or set equivalent per-vhost options 'c2s_tls_verify' and 'c2s_cafile'
2017-03-07 14:20:50 +03:00
Paweł Chmielowski
b1b3aba439 Fix elixir tests 2017-02-27 13:05:08 +01:00
Paweł Chmielowski
a098d1ec62 Update tests to ejabberd_commands changes 2017-02-27 10:45:39 +01:00
Paweł Chmielowski
ac548f2e95 Update tests to cyrsasl modifications 2017-02-27 10:45:15 +01:00
Paweł Chmielowski
a85a953e8e Adapt get_last tests to new output 2017-02-24 12:08:57 +01:00
Paweł Chmielowski
c950fc05f0 Update tests for changes in acl start code 2017-02-24 12:08:57 +01:00
Paweł Chmielowski
f4081a363b Fix elixir tests 2017-02-23 09:53:20 +01:00
Evgeniy Khramtsov
635dfa2eae Re-enable "replaced" tests 2017-02-21 12:53:08 +03:00
Evgeniy Khramtsov
6ffd5ffd0c Test stream management queue overload 2017-02-21 12:38:03 +03:00
Evgeniy Khramtsov
e11bcf9c43 Improve stream management tests 2017-02-21 09:19:51 +03:00
Evgeniy Khramtsov
adbd174959 Rename mod_sm -> mod_stream_mgmt 2017-02-21 09:18:58 +03:00
Evgeniy Khramtsov
8b2d308498 Change routing API
Now 'From' and 'To' arguments must be omitted in functions
and structures related to routing.
The commit deprecates the following functions:
     ejabberd_router:route/3 in favor of ejabberd_router:route/1
     ejabberd_router:route_error/4 in favor of ejabberd_router:route_error/2
     ejabberd_local:route_iq/4 in favor of ejabberd_local:route_iq/2
     ejabberd_local:route_iq/5 in favor of ejabberd_local:route_iq/3
The format of {route, From, To, Packet} is changed in favor of {route, Packet}
2017-02-16 11:10:24 +03:00
Paweł Chmielowski
5183f7724d Fix tests 2017-01-23 20:43:35 +01:00
Paweł Chmielowski
b0e72ece43 Adapt to new ejabberd_sm changes 2017-01-23 19:34:29 +01:00
Evgeniy Khramtsov
435e5e6263 Make test suite working again 2017-01-23 13:51:05 +03:00
Christophe Romain
32e5781a6a Cleanup file headers 2017-01-03 15:58:52 +01:00
Badlop
5fdd1c39fe Update copyright date automatically (#1442) 2017-01-02 21:42:06 +01:00
Paweł Chmielowski
1bda40dac7 Fix cyrsasl test after recent changes 2017-01-02 13:36:21 +01:00
Paweł Chmielowski
a681874f67 Try to fix interminent failures in cyrsasl tests 2016-12-06 18:33:16 +01:00
Paweł Chmielowski
68cf6845e1 Fix mod_http_api_mock_test on 19.1 2016-12-01 18:51:23 +01:00
Paweł Chmielowski
294d58a393 Add more tests for digest-md5 cyrsasl 2016-12-01 18:51:23 +01:00
Evgeniy Khramtsov
d554827ebc Don't check for faked carbons 2016-11-24 20:16:07 +03:00
Evgeniy Khramtsov
5d434c1aea Move copyright definition to ejabberd.hrl 2016-11-23 15:51:48 +03:00
Evgeniy Khramtsov
c0b5c6e9d4 Fix logging in tests on R17 2016-11-21 22:04:25 +03:00
Evgeniy Khramtsov
3908a80ac9 Merge branch 'master' of github.com:processone/ejabberd 2016-11-21 16:55:28 +03:00
Evgeniy Khramtsov
1a02a2a51d Set 'sql_pool_size' to 1 for sqlite tests 2016-11-21 16:55:18 +03:00
Paweł Chmielowski
b8e8e4b971 Fix elixir tests 2016-11-21 12:50:51 +01:00
Paweł Chmielowski
e57de02e0f Fix s2s test 2016-11-21 12:06:58 +01:00
Evgeniy Khramtsov
507e756b69 Do not send empty <after/> tag 2016-11-21 12:13:34 +03:00
Paweł Chmielowski
daab95e3b5 Fix elixir tests 2016-11-18 12:54:06 +01:00
Paweł Chmielowski
e69937d93a Get rid of substitute_forwarded 2016-11-18 11:51:57 +01:00
Evgeniy Khramtsov
f57f267c54 Merge branch 'master' of github.com:processone/ejabberd
Conflicts:
	test/ejabberd_SUITE.erl
2016-11-18 13:39:10 +03:00
Evgeniy Khramtsov
b8dcc911a3 Make common tests working again 2016-11-18 13:38:08 +03:00
Paweł Chmielowski
e75dd17e2c Fix tests that use #forwarded 2016-11-15 10:02:21 +01:00
Evgeniy Khramtsov
78a44e0176 Merge branch 'master' into xml-ng
Conflicts:
	src/adhoc.erl
	src/cyrsasl_oauth.erl
	src/ejabberd_c2s.erl
	src/ejabberd_config.erl
	src/ejabberd_service.erl
	src/gen_mod.erl
	src/mod_admin_extra.erl
	src/mod_announce.erl
	src/mod_carboncopy.erl
	src/mod_client_state.erl
	src/mod_configure.erl
	src/mod_echo.erl
	src/mod_mam.erl
	src/mod_muc.erl
	src/mod_muc_room.erl
	src/mod_offline.erl
	src/mod_pubsub.erl
	src/mod_stats.erl
	src/node_flat_sql.erl
	src/randoms.erl
2016-11-12 13:27:15 +03:00
Evgeniy Khramtsov
e841a6ec34 Add more tests for offline storage 2016-11-08 15:15:19 +03:00
Evgeniy Khramtsov
56c91d3c58 Add roster tests 2016-11-07 10:10:57 +03:00
Evgeniy Khramtsov
f6236d456d Add more tests for privacy lists and blocking command 2016-10-22 13:01:45 +03:00
Evgeniy Khramtsov
67720c7713 Add more MUC tests 2016-10-17 13:37:23 +03:00
Evgeniy Khramtsov
6a3691ef7c Add xdata generator and make some code using it 2016-10-07 10:31:03 +03:00
Paweł Chmielowski
0ae84a646f Disable one test for now, we may change how this part is handled 2016-10-06 11:17:10 +02:00
Paweł Chmielowski
695d22ef95 Initialize ejabberd_access_permissions in elixir tests 2016-10-05 13:54:29 +02:00
Evgeniy Khramtsov
d327119cf7 Text legacy IQ handler support 2016-09-25 10:17:03 +03:00
Evgeniy Khramtsov
3112a7187f Test anonymous auth 2016-09-25 09:57:56 +03:00
Evgeniy Khramtsov
7100c67be6 Get rid of compile warnings in test suite 2016-09-25 08:38:41 +03:00
Evgeniy Khramtsov
58969fb854 Improve namespace handling 2016-09-24 14:17:21 +03:00
Evgeniy Khramtsov
53209b9ab1 Add tests for s2s code 2016-09-23 12:30:33 +03:00
Evgeniy Khramtsov
ceda073766 Add tests for external component 2016-09-21 10:45:11 +03:00
Evgeniy Khramtsov
a4ec064455 Add more tests for C2S 2016-09-20 14:04:07 +03:00
Evgeniy Khramtsov
e987b88848 Make common tests working again 2016-09-13 12:30:05 +03:00
gabrielgatu
803270fc6b
Support for Elixir configuration file #1208
Contribution for Google Summer of code 2016 by Gabriel Gatu
2016-09-08 11:37:14 +02:00
Paweł Chmielowski
c770a54aac Clean ejabberd_commands before tests 2016-09-05 17:18:27 +02:00
Paweł Chmielowski
96a748d34f ejabberd_oauth requiere working cache_tab, initialize it before tests 2016-09-05 16:42:05 +02:00
Mickael Remond
4982639d05
Fix error return expectation in command test 2016-08-01 09:28:54 +02:00
Mickael Remond
2a8005e47f
Add ability to run test with Elixir mix 2016-07-26 12:17:37 +02:00
Mickael Remond
dbc0498279
Fix tests, command need to be properly added to list of exposed commands 2016-07-25 18:28:40 +02:00
Mickael Remond
d7ad99f147
Initial attempt on access on commands
May change and will require more work / test / refactor
2016-07-25 11:43:49 +02:00
Mickael Remond
caf2c20210
Error when not authorized should be 403 2016-07-23 18:21:45 +02:00
Pablo Polvorin
4332dddbc4 Support oauth password grant type
As in https://tools.ietf.org/html/rfc6749#section-4.3
2016-07-22 19:17:12 -03:00
Pablo Polvorin
57aeef74d5 stringprep might already be started
Depending on the way the test us ran
(full test suite or the elixir quicktest one)
the stringprep might already be loaded.
2016-07-22 19:15:56 -03:00
Pablo Polvorin
12b58b9870 Fix elixir test case: stringprep was required 2016-07-22 16:25:54 -03:00
Pablo Polvorin
0c0c6465ba Fix test for changes in oauth expiry 2016-07-19 20:36:02 -03:00
Pablo Polvorin
33e0283f0d Add 'ejabberd:user' and 'ejabberd:admin' oauth scopes
'ejabberd:user' includes all commands defined with policy "user".
'ejabberd:admin' includes commands defined with policy "admin".
2016-07-19 00:24:06 -03:00
Paweł Chmielowski
f56cff925c acl: ACLName rule should match if any part of ACLName matches 2016-06-24 15:09:51 +02:00
Paweł Chmielowski
751be3cca6 Add some tests for {shaper,access}_rules_validator 2016-06-22 16:52:45 +02:00
Paweł Chmielowski
f1138baa80 Add test for more allowed access_rules 2016-06-16 11:12:16 +02:00
Paweł Chmielowski
7b308e0d41 Add shorter version of some common access rules definitions
This add conversion of

- allow
to
- allow: all

and

- allow: acl_name
to
- allow:
  - acl: acl_name

(this works also for deny, and number in shapers)
2016-06-15 19:23:55 +02:00
Paweł Chmielowski
f8d2589ee5 Add tests for new acl functions 2016-06-06 17:12:39 +02:00
Pablo Polvorin
41c3751fa1 Fix quicktest case
Missing initialization, required for ets table to exists
2016-06-05 16:35:51 -03:00
Alexey Shchepin
0093326f7d Fix ejabberd.ldif 2016-06-02 18:56:27 +03:00
Alexey Shchepin
9ef52b8c64 Fix a typo 2016-06-02 18:22:50 +03:00
Alexey Shchepin
d201f013b2 Stronger tests in the test suite, SQL updates and fixes 2016-06-02 18:09:58 +03:00
Paweł Chmielowski
8e883a76e3 Update test after roster code reorganization 2016-05-31 00:09:26 +02:00
Paweł Chmielowski
622bff23a4 Update test 2016-05-31 00:07:26 +02:00
Paweł Chmielowski
be0dd51e51 Fix mod_http_api_test.exs 2016-05-30 23:06:29 +02:00
Paweł Chmielowski
17f87eb899 Fix tests 2016-05-30 23:06:29 +02:00
Paweł Chmielowski
1ade88402c Better code for setting up ejabberd app location 2016-05-30 23:06:29 +02:00
Paweł Chmielowski
f252b9d489 Update acl tests to new internal access rules syntax 2016-05-30 14:36:17 +02:00
Paweł Chmielowski
1d3959b5a2 Make tests run correctly even when ejabberd src in not in ejabberd-xxx dir 2016-05-30 14:35:53 +02:00
Paweł Chmielowski
13ead140f4 Copy lite.sql to place where tests expect it in failback mode 2016-05-26 11:08:53 +02:00
Evgeny Khramtsov
14b53fbcb0 Merge pull request #1131 from weiss/failed-resume-h
XEP-0198: Indicate number of handled stanzas if resumption fails
2016-05-25 11:56:47 +04:00
Evgeny Khramtsov
b055c2a13a Merge pull request #1126 from weiss/muc-send-affiliation
Notify on MUC affiliation changes of non-occupants
2016-05-25 11:55:06 +04:00
Holger Weiss
30e814dd4b XEP-0198: Add 'h' attribute to <failed/> element
If a resume request is rejected because the session timed out, indicate
the number of handled stanzas as per version 1.5 of XEP-0198.
2016-05-24 22:20:58 +02:00
Holger Weiss
9d87a4a6d4 mod_muc_room: Notify on affiliation changes
Notify the current room occupants if the affiliation of a non-occupant
is changed as per example 195 of XEP-0045.  In anonymous rooms, only
moderators are notified, though.
2016-05-20 01:28:16 +02:00
Holger Weiss
8f72c27b88 mod_client_state: Add "queue_pep" option
If the new "queue_pep" option is enabled and the client is inactive, PEP
notifications are throttled in a similar way to presence stanzas and
chat states.  Only the most recent notification of a given node and
payload type will be queued from a given contact.
2016-05-17 22:12:04 +02:00
Holger Weiss
4f009e64fc mod_client_state: Queue chat state notifications
Queue standalone chat states instead of simply dropping them when the
client is inactive.  Only the most recent chat state of a given client
is queued.
2016-05-17 20:55:45 +02:00
Alexey Shchepin
64bb371285 Fix a typo 2016-05-13 18:22:59 +03:00
Alexey Shchepin
9bd446e519 Less strict extauth.py 2016-05-13 17:56:52 +03:00
Alexey Shchepin
792f47b4bd Update SQL escaping 2016-05-13 17:56:48 +03:00
Holger Weiss
bcf07fd032 Avoid error bounces when testing stream management
The test suite sends messages to the server JID while checking whether
the stream management code counts outgoing stanzas correctly.  We now
set type='headline' for those messages to avoid error bounces.
2016-05-06 16:37:17 +02:00
Paweł Chmielowski
0c0ce17bc0 Add ability to configure server loglevel when running tests 2016-05-02 15:25:30 +02:00
Evgeniy Khramtsov
8700a3401e Add tests for MUC MAM 2016-05-01 12:48:23 +03:00
Evgeniy Khramtsov
1aae8a9fda Rename odbc to sql everywhere 2016-04-20 13:25:42 +03:00
Mickael Remond
cd2e2b1a88
Synchronizing master changes 2016-04-12 10:34:24 +02:00
Mickael Remond
127342449e
Allow testing user pattern directly in access rules 2016-04-08 19:45:25 +02:00
Mickael Remond
1dbdd58b1b
Add TODO to improve ACL 2016-04-08 12:55:35 +02:00
Mickael Remond
373f9fb0eb
Add tests on Access rules returning values 2016-04-07 13:04:58 +02:00
Mickael Remond
60c0c8e968
Add test when mixing ip / user rules 2016-04-07 12:35:29 +02:00
Mickael Remond
a938af4180
IP based ACL / Access rules and sequential evaluation of rules 2016-04-07 12:06:30 +02:00
Mickael Remond
eb36440c2e Variant for user ACL test 2016-04-06 18:13:08 +02:00
Mickael Remond
d45ad3e3a5 Add initial basic ACL test 2016-04-06 18:13:08 +02:00
Mickael Remond
5efcf0a175 Stringprep can already be started, do not check result 2016-04-06 18:11:46 +02:00
Mickael Remond
2900aa208f Log Elixir test result for investigation and include this log file in travis for troubleshooting failed tests 2016-04-06 17:55:56 +02:00
Mickael Remond
a9e50468b6 Better error message in logs 2016-04-06 15:07:44 +02:00
Mickael Remond
267fdb2e95 Now we need to start stringprep before config 2016-04-06 13:51:05 +02:00
Mickael Remond
e24da5789e Apply fixes and remove tests for missing methods 2016-04-01 13:05:41 +02:00
Mickael Remond
b5f1479763 Fix tests, they are now running fine locally 2016-04-01 11:13:48 +02:00
Mickael Remond
a8f92ae767 Add logger macro to help troubleshooting Elixir tests 2016-04-01 11:11:42 +02:00
Mickael Remond
97d345d287 Port mod_admin_extra test to work with new API 2016-03-31 22:01:57 +02:00
Mickael Remond
ef2e2e45b3 Fix failing tests 2016-03-31 17:34:58 +02:00
Mickael Remond
7988e2e350 Merge lastest commits from master 2016-03-31 15:37:21 +02:00
Mickael Remond
dc0ca51ef1 Try keeping names of test same as master to limit merge conflicts 2016-03-31 15:06:41 +02:00