User tests: Successful: Unsuccessful:
Fixing all Joomla backend PHP notices from Cypress test file api/com_media/Files.cy.js
and doing some refactoring.
Fixed PHP notices are:
[Sat Feb 22 18:28:44.019593 2025] [php:notice] [pid 31:tid 31] [client 10.0.0.1:64714] PHP Notice: exif_imagetype(): Error reading from /var/www/html/files/test-image-1.jpg! in /var/www/html/libraries/src/Helper/MediaHelper.php on line 93
[Sat Feb 22 18:28:44.022074 2025] [php:notice] [pid 31:tid 31] [client 10.0.0.1:64714] PHP Notice: getimagesize(): Error reading from /var/www/html/files/test-image-1.jpg! in /var/www/html/libraries/src/Image/Image.php on line 177
[Sat Feb 22 18:28:44.258619 2025] [php:notice] [pid 31:tid 31] [client 10.0.0.1:64714] PHP Notice: exif_imagetype(): Error reading from /var/www/html/files/test-dir/test-image-1-subfolder.jpg! in /var/www/html/libraries/src/Helper/MediaHelper.php on line 93
[Sat Feb 22 18:28:44.259092 2025] [php:notice] [pid 31:tid 31] [client 10.0.0.1:64714] PHP Notice: getimagesize(): Error reading from /var/www/html/files/test-dir/test-image-1-subfolder.jpg! in /var/www/html/libraries/src/Image/Image.php on line 177
[Sat Feb 22 18:28:47.177357 2025] [php:notice] [pid 31:tid 31] [client 10.0.0.1:64714] PHP Notice: exif_imagetype(): Error reading from /var/www/html/files/test-dir/todelete.jpg! in /var/www/html/libraries/src/Helper/MediaHelper.php on line 93
[Sat Feb 22 18:28:47.178099 2025] [php:notice] [pid 31:tid 31] [client 10.0.0.1:64714] PHP Notice: getimagesize(): Error reading from /var/www/html/files/test-dir/todelete.jpg! in /var/www/html/libraries/src/Image/Image.php on line 177
[Sat Feb 22 18:28:47.564807 2025] [php:notice] [pid 31:tid 31] [client 10.0.0.1:64714] PHP Notice: exif_imagetype(): Error reading from /var/www/html/images/test-dir/todelete.jpg! in /var/www/html/libraries/src/Helper/MediaHelper.php on line 93
[Sat Feb 22 18:28:47.565288 2025] [php:notice] [pid 31:tid 31] [client 10.0.0.1:64714] PHP Notice: getimagesize(): Error reading from /var/www/html/images/test-dir/todelete.jpg! in /var/www/html/libraries/src/Image/Image.php on line 177
All 8 x PHP notices are fixed. Instead of using 1-Byte files, real images are used from Cypress fixtures. Please consider there are still 4 x PHP warning to be fixed (I assume they need to be fixed in PHP API backend code) from api/com_media/Files.cy.js
and more warnings and notices are in the overall Joomla System Tests.
And all overwrite files are now created with explicit read-write 0o666, as the default 0o444 creates read-only files, leading to PHP Warnings Failed to open
:
[Tue Feb 25 15:40:25.066140 2025] [php:warn] [pid 19962] [client 127.0.0.1:50234] PHP Warning: file_put_contents(/home/hlu/Desktop/joomla-cms/files/test-dir/override.jpg): Failed to open stream: Permission denied in /home/hlu/Desktop/joomla-cms/libraries/vendor/joomla/filesystem/src/File.php on line 265
Some refactoring:
tests/System/data/com_media
, 2 are not used and Cypress default is to use fixtures
foldertest-dir
was named test-dir2
to distinguish clearly.afterEach()
is reduced to after()
, as it is only a clean-up and not needed to execute the tests.beforeEach
the files are restored before each test.In an Joomla System Tests env run
npx cypress run --spec tests/System/integration/api/com_media/Files.cy.js
Before the patch you see the 8 notices in PHP backend (e.g. on macOS brew installed Apache in file /usr/local/var/log/httpd/error_log
).
Note: JBT >= 2.1.21 shows the PHP backend error, warning and notice
After installing the PR the notice messages and the overwrite warning messages are gone and the Joomla System Test is still running w/o errors.
Please select:
Documentation link for docs.joomla.org:
No documentation changes for docs.joomla.org needed
Pull Request link for manual.joomla.org:
No documentation changes for manual.joomla.org needed
Status | New | ⇒ | Pending |
Category | ⇒ | Unit Tests JavaScript |
Labels |
Added:
Unit/System Tests
PR-5.3-dev
|
I have tested this item π΄ unsuccessfully on acf4f58
Can you explain why you changed the folder to fixtures?
i've got similar result as @brianteeman
i guess some windows filesystem issue ?
i guess some windows filesystem issue ?
check your php error logs you will see the faulty path in full
I can confirm the ENOENT: no such file or directory
problem on Windows, have a fix and see one more small new problem with file override.jpg
on Ubuntu and Windows, as it is created read-only:
[Tue Feb 25 15:40:25.066140 2025] [php:warn] [pid 19962] [client 127.0.0.1:50234] PHP Warning: file_put_contents(/home/hlu/Desktop/joomla-cms/files/test-dir/override.jpg): Failed to open stream: Permission denied in /home/hlu/Desktop/joomla-cms/libraries/vendor/joomla/filesystem/src/File.php on line 265
I'm in getting it to work in Windows, Ubuntu, macOS and Docker Debian. I want to test all platforms first ...
Can you explain why you changed the folder to fixtures?
The fixtures
folder is the default in Cypress and is configured via the fixturesFolder
setting in the Cypress config. As I did a bit of refactoring and the two PNG images were not in use, I moved the remaining JPG to fixtures. I would also recommend (and plan to) move the last file, data/com_newsfeed/joomla.org.xml
, to fixtures/com_newsfeed
, which would remove the data
folder entirely. ok?
Fixed the Windows path problem and additional the problem with overwrite files created read-only. Tested successfully on:
@brianteeman and @alikon Could you please retest?
@muhme Remember yourself, always if something file-system based is changed, you have to test on all platforms! π
I have tested this item β successfully on 92ee23f
I have tested this item β
successfully on 92ee23f
on windows 11
Status | Pending | ⇒ | Ready to Commit |
RTC
Labels |
Added:
RTC
|
Status | Ready to Commit | ⇒ | Fixed in Code Base |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2025-02-28 07:17:05 |
Closed_By | ⇒ | laoneo |
Thanks!