Aleksander Machniak
5fed86f57e
Cleanup
2025-02-23 11:22:35 +01:00
Pablo Zmdl
85094706f9
Docker compose for testing ( #9525 )
...
* More ignore-patterns in eslint config
So we don't have to specify them on the command line when we check
codestyle locally.
* Test setup for local and CI using containers
It uses standalone containers for the greenmail IMAP server and the
standalone browser.
A testrunner image is built in the CI (for `linux/amd64` only, because
Github doesn't support multi-platform building on their default
runners and we don't have our own.)
This setup helps to run the tests (reproduceably) also locally.
Previously, on my machine, they produced varying results.
It also reduces the dependencies for running the browser test.
Local execution only depends on `docker compose`, no other tools
(previously it required `sudo`, `java`, and some more.)
The previous solution should still work, if you want it.
The scripts are stored in a directory called `.ci` to hide them a little
and avoid confusion with the container images from the
`roundcubemail-docker` repo.
* Fix UI tests by waiting for element before using it
This only was a flaky problem only occurring sometimes.
* Force a new IMAP connection in plugin tests, too
In other code the initial connection is forced. Doing this here, too,
fixes occasional problems with lost imap connections.
* Make waiting for zipfile's content more robust
* CI: Run tests from script on Windows, too
* CI: Do start local chrome if no connect URL is given
* Move compose.yml to tests/
This way it's less easy mistaken as usable for running Roundcubemail in
production.
* Move compose.yml to .ci/
2024-07-22 11:44:09 +02:00
Aleksander Machniak
247b5c37d1
Update localizations
2024-07-02 19:07:54 +02:00
Michael Voříšek
f4272804d6
Rename test files for PHPUnit 10+ ( #9477 )
2024-06-05 07:46:51 +02:00
Michael Voříšek
6a5f9ee7ce
Add override method attributes ( #9272 )
2024-06-02 15:57:56 +02:00
Michael Voříšek
a30e0ad438
Infer file/line location in rcube::raise_error() from backtrace ( #9422 )
...
* \n\s+'file' => __FILE__,
* \n\s+'line' => __LINE__,
* 'line' => __LINE__, 'file' => __FILE__,
* 'file' => __FILE__, 'line' => __LINE__,
* rest
* more
* improve cs
* more cs
* revert rcube_utils::preg_error changes
* impl file/line from backtrace
* Revert "revert rcube_utils::preg_error changes"
2024-04-21 11:48:35 +02:00
Michael Voříšek
1e360999b2
Use composer autoloader for bundled plugins testing ( #9412 )
...
* use fixed "roundcube/plugin-installer"
* Use composer autoloader for plugins testing
* cherrypick remaining from 9241 related with testing
* minor legacy autoload improvements
2024-04-11 18:28:46 +02:00
Michael Voříšek
52d8172b0f
Allow composer autoloading (to coexist) ( #9407 )
...
* Replace custom loader in favor of composer native
* Load plugins using composer
* finish debug_logger plugin
* finish markasjunk plugin
* finish password plugin
* finish enigma plugin
* finish managesieve plugin
* fix ExtensionInstaller run on first install
* fix phpstan "Implicit array creation" in plugin config files
* simplify composer.json
* keep non-composer autoloading relying on include_path set in plugins
* update minimal "roundcube/plugin-installer" version
* "plugins.roundcube.net" root-only package repo is not needed
* REVERT ALL
* fix phpstan "Implicit array creation" in plugin config files
* update minimal "roundcube/plugin-installer" version
* reland composer.json changes
* fix ExtensionInstaller run on first install
* Roundcube (non plugin) tests are fine to rely on composer autoload
* fix CS of master
* not needed until strict composer autoloading
* improve comment
* revert rcmail_oauth change - fixed in plugin installer
* require fixed plugin installer
2024-04-10 12:27:43 +02:00
Michael Voříšek
b5a3fd646b
Fix "Implicit array creation" in plugin config files ( #9406 )
...
* fix phpstan "Implicit array creation" in plugin config files
* update minimal "roundcube/plugin-installer" version
2024-04-07 12:00:03 +02:00
Michael Voříšek
736795326c
Fix plugins composer.json format ( #9405 )
...
* Check plugins composer.json using CI
* Add "require-dev" and "config.allow-plugins" to plugins
* fix composer.json format - rm invalid email
* fix composer.json format - fix ext require
* fix composer.json format - fix plugin name
* tmp
* Revert "tmp"
* fix ext in ext install
* disable plugin in plugin install until Roundcube is fully autoloadable
* fix composer.json format - fix non-canonical license name
* Revert "Add "require-dev" and "config.allow-plugins" to plugins"
* no composer install for plugins needed
* Revert "fix ext in ext install"
* add standard "Test" suffix to phpunit files
* rm unneeded "suffix" in phpunit config
* simplify phpunit config
* fix default "xhtml" doctype in unit testing
* fix test_format_date test to not rely on other tests
* even more phpunit config simplify
* stricter/unify phpunit params for E2E tests
* run E2E tests on maximal php version too with lowest deps
* "repositories" in bundled plugins are useless as for root package only
* add/unify missing plugin test
2024-04-05 17:55:46 +02:00
Aleksander Machniak
4959abe07b
Fix regression, cleanup
2024-04-01 13:41:31 +02:00
Aleksander Machniak
02e49ed236
Fix phpstan errors
2024-03-10 18:37:52 +01:00
Michael Voříšek
332c165d28
Fix some basic JS CS ( #9328 )
...
* fix "nonblock-statement-body-position" (fixed already)
* fix "comma-dangle"
* fix "no-regex-spaces"
* fix "new-parens"
* fix "object-curly-newline"
* fix "object-property-newline"
* fix "spaced-comment" semimanually
* fix "no-constant-condition" manually
* fix "unicorn/no-hex-escape"
* fix "unicorn/escape-case"
* fix "quote-props"
* fix "no-whitespace-before-property" - fix bug/typo
* fix "unicorn/empty-brace-spaces"
* fix "keyword-spacing"
* fix "dot-notation"
* fix "no-return-assign" manually
* fix "padding-line-between-statements"
* fix "key-spacing"
* fix "no-else-return" semimanually
* fix some "no-undef"
* fix case cs
* Revert "fix "padding-line-between-statements""
* improve switch/case format I.
* improve switch/case format II.
regex: (^ *(break|return).*)\n *(\n)
* fix safe "eqeqeq"
* fix "radix"
* fix v3.49.0 CS (static providers)
* fix "string_implicit_backslashes" in php files
* fix comments align
* fix test static providers
* fix stan
* disable "final_internal_class" rule
2024-02-06 08:28:19 +01:00
Michael Voříšek
d18406a8bd
Fix binary operator spaces CS ( #9330 )
...
* align_single_space_minimal for assign
* assign operators grouping is not supported by PHP CS Fixer
* binary_operator_spaces = single_space
* fix anonymous function on single line
* align comments manually
2024-02-02 07:53:34 +01:00
Michael Voříšek
ecd2796622
Fix JS whitespace CS ( #9327 )
...
* fix "no-extra-semi"
* fix "object-curly-spacing"
* fix "block-spacing"
* fix "padded-blocks"
* fix "space-before-blocks"
* fix "space-before-function-paren"
* fix "operator-linebreak"
* fix "space-unary-ops"
* fix "space-infix-ops"
* fix most "brace-style"
* fix "curly"
* fix most "brace-style" II
* fix "no-multi-spaces"
* search regex: (?<=\n)( +)(?! ).*\n(?!\1)( +)(&&|\|\||\()
* search regex: (?<=\n)( +)(?! |\*/).*(?<!;)\n(?!\1)( +)(?! |\}|\]|\)|\.)
* fix mostly "brace-style" /w allowSingleLine: false
* fix cs
* search regex: (//|/\*).*\n\s+\{
2024-01-30 07:50:02 +01:00
Aleksander Machniak
a73a53c8ef
Replace deprecated methods use
2024-01-27 09:58:01 +01:00
Michael Voříšek
4ee79b9e84
fix "explicit_string_variable" ( #9315 )
2024-01-22 08:05:59 +01:00
Michael Voříšek
54f4aa33f9
Fix CS - imports ( #9316 )
...
* fix Tests\Browser\TestCase imports
* fix remaining imports
* fix PHPUnit\Framework\TestCase imports
* import GuzzleHttp\Client
* fix remaining
* "php_unit_method_casing" is not todo
* fix "single_line_comment_spacing"
* fix 2nd commit done using older fixer
2024-01-21 19:13:31 +01:00
Michael Voříšek
6a53a1d853
Fix CS (whitespace, visibility) ( #9297 )
...
* Fix "method_argument_space"
* Fix "control_structure_continuation_position"
* Fix "new_with_parentheses"
* Fix "blank_line_before_statement"
* Fix "visibility_required"
* Fix some "array_indentation"
* Fix some "array_indentation" - unify all "rcube::raise_error" calls
* rm useless eslint ignores and add rules counts
* sort eslint ignores
* fix eslint ignores grammar
* Revert "Fix "blank_line_before_statement""
* fix CS 3.46.0
2024-01-04 14:26:35 +01:00
Michael Voříšek
86eda9f7ed
Fix "increment_style" CS ( #9296 )
...
* Fix "increment_style" CS
* use "post" increment style
2024-01-01 12:23:21 +01:00
Michael Voříšek
2643be3eaa
Fix single quotes CS ( #9283 )
...
* Fix "single_quote"
* fix "escape_implicit_backslashes"
* fix typo from f363481c
* fix single quotes in JS
* fix some minor JS CS
* fix CS v3.45.0
2023-12-31 16:36:55 +01:00
Michael Voříšek
740267fac0
Lint JS files using eslint and normalize JS indentation ( #9280 )
...
* Lint JS using eslint
* Fix "comma-spacing"
* Fix "semi"
* Fix indent to unified 4 spaces as for PHP
* ignore symlinked public_html/* files
2023-12-23 17:08:32 +01:00
Michael Voříšek
3e458fa5fd
Refer native constants unambiguously ( #9275 )
...
* Fix "native_constant_invocation" CS
* "self_accessor" was fixed in 9269 PR
* "php_unit_strict" was fixed in 9268 PR
2023-12-23 17:02:19 +01:00
Michael Voříšek
a9167a0d2f
Fix "static_lambda" CS ( #9276 )
2023-12-20 20:01:00 +01:00
Michael Voříšek
28c778b7a0
Modernize more CS III ( #9270 )
...
* fix "single_trait_insert_per_statement"
* fix "empty_loop_condition"
* fix "backtick_to_shell_exec"
* fix "phpdoc_to_comment"
* fix "no_empty_statement"
* fix "heredoc_to_nowdoc"
* fix "class_reference_name_casing"
* fix "align_multiline_comment"
* fix "heredoc_indentation"
* fix "constant_case"
* fix "single_line_comment_style"
* fix "no_null_property_initialization"
* fix "standardize_increment"
* fix "no_unneeded_control_parentheses"
* fix missing NL after "<?php"
* fix php in *.sh files too
* fix trailing spaces from all text files
* fix "explicit_indirect_variable"
* Revert "fix "align_multiline_comment""
This reverts commit 42e584f8e3 .
* fix "align_multiline_comment" properly
* Revert "fix trailing spaces from all text files" - diff files only
* Revert "Revert "fix trailing spaces from all text files" - diff files only"
This reverts commit 2101c2a3a3 .
* rm useless "setup-php" config
2023-12-18 07:46:51 +01:00
Michael Voříšek
e7d7e62146
Modernize more basic CS II ( #9254 )
...
* fix "integer_literal_case"
* fix "phpdoc_separation"
* fix "phpdoc_var_without_name"
* fix "operator_linebreak"
* fix "no_alias_language_construct_call"
* fix "list_syntax"
* fix "concat_space"
* fix "array_syntax"
* fix "binary_operator_spaces"
* fix "binary_operator_spaces" relaxed
* fix "phpdoc_types_order"
* fix "phpdoc_trim"
* fix "native_type_declaration_casing"
* fix "method_chaining_indentation"
* fix "phpdoc_no_package"
* fix "elseif"
* fix PHP CS Fixer config itself too
* fix "native_type_declaration_casing"
2023-12-17 13:14:45 +01:00
Michael Voříšek
ca8b17d191
Modernize more basic CS ( #9258 )
...
* fix "yoda_style"
* fix "is_null"
* rm useless rule ignores
* add full "PhpCsFixer:risky" ruleset
* fix "implode_call"
* fix "no_alias_functions"
* fix "array_push"
* fix "long_to_shorthand_operator"
* fix "ternary_to_elvis_operator"
* fix "logical_operators"
* fix "fopen_flags"
* rename "returns" phpdoc tags to "return"
* fix "php_unit_construct"
* fix "function_to_constant"
* fix "php_unit_data_provider_return_type"
* fix "php_unit_set_up_tear_down_visibility"
* some safe "string_length_to_empty"
* fix "phpdoc_align"
* fix "phpdoc_no_alias_tag"
* fix "trailing_comma_in_multiline"
---------
Co-authored-by: Aleksander Machniak <alec@alec.pl >
2023-12-17 09:51:11 +01:00
Michael Voříšek
a8707ae220
Fix and assert basic CS using CI ( #9246 )
...
* Assert CS using CI
* fix "single_blank_line_at_eof"
* fix "statement_indentation"
* fix "switch_case_semicolon_to_colon"
* fix "control_structure_braces"
* fix "statement_indentation"
* fix "no_whitespace_in_blank_line"
* fix "no_trailing_whitespace_in_comment"
* fix "no_trailing_whitespace"
* fix "single_space_around_construct"
* fix "spaces_inside_parentheses"
* fix "ternary_operator_spaces"
* fix "trim_array_spaces"
* fix "whitespace_after_comma_in_array"
* fix "cast_spaces"
* fix "unary_operator_spaces"
* fix "no_trailing_comma_in_singleline"
* fix "ordered_imports"
* fix "no_unused_imports"
* Check composer.json format
* fix CI job name
* file header comments are not phpdoc
* fix "phpdoc_indent"
* fix "braces_position"
* fix "phpdoc_types"
* fix "no_blank_lines_after_class_opening"
* fix "no_multiple_statements_per_line"
* fix "multiline_comment_opening_closing"
* fix "single_line_empty_body"
* fix "non_printable_character"
* fix "phpdoc_trim_consecutive_blank_line_separation"
* fix "include"
* fix "no_mixed_echo_print"
---------
Co-authored-by: Aleksander Machniak <alec@alec.pl >
2023-12-16 15:37:43 +01:00
Michael Voříšek
5425d1a84a
Fix invalid phpdocs ( #9252 )
...
* fix missing return type in phpdoc
* fix "phpdoc_scalar"
* Fix phpdoc variable names typos
* fix wrong phpdoc tags
2023-12-10 16:20:50 +01:00
Aleksander Machniak
965fd90284
Browser Tests: The last attempt on mobile menu issues
...
If this does not work I give up. Tests work on my computer, but not on GA,
and I don't know really why.
2023-11-26 18:29:26 +01:00
Aleksander Machniak
863e5f848f
Add Uyghur localization, update localization
2023-02-04 09:48:49 +01:00
Aleksander Machniak
2e5a12b0ff
Update localization
2022-04-25 08:00:50 +02:00
Aleksander Machniak
b6e0d6263c
Moved the Larry skin to its own repository ( #8271 )
2021-11-27 14:08:47 +01:00
Aleksander Machniak
0843196a8b
Remove redundant code specific to the Classic skin
2021-11-14 11:09:07 +01:00
Aleksander Machniak
27f5fccaa7
Moved the Classic skin to its own repository ( #8271 )
...
https://github.com/roundcube/classic
2021-11-14 10:17:23 +01:00
Aleksander Machniak
92880251f4
Update localization
2021-10-29 10:20:14 +02:00
Aleksander Machniak
7a269a2b84
Replace get_input_value() with get_input_string() where appropriate
2021-09-13 19:31:49 +02:00
Aleksander Machniak
766189f524
Fix PHP 8.1 deprecation warnings
2021-07-31 08:38:47 +02:00
Aleksander Machniak
0d4a395464
Fix PHP 8.1 deprecation warnings
2021-07-31 07:53:14 +02:00
Aleksander Machniak
89e54718ca
Migration to PHPUnit v9
2021-07-25 11:07:56 +02:00
Aleksander Machniak
9e2bc40213
Dropped support for PHP < 7.3 ( #7976 )
2021-07-25 09:16:33 +02:00
Aleksander Machniak
e62c0a8f9b
Small code improvement, use array_first()
2021-05-31 12:42:57 +02:00
Aleksander Machniak
ae19d16a80
Update localization
2021-05-10 19:08:05 +02:00
Aleksander Machniak
ac8e067ae6
Use official GPL-3.0-or-later license identifier ( #7901 )
2021-02-24 15:39:36 +01:00
Aleksander Machniak
cdd65d91c0
Update localization
2021-02-09 09:47:15 +01:00
Aleksander Machniak
13e1455cd2
Bump PHP version requirement also for plugins
...
[skip ci]
2021-02-07 10:02:11 +01:00
Aleksander Machniak
d88cadf1f2
Fix a few E_NOTICE issues
2020-12-20 10:36:41 +01:00
Aleksander Machniak
3bbb01fe13
PHP8 fixes, regression fixes
2020-12-13 12:14:15 +01:00
Aleksander Machniak
ed146b68db
PHP8 fixes, CS fixes, short array syntax, tests
2020-12-10 20:27:32 +01:00
Aleksander Machniak
545a1569f1
Steps -> Actions refactoring ( #7688 )
...
* Move action handling code to rcmail class
* Add rcmail_action class
* Add action aliases
* Get rid of $OUTPUT global
* Move some methods from rcmail to rcmail_action
* PHP8 compat. fixes
* Add framework for testing actions
* Fix obvious code mistakes
2020-11-01 11:25:38 +01:00