aboutsummaryrefslogtreecommitdiffstats
path: root/spec
Commit message (Collapse)AuthorAgeFilesLines
* util.promise: Switch order of parameters to join()Matthew Wild2021-03-251-2/+2
| | | | | This saves awkward fiddlery with varargs and also echoes the signature of pcall/xpcall.
* util.promise: all()/all_settled() pass through non-promise valuesMatthew Wild2021-03-251-0/+33
|
* util.promise: Add join() convenience methodMatthew Wild2021-03-251-0/+26
| | | | | | Usage: promise.join(p1, p2, function (result1, result2) [...] end)
* util.promise: Add support for arbitrary keys in all()/all_settled()Matthew Wild2021-03-251-0/+37
|
* util.datamapper: Add test coverage of unwrapped arrays of objectsKim Alvefur2021-03-241-0/+14
| | | | | Should the xml name/ns go on the array or the items schema? The later apparently.
* util.datamapper: Deal with locally built stanzas missing xmlnsKim Alvefur2021-03-231-0/+28
| | | | | | | | | | | | | | | | | | | | | So the problem is that xmlns is not inherited when building a stanza, and then :get_child(n, ns) with an explicit namespace does not find that such child tags. E.g. local t = st.stanza("foo", { xmlns = "urn:example:bar" }) :text_tag("hello", "world"); assert(t:get_child("hello", "urn:example:bar"), "This fails"); Meanwhile, during parsing (util.xmppstream or util.xml) child tags do get the parents xmlns when not overriding them. Thus, in the above example, if the stanza is passed trough `t = util.xml.parse(tostring(t))` then the assert succeeds. This change makes it so that it leaves out the namespace argument to :get_child when it is the same as the current/parent namespace, which behaves the same for both built and parsed stanzas.
* util.datamapper: Complete array building supportKim Alvefur2021-03-201-0/+11
|
* util.datamapper: Finally implement support for parsing arraysKim Alvefur2021-03-201-0/+63
|
* util.datamapper: Fix arrays nesting one level too deepKim Alvefur2021-03-191-7/+15
|
* util.datamapper: Limited support for unparsing simple arrays of stringsKim Alvefur2021-03-181-6/+2
|
* util.datamapper: Add initial support for parsing arraysKim Alvefur2021-03-181-1/+24
|
* util.datamapper: Enumerated elementsKim Alvefur2021-03-121-1/+9
| | | | E.g. error conditions or chat states.
* util.datamapper: Add support for mapping of elements where only one ↵Kim Alvefur2021-03-071-0/+7
| | | | | | | attribute matters E.g. <feature var='foo'/> in XEP-0030 and some other simple specifications.
* util.datamapper: Add logic for "boolean" tags here the presence means trueKim Alvefur2021-03-071-0/+6
|
* util.datamapper: Invent extension for using tag name as valueKim Alvefur2021-03-061-5/+11
| | | | | Useful for certain enum-like uses where the element name is the relevant information, e.g. chat states.
* util.datamapper: Add 'unparse' for turning tables into XMLKim Alvefur2021-03-071-0/+12
|
* util.datamapper: Library for extracting data from stanzasKim Alvefur2021-03-071-0/+56
| | | | Based on the XML support in the OpenAPI specification.
* mod_pubsub: Include <pubsub> with unsubscribe replyKim Alvefur2021-03-151-1/+5
| | | | | | | | | XEP-0060 6.2.2 This is a MAY but it makes it nice and symmetric with the subscription response. Reduces the need to remember which node you unsubscribed from. Explicit > implicit etc.
* util.rsm: Increase test coverageKim Alvefur2021-03-061-0/+43
| | | | Test all fields in both directions in order to catch #1642
* core.storagemanager: s/Multilpe/Multiple/ [codespell]Kim Alvefur2021-03-051-1/+1
|
* MUC: Add robot face testKim Alvefur2021-03-021-0/+46
| | | | See 6e051bfca12d
* util.datamanager: Add basic testsKim Alvefur2021-02-091-0/+76
| | | | | Test all the things! Somewhat covered by the storagemanager tests, but we don't currently don't have that automated as it needs SQL engines.
* util.cache: Add test for :table (fails on Lua 5.1)Kim Alvefur2021-02-051-0/+24
|
* scansion tests: Give a title to HTTP Upload testKim Alvefur2021-02-031-0/+2
|
* mod_storage_sql: Implement map-like API for archivesKim Alvefur2021-02-011-2/+2
| | | | | | | | Used by mod_http_file_share, muc moderation, etc. Tests tweaked because they failed on stanza internals that happen becasue of re-serialization. Namespaces differ since inheritance is implicit when building but explicit after parsing.
* storage: Test reverse-ordered queriesKim Alvefur2021-02-011-0/+22
|
* mod_mam: Remove obsolete queryid attribute from testsKim Alvefur2021-01-291-2/+2
|
* mod_http_file_share: Reject invalid file sizesKim Alvefur2021-01-271-0/+13
|
* mod_http_file_share: Add file type filterKim Alvefur2021-01-262-0/+14
| | | | | Unlike mod_http_upload, this can't be bypassed by uploading with a different file extension.
* mod_http_file_share: Add file size limit (default 10M)Kim Alvefur2021-01-262-0/+17
|
* mod_http_file_share: Validate that filename does not contain '/'Kim Alvefur2021-01-261-0/+13
|
* mod_http_file_share: Let's write another XEP-0363 implementationKim Alvefur2021-01-262-0/+28
| | | | | | | | | | This variant is meant to improve upon mod_http_upload in some ways: * Handle files much of arbitrary size efficiently * Allow GET and PUT URLs to be different * Remember Content-Type sent by client * Avoid dependency on mod_http_files * Built-in way to delegate storage to another httpd
* util.interpolation: Add test for #1623Kim Alvefur2021-01-251-0/+5
|
* mod_mam: Workaround scansion test flakynessKim Alvefur2021-01-131-12/+2
| | | | The empty ID fields are sometimes accepted, sometimes not.
* storage tests: Add test for querying a set of IDsKim Alvefur2021-01-121-0/+24
|
* storage tests: Test querys with both before and after IDsKim Alvefur2021-01-121-0/+21
| | | | Needed for extended MAM, supported by SQL storage already.
* mod_mam: Implement extended MAM metadata queryKim Alvefur2020-11-301-0/+14
|
* mod_mam: Add support for page flippingKim Alvefur2020-11-301-0/+44
| | | | | This was easy. Needs tests tho, 100% chance of the logic being backwards.
* mod_mam: Advertise extended MAM 0.7.x behind a feature flagKim Alvefur2020-11-301-0/+78
| | | | | | | In order to ease testing until the extended feautres are all implemented. Also TODOs for all the sub-features.
* scansion: Allow specifying a logfile for prosody via environmentKim Alvefur2021-01-051-1/+1
| | | | This should allow Buildbot to pick up those logs along with scansions
* MUC: Reject probes from non-occupantsJC Brand2020-10-021-1/+64
| | | | Also test for self-probes
* MUC: Add support for presence probes (fixes #1535)JC Brand2020-04-191-0/+115
| | | | | | | | | | | The following patch allows Prosody to respond to `probe` presences and send out the probed occupant's current presence. This is based on line 17.3 in XEP-0045: A MUC service MAY handle presence probes sent to the room JID <room@service> or an occupant JID <room@service/nick> (e.g, these might be sent by an occupant's home server to determine if the room is still online or to synchronize presence information if the user or the user's server has gone offline temporarily or has started sharing presence again, as for instance when Stanza Interception and Filtering Technology (XEP-0273) is used).
* util.error: Add coerce and wrap methods to registry(?) objectsMatthew Wild2020-12-091-0/+70
|
* Merge 0.11->trunkKim Alvefur2020-11-111-0/+1
|\
| * util.stanza: Reject ASCII control characters (fixes #1606)Kim Alvefur2020-11-111-0/+1
| |
* | util_paths_spec: Trim trailing white spaceKim Alvefur2020-10-171-1/+1
| | | | | | | | And add spacing between describe() blocks
* | util.paths: Add some testsKim Alvefur2020-10-171-0/+39
| |
* | Merge 0.11->trunkMatthew Wild2020-10-161-0/+93
|\|
| * util.debug: Fix locals being reported under wrong stack frame in some cases ↵Matthew Wild2020-10-161-0/+93
| | | | | | | | (+tests!!)
* | Merge 0.11->trunkKim Alvefur2020-10-151-0/+41
|\|