Commit Graph

60 Commits

Author SHA1 Message Date
Srdjan
5813741877 MDL-75372 core: url_blocked event
Triggered with check_securityhelper_blocklist(). The event is
also emitting a debugging() message.
2023-05-09 14:11:50 +10:00
Laurent David
4281b6e859 MDL-70976 core_files: Allow for draft files url inserted in content
* The file file_remove_editor_orphaned_files should take into account URL that
have been embedded in a tag content instead of an attribute (like src attribute)
* This will fix issue with inserting H5P content in calendar events.
2023-03-29 09:09:56 +02:00
Jun Pataleta
7b410fbe2b Merge branch 'MDL-75231-master' of https://github.com/lameze/moodle 2022-09-06 23:49:34 +08:00
Eloy Lafuente (stronk7)
83b490a594 MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.

Special mention to:

- The following task tests have been moved within the level2 directory:
  - \core\adhoc_task_test => \core\task\adhoc_task_test
  - \core\scheduled_task_test => \core\task\scheduled_task_test
  - \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
  - \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
  - \core\task_database_logger_test => \core\task\database_logger_test
  - \core\task_logging_test => \core\task\logging_test

- The following event tests have been moved within level2 directory:
  - \core\event_context_locked_test => \core\event\context_locked_test
  - \core\event_deprecated_test => \core\event\deprecated_test
  - \core\event_grade_deleted_test => \core\event\grade_deleted_test
  - \core\event_profile_field_test => \core\event\profile_field_test
  - \core\event_unknown_logged_test => \core\event\unknown_logged_test
  - \core\event_user_graded_test => \core\event\user_graded_test
  - \core\event_user_password_updated_test => \core\event\user_password_updated_test

- The following output tests have been moved within level2 directory:
  - \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
  - \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
  - \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test

- The following tests have been moved to their correct tests directories:
  - lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php

- All the classes and tests under lib/filebrowser and lib/filestorage
  belong to core, not to core_files. Some day we should move
  them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
  to core_grades. Some day we should move them to their correct
  subsystem.
- The core_grades_external class and its \core\grades_external_test
  unit test should belong to the grades subsystem or, alternatively,
  to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
  unit test should belong to the grading subsystem or, alternatively,
  to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
  classes, and their associated tests should go to the core_message
  subsystem.
- The core_user class, and its associated tests should go to the
  core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
  and needs action 1) create it or 2) move elsewhere.
2022-08-26 16:34:20 +02:00
Simey Lameze
8f078a2911 MDL-75231 files: make bucket calculations more precise
This commit changes changes the unit test calculations to
keep track of the time the bucket starts/finishes bursting
and use milliseconds instead of seconds to have a precise
time to sleep.
2022-08-22 13:51:07 +08:00
Christina Thee Roperto
de07d85f23 MDL-72349 filelib: update strip_double_headers function 2022-07-19 19:19:46 +10:00
Frode Petterson
080105c6d3 MDL-73588 curl: Fix expected CURLOPT_FILE behavior
After cbf9dfb the CURLOPT_FILE no longer behaves as expected. All
redirect responses are appended to the same stream resource.  This fix
reverts back to the old behavior by setting the stream pointer back to
the beginning for each subsequent redirect.
2022-01-24 17:08:25 +01:00
Tim Hunt
e756c7f73d MDL-72254 filesapi: reject itemid=false in file_save_draft_area_files
This should never happen, and if it does, it causes many files to be deleted.
2021-07-29 12:12:05 +01:00
Michael Hawkins
1d7c563f79 MDL-72203 curl: Improve redirect unit testing and update upgrade.txt
lib/upgrade.txt was updated to reflect the fact that all cURL redirects
will be emulated.
2021-07-27 22:39:44 +08:00
David Mudrák
6b558e9be8 MDL-72203 curl: Remove duplicate unit tests for emulated redirects
Before, we had each redirect test duplicated: one for the native
redirects via native cURL, second for our emulated implementation. Now
all redirects are always emulated so there is no need to have them
tested twice.
2021-07-27 21:30:16 +08:00
Shamim Rezaie
9c11ceac1f MDL-69028 repository: Put a rate limit on draft file uploads 2021-05-04 17:23:11 +02:00
Eloy Lafuente (stronk7)
ba5b6089d5 MDL-71036 phpunit: Renamed various regexp-related assertions
In PHPUnit 9.1, the following regexp-related assertions
have been deprecated and there are new alternatives for
all them:
    - assertRegExp()     -> assertMatchesRegularExpression()
    - assertNotRegExp()  -> assertDoesNotMatchRegularExpression()

