RTC Unit/System Tests PR-5.3-dev Pending

User tests: Successful: Unsuccessful:

avatar muhme
muhme
22 Feb 2025

Summary of Changes

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:

  • Deleted 3 images in tests/System/data/com_media, 2 are not used and Cypress default is to use fixtures folder
  • The image file names are counted through and the images show name and path in different colors.
  • Second test-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.
  • The last 4 tests can use the prepared files too, as with beforeEach the files are restored before each test.

Testing Instructions

In an Joomla System Tests env run

npx cypress run --spec tests/System/integration/api/com_media/Files.cy.js

Actual result BEFORE applying this Pull Request

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

Expected result AFTER applying this Pull Request

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.

Link to documentations

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

avatar muhme muhme - open - 22 Feb 2025
avatar muhme muhme - change - 22 Feb 2025
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 22 Feb 2025
Category Unit Tests JavaScript
avatar muhme muhme - change - 23 Feb 2025
Labels Added: Unit/System Tests PR-5.3-dev
avatar brianteeman
brianteeman - comment - 24 Feb 2025
CypressError: `cy.task('copyRelativeFile')` failed with the following error:

> ENOENT: no such file or directory, copyfile 'D:\repos\D:\repos\j51\tests\System\fixtures\com_media\test-image-1.jpg' -> 'D:\repos\j51\files\test-image-1.jpg'
avatar brianteeman brianteeman - test_item - 24 Feb 2025 - Tested unsuccessfully
avatar brianteeman
brianteeman - comment - 24 Feb 2025

I have tested this item πŸ”΄ unsuccessfully on acf4f58


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44976.

avatar laoneo
laoneo - comment - 24 Feb 2025

Can you explain why you changed the folder to fixtures?

avatar alikon
alikon - comment - 24 Feb 2025

i've got similar result as @brianteeman
image

i guess some windows filesystem issue ?

avatar brianteeman
brianteeman - comment - 24 Feb 2025

i guess some windows filesystem issue ?

check your php error logs you will see the faulty path in full

avatar muhme
muhme - comment - 27 Feb 2025

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 ...

avatar muhme
muhme - comment - 27 Feb 2025

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?

avatar muhme muhme - change - 27 Feb 2025
The description was changed
avatar muhme muhme - edited - 27 Feb 2025
avatar muhme
muhme - comment - 27 Feb 2025

Fixed the Windows path problem and additional the problem with overwrite files created read-only. Tested successfully on:

  • macOS 15.3.1 Intel
  • macOS 15.3.1 Apple Silicon
  • Windows 11 24H2
  • Ubuntu 24.04
  • Docker based Debian 11

@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! 😠

avatar brianteeman brianteeman - test_item - 27 Feb 2025 - Tested successfully
avatar brianteeman
brianteeman - comment - 27 Feb 2025

I have tested this item βœ… successfully on 92ee23f


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44976.

avatar alikon alikon - test_item - 27 Feb 2025 - Tested successfully
avatar alikon
alikon - comment - 27 Feb 2025

I have tested this item βœ… successfully on 92ee23f

on windows 11


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44976.

avatar alikon alikon - change - 27 Feb 2025
Status Pending Ready to Commit
avatar alikon
alikon - comment - 27 Feb 2025

RTC


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44976.

avatar rdeutz rdeutz - change - 27 Feb 2025
Labels Added: RTC
avatar laoneo laoneo - change - 28 Feb 2025
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
avatar laoneo laoneo - close - 28 Feb 2025
avatar laoneo laoneo - merge - 28 Feb 2025
avatar laoneo
laoneo - comment - 28 Feb 2025

Thanks!

Add a Comment

Login with GitHub to post a comment