aboutsummaryrefslogtreecommitdiffstats
path: root/spec/scansion/prosody.cfg.lua
diff options
context:
space:
mode:
Diffstat (limited to 'spec/scansion/prosody.cfg.lua')
-rw-r--r--spec/scansion/prosody.cfg.lua79
1 files changed, 70 insertions, 9 deletions
diff --git a/spec/scansion/prosody.cfg.lua b/spec/scansion/prosody.cfg.lua
index f95ea31b..6901cc11 100644
--- a/spec/scansion/prosody.cfg.lua
+++ b/spec/scansion/prosody.cfg.lua
@@ -1,23 +1,36 @@
--luacheck: ignore
+-- Mock time functions to simplify tests
+function _G.os.time()
+ return 1219439344;
+end
+package.preload["util.time"] = function ()
+ return {
+ now = function () return 1219439344.1; end;
+ monotonic = function () return 0.1; end;
+ }
+end
+
admins = { "admin@localhost" }
-use_libevent = true
+network_backend = ENV_PROSODY_NETWORK_BACKEND or "epoll"
+network_settings = require"util.json".decode(ENV_PROSODY_NETWORK_SETTINGS or "{}")
modules_enabled = {
-- Generally required
"roster"; -- Allow users to have a roster. Recommended ;)
"saslauth"; -- Authentication for clients and servers. Recommended if you want to log in.
- "tls"; -- Add support for secure TLS on c2s/s2s connections
- "dialback"; -- s2s dialback support
+ --"tls"; -- Add support for secure TLS on c2s/s2s connections
+ --"dialback"; -- s2s dialback support
"disco"; -- Service discovery
-- Not essential, but recommended
"carbons"; -- Keep multiple clients in sync
- "pep"; -- Enables users to publish their mood, activity, playing music and more
+ "pep"; -- Enables users to publish their avatar, mood, activity, playing music and more
"private"; -- Private XML storage (for room bookmarks, etc.)
"blocklist"; -- Allow users to block communications with other users
- "vcard"; -- Allow users to set vCards
+ "vcard4"; -- User profiles (stored in PEP)
+ "vcard_legacy"; -- Conversion between legacy vCard and PEP Avatar, vcard
-- Nice to have
"version"; -- Replies to server version requests
@@ -26,6 +39,11 @@ modules_enabled = {
"ping"; -- Replies to XMPP pings with pongs
"register"; -- Allow users to register on this server using a client and change passwords
"mam"; -- Store messages in an archive and allow users to access it
+ --"csi_simple"; -- Simple Mobile optimizations
+
+ -- Admin interfaces
+ --"admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands
+ --"admin_telnet"; -- Opens telnet console interface on localhost port 5582
-- HTTP modules
--"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
@@ -35,19 +53,51 @@ modules_enabled = {
-- Other specific functionality
--"limits"; -- Enable bandwidth limiting for XMPP connections
--"groups"; -- Shared roster support
- --"server_contact_info"; -- Publish contact information for this service
+ "server_contact_info"; -- Publish contact information for this service
--"announce"; -- Send announcement to all online users
--"welcome"; -- Welcome users who register accounts
--"watchregistrations"; -- Alert admins of registrations
--"motd"; -- Send a message to users when they log in
--"legacyauth"; -- Legacy authentication. Only used by some old clients and bots.
--"proxy65"; -- Enables a file transfer proxy service which clients behind NAT can use
+ "lastactivity";
+ "external_services";
+
+ "tombstones";
+ "user_account_management";
-- Useful for testing
--"scansion_record"; -- Records things that happen in scansion test case format
}
-certificate = "certs"
+contact_info = {
+ abuse = { "mailto:abuse@localhost", "xmpp:abuse@localhost" };
+ admin = { "mailto:admin@localhost", "xmpp:admin@localhost" };
+ feedback = { "http://localhost/feedback.html", "mailto:feedback@localhost", "xmpp:feedback@localhost" };
+ sales = { "xmpp:sales@localhost" };
+ security = { "xmpp:security@localhost" };
+ status = { "gopher://status.localhost" };
+ support = { "https://localhost/support.html", "xmpp:support@localhost" };
+}
+
+external_service_host = "default.example"
+external_service_port = 9876
+external_service_secret = "<secret>"
+external_services = {
+ {type = "stun"; transport = "udp"};
+ {type = "turn"; transport = "udp"; secret = true};
+ {type = "turn"; transport = "udp"; secret = "foo"};
+ {type = "ftp"; transport = "tcp"; port = 2121; username = "john"; password = "password"};
+ {type = "ftp"; transport = "tcp"; host = "ftp.example.com"; port = 21; username = "john"; password = "password"};
+}
+
+modules_disabled = {
+ "s2s";
+}
+
+-- TLS is not used during the test, set certificate dir to the config directory
+-- (spec/scansion) to silence an error from the certificate indexer
+certificates = "."
allow_registration = false
@@ -69,15 +119,26 @@ mam_smart_enable = true
-- Logging configuration
-- For advanced logging see https://prosody.im/doc/logging
-log = "*console"
+log = {"*console",debug = ENV_PROSODY_LOGFILE}
-daemonize = true
pidfile = "prosody.pid"
VirtualHost "localhost"
+hide_os_type = true -- absence tested for in version.scs
+
Component "conference.localhost" "muc"
storage = "memory"
+ admins = { "Admin@localhost" }
+ modules_enabled = {
+ "muc_mam";
+ }
+
Component "pubsub.localhost" "pubsub"
storage = "memory"
+ expose_publisher = true
+
+Component "upload.localhost" "http_file_share"
+http_file_share_size_limit = 10000000
+http_file_share_allowed_file_types = { "text/plain", "image/*" }