This is about to, simply, move all cases to the new alternatives.

Source: https://github.com/sebastianbergmann/phpunit/blob/9.1.0/ChangeLog-9.1.md

Regexp to find all them:

    ag 'assertRegExp|assertNotRegExp' -li
2021-03-11 19:22:24 +01:00
Eloy Lafuente (stronk7)
40de097e65 MDL-67673 phpunit: Remove deprecated assertContains() uses on strings
Both assertContains() and assertNotContains() are deprecated in PHPUnit 8
for operations on strings. Also the optional case parameter is. All uses
must be changed to one of:

- assertStringContainsString()
- assertStringContainsStringIgnoringCase()
- assertStringNotContainsString()
- assertStringNotContainsStringIgnoringCase()

More info: https://github.com/sebastianbergmann/phpunit/issues/3422

Regexp to find all uses:

ag 'assert(Not)?Contains\('
2020-10-21 12:46:00 +02:00
Brendan Heywood
3bc082dd07 MDL-66166 core_useragent: Update MoodleBot UA and treat as web crawler 2019-09-30 23:30:20 +10:00
Juan Leyva
418a86c660 MDL-66468 file: Return text content when using IGNORE_FILE_MERGE 2019-08-22 13:10:39 +01:00
Juan Leyva
26e778d1b7 MDL-60680 file: Support any user id when creating tokens for files.
$includetoken parameter type has been changed. Now supports:
   boolean: False indicates to not include the token, true indicates to generate a token for the current user ($USER).
   integer: Indicates to generate a token for the user whose id is the integer value.
2019-04-23 13:16:15 +02:00
Juan Leyva
e0695f8764 MDL-64658 files: Support constant to avoid file merging
... in file_save_draft_area_files
2019-03-25 14:57:18 +01:00
Andrew Nicols
91f1f28233 MDL-36754 core_files: Support tokens when rewriting text
Support use of a token for access to pluginfile.php when rewriting text
content.

This is primarily intended for notifications where the user is unlikely
to be logged into Moodle when receiving the notification.
2018-08-14 06:57:32 +08:00
Jun Pataleta
c353ad20c3 MDL-45170 core: Integration review fixes
* Pass $forcehttps parameter to call extract_draft_file_urls_from_text()
 call in \core_weblib_testcase::test_extract_draft_file_urls_from_text()
* Style fixes
2018-08-08 16:17:32 +08:00
Charles Fulton
7d7d3b1731 MDL-45170 files: check other draftfile areas when processing 2018-08-08 16:15:23 +08:00
Adrian Greeve
f38766e166 MDL-62849 files lib: Add method to return all files.
Added a function which returns all the files from all directories
in the draftarea.
2018-07-17 10:25:11 +08:00
Eloy Lafuente (stronk7)
6663f615ed Merge branch 'wip-MDL-60161-master-test' of git://github.com/abgreeve/moodle 2017-12-18 16:09:51 +01:00
Adrian Greeve
c86189ae02 MDL-52100 filelib: Update to unit tests for maxbytes. 2017-12-18 13:12:22 +08:00
Adrian Greeve
01957f1a69 MDL-60161 filelib: Unit test for duplicate curl headers. 2017-12-13 11:07:58 +08:00
Matt Clarkson
b1eb6dd7f2 MDL-33174 lib/filestorage: Add filename to curl request
While the lack of the filename in curl POST does not
directly affect Moodle, some external API's expect to get
the filename of the original file, which affects plugins
using the CURL class.
2017-10-02 09:27:51 +13:00
Jake Dallimore
f3c2afd0e8 MDL-36985 core_files: added option to remove draft files on save
text areas can now specify $options['removeorphaneddrafts'] when saving
their data using file_postupdate_standard_editor(). If set to true,
this option clears all user drafts which are not referenced in the text
2017-08-22 13:15:30 +08:00
Juan Leyva
bef201c7e0 MDL-58712 core_user: Do not count the root directory 2017-06-22 16:09:58 +02:00
Juan Leyva
f74ac6e704 MDL-58712 core_user: New WS core_user_get_private_files_info 2017-06-15 09:40:30 +01:00
Juan Leyva
0237571004 MDL-58712 core_user: New function for retrieving file area info 2017-06-13 11:22:33 +01:00
Frederic Massart
e37c128686 MDL-57101 filter: Always set-up the page for filters 2016-11-29 12:36:28 +08:00
Jake Dallimore
605bab84ce MDL-48498 core_files: Add security helper to curl class
Allow injection of security_helper objects into curl, but default
to a core helper tied to http security settings values.
2016-11-08 15:11:15 +08:00
Rajesh Taneja
ce78e33a84 MDL-55174 core_tests: Use proper itemid while creating file 2016-07-18 10:29:23 +08:00
Juan Leyva
460897052e MDL-54869 files: Create new required functions
This was a complex change requiring three new functions:
file_merge_files_from_draft_area_into_filearea - To just add files from a draft area into a real one (just adding or updating, not deleting)
file_merge_draft_area_into_draft_area - To merge files from two draft areas, used by the latest for creating a draft area with all the original files plus the new ones.
file_overwrite_existing_draftfile - Required to update existing files not losing metadata or references.

