Commit Graph

652 Commits

Author SHA1 Message Date
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
7d408ddb6e Fix flaky browser test 2025-09-05 00:24:53 +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
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
8be7e1bfcf PHP 8.5: Remove setAccessible() calls, they are no-op sine 8.1 2025-08-09 07:18:15 +02:00
Aleksander Machniak
a0d0f5e72e Fix parsing of inline styles that aren't well-formatted (#9948) 2025-08-03 11:28:53 +02:00
Aleksander Machniak
70e4e86148 Support IPv6 in database DSN (#9937) 2025-07-25 18:55:21 +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 2025-07-07 17:55:52 +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
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
Pablo Zmdl
c069be5897 Validate URL parameter in upload code (#9865) 2025-06-01 09:17:23 +02:00
Aleksander Machniak
c396e79aae - Fix connecting to LDAP using ldapi:// URI (#8990) 2025-05-25 09:40:50 +02:00
Aleksander Machniak
a0849d7d53 Improve link matching pattern in the string replacer 2025-05-25 08:43:28 +02:00
Aleksander Machniak
9a7aa231aa Fix new phpstan errors 2025-04-29 15:43:50 +02:00
Aleksander Machniak
ab08ade64a Use object-oriented style of Fileinfo functionality
finfo_close() is rudundant since PHP 8.1 and might get deprecated in PHP 8.5
2025-04-23 15:45:05 +02:00
Aleksander Machniak
640ab6d0ea Fix phpstan issue 2025-04-21 14:32:55 +02:00
Aleksander Machniak
8208b9f87d Fix bug in handling rcmail::format_date()'s $convert argument (#9666) 2025-04-21 12:28:14 +02:00
Aleksander Machniak
093231905d Tests: Cleanup/refactor around HTTP client mocking 2025-04-06 14:54:20 +02:00
Aleksander Machniak
f9fc356dff More tests for static.php 2025-04-05 15:56:18 +02:00
Aleksander Machniak
22884d5da1 Tests: Rise PHP server process startup time 2025-04-05 13:41:40 +02:00
Aleksander Machniak
5fab389625 Add (incomplete) tests for static.php and installer.php 2025-04-05 13:31:04 +02:00
Aleksander Machniak
09a1c86079 Fix phpunit.xml 2025-03-16 16:52:13 +01:00
Aleksander Machniak
dc9f6943a4 Bump minimum phpunit version to v10 2025-03-16 16:20:47 +01:00
Aleksander Machniak
344260db89 Bump laravel/dusk version 2025-03-16 13:46:29 +01:00
Aleksander Machniak
94fd5a0f80 CS fixes (for the new fixer version rules) 2025-02-23 11:51:27 +01:00
Aleksander Machniak
781f006ed2 Fix PHP warning 2025-02-16 14:16:35 +01:00
Aleksander Machniak
44f0ac5b00 Fix folder list sorting when using personal namespace prefix of INBOX/ (#9452) 2025-02-16 12:40:37 +01:00
Aleksander Machniak
64df318a73 Add static files server (#9294)
Make use of public_html mandatory
2025-02-09 14:10:50 +01:00
Pablo Zmdl
752b152a23 Check if attachment is actually(!) referred to (#9585)
* Check if "inline" msg part is actually referred to

If there's no reference to it in a sibling HTML part then we handle it
as a classic attachment (which is shown as downloadable).

* Fetch all msg headers also for images to always get Content-Location

Previously all headers were only fetched for message/rfc822, or
if the Content-Type's "name" parameter was set, or if a Content-ID was
set.
The RFC doesn't require neither the "name" parameter nor a Content-ID
for using Content-Location, though, so we shouldn't depend on those.

Instead now all headers are also fetched if the main part of the
Content-Type is "image", to catch more cases.

* Parse HTML for references only on demand

* Typos and comment formatting

* Don't skip test anymore

We want it tested!

* More MR tests with images

* Remove early special handling for "inline" images

We decide later, which attachment is considered "inline" and which
isn't.

* Remove early resolving of references in TNEF parts

* Testing message rendering of TNEF emails

* Don't use image disposition, it's unreliable

* Split adding raw parts and attachments

* Fix renaming variable

* Rename file to make its test be run

* Remove outdated script

* Annotate test cases with GitHub issue numbers

* Fix test case class name

* remove comment

* Test inline image message rendering

* Rename test file to reflect cases better

* Reduce image used in test email

It doesn't change much, but there's also no sense in decoding big images
that we don't use.

* Remove unused variable initialisation
2025-02-09 09:56:43 +01:00
Aleksander Machniak
41eaff2839 Fix decoding of attachment names encoded using both RFC2231 and RFC2047 standards (#9725) 2025-02-02 13:58:39 +01:00
Pablo Zmdl
d877302e50 Fix displaying message/rfc822 parts (#9753)
* Fix displaying message/rfc822 parts

The previous code contained a simple error that assigned the body part
to the $headers variable (which then couldn't be parsed and got
discarded).

* Test rendering of attached message/rfc822 parts
2025-01-15 18:27:05 +01:00
Pablo Zmdl
c8e4a029aa Merge branch 'master' into list-loading 2025-01-03 16:39:01 +01:00
PhilW
e4d952f814 wait for list to load in Browser\Contacts\ExportTest::testExportSelected test 2025-01-03 14:55:33 +00:00
Aleksander Machniak
4bde475ea1 Fix handling of binary mail parts (e.g. PDF) encoded with quoted-printable (#9728) 2025-01-01 13:27:30 +01:00
Pablo Zmdl
46d25161dc Test message rendering (#9460) 2024-12-19 19:01:25 +01:00
Michael Voříšek
efcdce84ba Keep phpstan strict rules testing (#9424)
* Revert "Get rid of phpstan/phpstan-strict-rules"

This reverts commit ff59ade31a.

* drop phpstan baseline

* fix foreach phpstan issue

* adjust for rebase

* fix method call case

* ignore one phpstan error even after isset
2024-11-20 08:13:16 +01:00
Pablo Zmdl
06c5e019b7 Test config option rule: null -> hardcoded default, false -> disabled (#9684) 2024-11-05 19:20:14 +01:00
Aleksander Machniak
d6a6d04e40 Fix test
On some systems (Fedora 40) `which unknown` outputs error string
2024-10-28 18:35:44 +01:00
Aleksander Machniak
b1e47a8fa5 Fix tests (#9682) 2024-10-28 18:30:51 +01:00
Pablo Zmdl
d31c536f24 Fix test by make sorting independent of locale and case (#9640)
* Install requited locale in container image

One of the IMAP tests curiuosly ran successfully on Github-runners, but
failed locally. This is the pre-condition for a fix.

* Explicitly require mandatory locale for test

This test works only if executed with LC_COLLATE=en_US

* Schedule to rebuild testrunner image each week
2024-09-19 06:53:20 +02:00
respiranto
6159ebeb02 vcard: Fix whitespace handling in line cont's (#9637)
* vcard: Fix whitespace handling in line cont's

Previously, multiple whitespace characters at the start of a
continuation line would all be dropped, instead of only the first one.

Also,
 - restrict line continuation characters to SPACE and TAB.

Note that, like before, this identifies the CR (`\r`) character with the
empty string, and thereby notably does not require a CRLF (`\r\n`)
sequence (which is mandated by RFCs 2426, 2425) for line termination
(i.e., `\n` suffices).

Fixes: Bug 1 of issue #9593.

* vcard: Add test for #9593/1

* Fix coding style
2024-09-18 13:26:43 +02:00
Pablo Zmdl
818df3b13f Fix downloading files in tests with new Chromiums (#9627)
* Fix downloading files in tests with new Chromiums

Newer versions of chromium apparently need these flags to download files
without prompting the user.

* Expose port to watch remote browser

This allows to watch the remote controlled browser in your browser at
<http://localhost:7900/?autoconnect=1&resize=scale&password=secret>
(you have to comment out the `--headless` argument in TestCase::driver()
before).
2024-09-05 14:32:09 +02:00
Aleksander Machniak
7c8968f4fe Use new HTML5 parser available on PHP >= 8.4 2024-09-01 15:27:35 +02:00
Aleksander Machniak
58721e3037 Fix regression where HTML messages were displayed unstyled (#9586) 2024-08-16 19:56:51 +02:00
Aleksander Machniak
53218006e1 Fix test 2024-08-08 15:09:38 +02:00
Aleksander Machniak
ec4b837783 Fix tests regression 2024-08-04 10:59:56 +02:00
Aleksander Machniak
825fb4fb58 Fix tests regression 2024-08-04 10:53:03 +02:00