Commit Graph

13480 Commits

Author SHA1 Message Date
Pablo Zmdl
9a1bb03954 Upload browser console on test failure 2025-09-24 10:51:42 +02:00
Pablo Zmdl
2f75ab4232 Fix uploading multiple screenshot artefacts 2025-09-24 10:51:02 +02:00
Philip Weir
ef3053198c markdownify remaining docs (#9955)
* markdownify remaining docs
[skip ci]

* add docs folder
[skip ci]

* update paths in makefile
[skip ci]

* futureproof docs cleanup

* revert makefile changes
2025-09-21 10:16:35 +02:00
Mathias Schneider
bdbfbd9074 Support early MIME types for S/MIME encrypted messages (#9973)
Co-authored-by: Mathias Schneider <thiesje@web.de>
2025-09-21 10:14:24 +02:00
Philip Weir
7fd9bf05e3 Only apply fix_path for href attrib in <link>s (#9943) 2025-09-18 07:36:36 +02:00
Pablo Zmdl
8eeedc0c8c Show homograph-warning-icon before email address, unify warning wording
This moves the warning icon that is triggered by the homograph check from the generic "notification area" (between
headers and body) to the header area, before the address that the warning is referring to.
The previous warning left it unclear which address was found to be problematic, which now is obvious.

Additionally there's now a test to check for these warnings to show up in the DOM.
2025-09-17 14:38:12 +02:00
Pablo Zmdl
f76cace186 Show full details with warning icon in case of phishing suspicion
Previously the display-name was stripped, but we should rather show it
so people can judge themselves. We insert a
warning icon with a help text to draw the attention to it.
2025-09-17 14:38:12 +02:00
Pablo Zmdl
600c420d26 Prepend group-names to display-name
This is not optimal handling, but the most appropriate one as long as we don't actually support groups in
addresss-lists. This way users can at least see the group's display-name. And we don't strip text that might be relevant
to spot abusive emails.

Previously group-names were just removed, which makes it harder to spot such abusive emails.
2025-09-17 14:38:12 +02:00
Pablo Zmdl
14c263c608 Also "wash" the name attribute of textarea and select 2025-09-17 14:37:45 +02:00
Pablo Zmdl
0c667c5859 Wash the name attribute also on more elements
It can pollute the document's namespace unless handled.
2025-09-17 14:37:45 +02:00
Oscar Di Manno
b7fb465486 fix: Sanitize filename on download (#9960)
* fix: Sanitize filename on download
* fix: filename encoding in the Content-Disposition header

This improves the handling of the filename* parameter in the Content-Disposition header. Now, the filename* parameter is only used when it differs from the fallback filename

* tests: Add test for the filename* parameter in Content-Disposition
2025-09-14 11:50:31 +02:00
Pablo Zmdl
a03221041e Run test with PHP 8.5-rc (#9970)
* Allow to inject composer arguments into testing scripts

* Run unit tests with PHP v8.5, too

* Run browser tests with PHP 8.5, too

* Depend on php-cs-fixer v3.8, which supports PHP v8.4

* Run code style checks in CI on PHP v8.4

* Check for vars being set and not null before using them as array keys

* Use generic tag name in container image build script

The script is meant for locally building images (the CI workflow runs
other code), so we now use localhost/ as namespace.

* Check that variable is usable before using it as array key

This includes proper type declarations for the method arguments and its return value.

* Ensure that the input to chr() is between 0 and 255.

* Require guzzle v7.10.0, which supports PHP 8.5

* Update phpunit a little to decide when to fail on deprecations

PHPUnit 10.5.47 and later know the flag `--do-not-fail-on-deprecation`, which allows us to make it not exit with code 1
in case of deprecations on the second run of the script. That second run uses the lowest valid dependencies, which might
contain deprecations when used with newer versions of PHP, but still are acceptable versions, and should not make our
tests fail.

* Run message rendering tests with PHP v8.4 and v8.5, too

* Check explicitly for null-ness

0 would be a valid value here.

* Replace chr() by mb_chr() and remove the workaround
2025-09-14 11:33:38 +02:00
Pablo Zmdl
6189a81815 Remove Internet Explorer from README (#9963)
We don't support it for future versions anymore.
2025-09-14 11:33:07 +02:00
Pablo Zmdl
b86a9b8221 For container-based testing allow to specify a testrunner image, and COMPOSER_ARGS 2025-09-09 16:52:01 +02:00
Pablo Zmdl
a52ccf6504 Note the password for watching the browser during tests 2025-09-09 16:52:01 +02:00
Pablo Zmdl
5cf1381924 Run tests via scripts to allow arguments; add eslint service
This way one can easily check only one directory:

$> docker compose -f .ci/compose.yaml run eslint plugins/myplugin
2025-09-09 16:52:01 +02:00
Pablo Zmdl
ed9e98cd88 Run some tests (optionally) on a copy of the current code
This way the test artifacts don't mess with the development state
2025-09-09 16:52:01 +02:00
Pablo Zmdl
92d7f8a2e1 Make targets to help with publishing releases 2025-09-09 16:51:10 +02:00
Pablo Zmdl
4ad50298d6 Use generic tag name in container image build script
The script is meant for locally building images (the CI workflow runs
other code), so we now use localhost/ as namespace.
2025-09-08 22:32:25 +02:00
Pablo Zmdl
0a370a2f56 Build testrunner images for php v8.4 and 8.5-rc, too 2025-09-08 22:32:25 +02:00
Pablo Zmdl
7d408ddb6e Fix flaky browser test 2025-09-05 00:24:53 +02:00
Aleksander Machniak
05d39bc406 Fix PHP Fatal error: Uncaught TypeError: html::quote(): Argument #1 ($str) must be of type string, null given (#9957) 2025-08-23 09:17:59 +02:00
Aleksander Machniak
c75f1b7e86 Tests: Attempt to fix a flaky browser test 2025-08-15 13:59:53 +02:00
Aleksander Machniak
6674533b3f PHP 8.5: Remove redundant setAccessible() calls 2025-08-15 13:23:53 +02:00
Aleksander Machniak
3139bff247 CS-Fixer: Enable modernize_strpos 2025-08-15 13:20:24 +02:00
Michael Voříšek
026eb8c801 Enforce leading backslash for non-namespaced non-Roundcube uses (#9935) 2025-08-15 10:27:00 +02:00
Aleksander Machniak
2c3b46c1f2 Fix regression in handling of non-unicode characters in a plain text message (#9953) 2025-08-13 19:41:18 +02:00
Aleksander Machniak
eff91a93ca Update changelog
[skip ci]
2025-08-10 10:51:47 +02:00
Philip Weir
b9d4fdfadf Use htmleditor config for indentity signature (#9954) 2025-08-10 10:50:42 +02:00
Aleksander Machniak
464e809766 PHP 8.5: Replace __(sleep|wakeup) with __(serialize|unserialize) 2025-08-09 08:07:55 +02:00
Aleksander Machniak
8be7e1bfcf PHP 8.5: Remove setAccessible() calls, they are no-op sine 8.1 2025-08-09 07:18:15 +02:00
Aleksander Machniak
31c6090777 PHP 8.5: Remove deprecated imagedestroy() use 2025-08-09 07:07:05 +02:00
Aleksander Machniak
a0d0f5e72e Fix parsing of inline styles that aren't well-formatted (#9948) 2025-08-03 11:28:53 +02:00
roumano
6bd729b2f2 Fix typo in defaults.inc.php (replace mmust with must) (#9934)
[skip ci]
2025-07-26 16:08:26 +02:00
Philip Weir
18345fca73 Use asset_url() instead of get_skin_file() for deleteicon on contact edit form (#9933) 2025-07-26 16:07:56 +02:00
Aleksander Machniak
70e4e86148 Support IPv6 in database DSN (#9937) 2025-07-25 18:55:21 +02:00
Aleksander Machniak
55000023ce Localization: Remove non-working links to Transifex 2025-07-20 13:40:08 +02:00
Aleksander Machniak
d3f86b1235 Update localization from Transifex 2025-07-20 13:28:43 +02:00
Pablo Zmdl
8f7cc42fd6 Mark release 1.7-beta in the changelog (#9931)
[skip ci]
2025-07-15 17:45:58 +02:00
Pablo Zmdl
8120c9b60e Make target to remove untracked minified .js and .css files
This is handy during development.
2025-07-15 17:08:32 +02:00
Pablo Zmdl
b807902b74 Include node_modules/.bin into PATH to ensure uglify etc. are found
Previously, e.g. during `make`ing a release npm-commands like uglify were not found unless they were installed globally.
2025-07-15 17:08:32 +02:00
Aleksander Machniak
c9270783c0 CS/PHPDoc fix 2025-07-13 13:37:51 +02:00
Aleksander Machniak
060fc95672 PHP 8.5 compat. fixes 2025-07-13 13:17:30 +02:00
Aleksander Machniak
ba60aa8637 CS fixes in tests 1.7-beta 2025-07-07 17:55:52 +02:00
Aleksander Machniak
199f203e83 Fix PHP deprecation warnings when handling an invalid BODYSTRUCTURE (#9896) 2025-07-05 15:28:00 +02:00
Aleksander Machniak
7be1c23b7a Update changelog
[skip ci]
2025-06-23 08:49:57 +02:00
Philip Weir
1e95cf3b9e Stub out 2 more contact searching tests (#9903)
* remove unused, duplicate, test

* stub out contact advanced search

* stub out contact saved search test

* test std vs adv search response
2025-06-23 07:23:41 +02:00
Aleksander Machniak
74d4da6503 Enigma: Fix PHP warning (#9897), PHPDoc improvements 2025-06-19 18:18:01 +02:00
Aleksander Machniak
d12aa395b8 Update changelog
[skip ci]
2025-06-19 17:04:29 +02:00
Pablo Zmdl
5cab1c5b1d Render text/markdown mimeparts as HTML (#9899)
This implements rendering mime-types with content-type 'text/markdown'
and 'text/x-markdown' into HTML in the preview and show views (if not
"dispositioned" as "attachment"), but not in the get view for attached
files (the one opening attachments in an external window.)
2025-06-19 17:01:09 +02:00