The whole process is the following:

    User uploads a file (upload.php)
    Client gets a new draftid A containing the file only (return of upload.php)
    Client requests to merge that draftid in the user's private files (core_user_add_user_private_files)
    Server prepares a new UNUSED draftid B from existing area
    Server merges A into B
    Server saves the draft B into the final area
2016-07-05 09:01:34 +01:00
Juan Leyva
296ab1e253 MDL-53175 file: Allow file_rewrite_pluginfile_urls to reverse 2016-03-30 09:37:32 +01:00
Jun Pataleta
0c4c3b9aed MDL-44828 filelib: Fix open error for force-downloaded files in mobile
Allow guessing of file's MIME type by default. Fallback to
application/octet-stream if MIME type cannot be determined.
2015-08-14 09:54:20 +08:00
Eloy Lafuente (stronk7)
9a1adda585 MDL-49497 curl: keep api private and test it using reflection.
While strictly we should not be testing private APIs, in order
to get this backported to stables without changing visibility
we use reflection to access to such private properties and methods.

Also added one exttest to verify user agent is properly sent.

Finally, fix some wrong whitespace and changed the helper class name
to better alternative.
2015-06-23 17:20:20 +02:00
Dave Cooper
cbb7c6a905 MDL-49497 curl: Add configurable User-Agent unit tests. 2015-06-23 15:59:59 +02:00
Dan Poltawski
c67c00a6fe Merge branch 'MDL-42616-master' of https://github.com/sammarshallou/moodle 2014-12-22 12:13:31 +00:00
sam marshall
91fed57a4e MDL-42616 filelib: Use config value for custom MIME types (1/2)
Uses a new optional config variable to define custom MIME types
in JSON format. Includes new API for accessing and modifying
this data.
2014-12-19 14:48:59 +00:00
Frederic Massart
38a73bf4ae MDL-48495 curl: Limit usage of curl to HTTP and HTTPS protocols 2014-12-16 10:08:33 +00:00
Tim Hunt
90048c7cfa MDL-47646 CURL redirect unit test: handle broken servers 2014-10-13 15:52:04 +01:00
Frederic Massart
218d751d07 MDL-45132 curl: Unit Tests for file uploads 2014-04-16 17:29:22 +08:00
Dan Poltawski
7d374cdf4a Merge branch 'w01_MDL-43510_m27_test404' of https://github.com/skodak/moodle 2014-01-07 17:28:15 +08:00
Petr Škoda
b1652d6b85 MDL-43510 fix 404 unit test server incompatibility 2013-12-29 15:28:14 +08:00
Matteo Scaramuccia
c3a3f54053 MDL-40379 Files Prevent mobile network providers from modifying content. 2013-12-28 13:56:19 +01:00
Frederic Massart
74c4405b8a MDL-42951 curl: Re-organise Unit Tests in smaller chunks 2013-11-28 12:14:13 +08:00
Frederic Massart
102230b23c MDL-42951 curl: Always keep the last headers of a request 2013-11-28 12:00:42 +08:00
Frederic Massart
ba72e295c2 MDL-42985 curl: Correctly apply rule proxybypass 2013-11-21 09:56:54 +08:00
Petr Škoda
a9d2f1b414 MDL-41707 allow custom location of external test files used from unit tests 2013-09-27 10:47:56 +02:00
Petr Škoda
1d987cb7d8 MDL-39915 cleanup core_filelib_testcase 2013-07-27 18:26:32 +02:00