Commit Graph

135 Commits

Author SHA1 Message Date
David Mudrák 7f67a96521 MDL-80221 lang: Use fixed strings in the tests, too 2023-12-01 06:27:36 +01:00
Mark Johnson b0bb97ee3b MDL-79213 groups: Add visibility checks in groups_get_members_join()
Group visibility was not taken into account when
generating SQL for getting enrolled users restricted
to a list of groups. This may have allowed users to
infer membership of groups they were not allowed to
see members of.
2023-10-04 01:24:20 +00:00
Paul Holden dae1dcc8ae MDL-78835 group: include custom fields in related report entities. 2023-08-28 13:55:59 +02:00
Ilya Tregubov ccaa0c7143 Merge branch 'MDL-67186_master_v2' of https://github.com/TomoTsuyuki/moodle 2023-08-28 15:20:47 +08:00
Paul Holden 33a63ca639 MDL-76295 reportbuilder: implement default datasource sorting.
Update all existing report sources to use the new default sorting
API from 064eccd4, updating existing tests to assert behaviour.
2023-08-23 15:32:50 +01:00
Tomo Tsuyuki d8a4cc9533 MDL-67186 group: add custom fields 2023-08-09 11:02:49 +10:00
Paul Holden 1125af7857 MDL-78587 course: use tertiary nav selector on participant pages. 2023-07-12 18:26:23 +01:00
Simey Lameze 2367bc9ff6 MDL-69231 behat: remaining work for role capability generator
This commit does few things:
* Unify data generators usage to role short name.
* Replace remaining manual steps to use the new data generator.
* Also replaced other manual steps to set config to use data generators.
* Tidy up of some tests, aligning pipes and splitting one line steps into multiple lines.
* Fixes tests to have one Given/When/Then per scenario.
2023-06-02 12:47:27 +08:00
Andrew Nicols aa2fc4048e MDL-69231 behat: Update tests to use new generator 2023-06-02 12:47:27 +08:00
Matthew Hilton 912bd8ad27 MDL-76270 group: Add bulk messaging actions
Added two new buttons to the group page to bulk enable or disable the
selected groups messaging settings.

Supporting Javascript modules were also added to disable/enable the
buttons depending on the groups selected in the picker.
2023-04-20 12:23:01 +10:00
Víctor Déniz b576b068bd MDL-77878 lang: Use fixed strings in tests 2023-04-17 08:49:59 +01:00
Marina Glancy 4d765cd699 MDL-77164 privacy: typehint test content writer 2023-04-13 09:43:15 +01:00
Paul Holden f17ba9deb2 MDL-77119 group: custom report elements for group visibility data.
Allow for the reporting of group visibility/participation properties
introduced in 958da5b6, by implementing new entity columns & filters.
2023-03-20 15:44:57 +00:00
Mark Johnson 958da5b67e MDL-68093 groups: Add visibility and participation settings
These new settings are designed to enchance user privacy surrounding
groups. They allow groups to be configured so that users outside the
group cannot see the group, so that users in the group cannot see each
other, or so that users cannot see the group at all, even if they are in
it. This avoids issues where a group may be assigned based on sensitive
personal information (such as a person requiring special arrangements
due to a disability).

By default, groups are visible to all and available for participation in
activities, which maintains the current behaviour.

For performance, a new cache has been added to track the number of
groups on a course that are not visible to non-members. This allows us
to revert to the existing behaviour if the new features are not being
used at all on a course, and only apply the new visibility conditions if
they are.

Users who have the moodle/course:viewhiddengroups capability should be
concious of exposing hidden groups when showing their screen to other
users. The "Switch role to..." feature can be used to show a course page
on screen without exposing private availability conditions, for example.

The changes cover several specific areas:
* grouplib functions, which most code should use to get lists of groups
  and members (this includes the participants page).
* Activities supporting group overrides will not allow overrides for
  groups that are hidden from all users.
* Activities supporting separate/visible groups modes will only allow
  groups with the new "participation" flag enabled to be selected.
* Group messaging will be disabled for groups where members cannot see
  each other, or cannot see the group at all.
2023-03-14 08:52:25 +00:00
Mathew May e5ca7766e7 MDL-52805 core: Remove legacy log calls 2023-03-07 13:08:46 +08:00
Angelia Dela Cruz 9fded44344 MDL-77413 Behat: Minor changes to optimise the existing tests 2023-02-28 17:19:47 +08:00
Angelia Dela Cruz 4380682549 MDL-77413 Behat: Add coverage to verify groups can have a picture 2023-02-28 17:08:08 +08:00
Andrew Nicols a3cc26f8bb MDL-76583 core: Update uses of external_* classes 2023-01-19 07:34:09 +08:00
Paul Holden 45818da292 MDL-76221 reportbuilder: improve report test generator methods.
Test generators for creating report columns, filters and conditions
now allow for setting all persistent properties.
2023-01-04 10:56:27 +00:00
Paul Holden b10b89ec74 MDL-75349 group: implement groups datasource for custom reporting.
Create new entities for exposing report data on course groups and
groupings, joining to existing course/user entities to provide data
for the reportbuilder editor.
2022-10-20 12:30:06 +01:00
Eloy Lafuente (stronk7) 100bc51f1d MDL-73485 phpunit: externallib, generator and filter tescase names
All externallib_test, generator_test and filter_test classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- 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 tests under testing/tests:

1) The core_testing component doesn't exist.
2) But testing/tests are allowed because there is a suite pointing to it (phpunit.xml).
3) So, the only possible namespace for them is "core".
4) And to avoid problems with other core testcases (under lib/tests)
   they have been renamed to have testing_xxxx as prefix.

Finally, also modified calendar/tests/events/events_test.php because it uses
some renamed (core_calendar_externallib_testcase => \core_calendar\externallib_test)
classes.
2022-01-21 19:48:23 +01:00
Eloy Lafuente (stronk7) 511801cb46 MDL-73352 phpunit: lib_test and locallib_test testcase names
All lib_test and locallib_test classes:

- Namespaced with component (and API whenever makes sense).
- Fixed incorrect use statements with leading backslash.
- Changed code to point to global scope when needed or add new uses.
- All them passing individually.
- Complete runs passing too.

Special mention to tests under login/tests:

1) The core_login component doesn't exist.
2) But login/tests are allowed because there is a suite pointing to it (phpunit.xml).
3) So, the only possible namespace for them is "core".
4) And to avoid problems with other core testcases (under lib/tests)
   they have been renamed to have login_xxxx as prefix.
2021-12-30 16:21:42 +01:00
Eloy Lafuente (stronk7) e4a2d9c1d4 MDL-73348 phpunit: normalize all privacy provider tests
As far as now all them have correct privacy level2 namespace:
- Move them to "privacy" subdir.
- Rename the files to "provider_test.php", this includes old
  privacy_test.php and privacy_provider_test.php files
- Rename the testcase to provider_test too (to match file name)

Also, change some relative paths and comments to point to new
locations.
2021-12-17 14:21:02 +01:00
Eloy Lafuente (stronk7) 57e6fb7ad9 MDL-73348 phpunit: privacy and privacy_provider testcase names
All privacy_test and privacy_provider_test classes:

- Namespaced with component\privacy.
- Fixed incorrect use statements with leading backslash.
- Changed code to point to global scope when needed.
- Renamed a few files to make all be privacy_test or privacy_provider_test.php
- All them passing individually.
- Complete runs passing too.
2021-12-17 14:21:02 +01:00
abgreeve fcd4de8639 MDL-72090 navigation: Update to behat feature files for navigation.
This updates feature files to use the new steps to navigate to certain
pages.
2021-12-09 11:13:35 +08:00
Peter Dias 3cddee197f MDL-72875 course: Update behat test to use the tertiary nav 2021-12-02 13:09:12 +08:00
Huong Nguyen ffca35b805 MDL-72896 Accessibility: Make html_table responsive
The tables are generated by html_table will responsive across viewports
2021-11-09 09:41:27 +07:00
Jun Pataleta 385438b463 Merge branch 'MDL-72589' of https://github.com/stronk7/moodle 2021-09-16 09:46:56 +08:00
Eloy Lafuente (stronk7) 9f9fe79c26 MDL-72589 behat: Add @skip_chrome_zerosize to failing scenarios
All the scenarios failing with Chrome zero-size errors are
getting the @skip_chrome_zerosize to be able to keep them apart from
regular runs. See MDL-71108 for more information about
that error.

They will be run by another job, specifically using that tag to
keep them failing and under control.
2021-09-15 20:25:11 +02:00
Mihail Geshoski 7d821080f0 MDL-72093 navigation: Update behat tests 2021-09-14 12:02:35 +08:00
Katie Ransom d916cd77ca MDL-71186 core_user: show custom user fields in group management screens 2021-04-15 15:28:17 +01:00
Eloy Lafuente (stronk7) 8a14a7bd22 MDL-71036 phpunit: assertContains() now performs strict comparison
The methods assertContains() and assertNotContains() now perform
strict (type and value) comparison, pretty much like assertSame()
does.

A couple of new assertContainsEquals() and assertNotContainsEquals()
methods have been created to provide old (non-strict) behavior, pretty
much like assertEquals() do.

Apart from replacing the calls needing a relaxed comparison to those
new methods, there are also a couple of alternative, about how to
fix this, depending of every case:

- If the test is making any array_values() conversion, then it's better
  to remove that conversion and use assertArrayHasKey(), that is not
  strict.
- Sometimes if may be also possible to, simply, cast the expectation
  to the exact type coming in the array. I've not applied this technique
  to any of the cases in core.

Link: https://github.com/sebastianbergmann/phpunit/issues/3426
2021-03-11 23:04:31 +01:00
Andrew Nicols bce46258a4 MDL-66979 group: Replace direct element interaction with steps
The W3C WebDriver leads to faster operation of individual steps which
highlights where WebDriver is moving to a new step faster than the
browser can process it.

The solution here is to use the `execute` function to interact with the
browsers as this makes use of the various wait and check steps.
2021-01-22 14:52:10 +08:00
Andrew Nicols 31402aa406 MDL-69107 user: Fix autocomplete usages 2020-12-16 07:50:56 +08:00
Jun Pataleta 48397d35ab Merge branch 'MDL-68167-master' of git://github.com/rezaies/moodle 2020-10-30 13:17:02 +08:00
Shamim Rezaie ce484f2872 MDL-68167 user: Improve keyboard navigation on autocomplete fields 2020-10-30 14:43:00 +11:00
David Mudrák e576fef1fa MDL-69998 lang: Fix reworded strings in Behat test scenarios 2020-10-27 11:32:10 +01:00
Eloy Lafuente (stronk7) 3a5641cb74 MDL-67673 phpunit: Remove deprecated assertEquals() params
The optional parameters of assertEquals() and assertNotEquals()
are deprecated in PHPUnit 8 (to be removed in PHPUnit 9):

- delta => use assertEqualsWithDelta()
- canonicalize => use assertEqualsCanonicalizing()
- ignoreCase => use assertEqualsIgnoringCase
- maxDepth => removed without replacement.

More info @ https://github.com/sebastianbergmann/phpunit/issues/3341

Initial search done with:

ag 'assert(Not)?Equals\(.*,.*,' --php

Then, running tests and fixing remaining cases.
2020-10-21 12:46:00 +02:00
Michael Hawkins 5187e7c515 MDL-68612 core: Behat tests updated to support new participants filter
Existing tests have been updated, rewritten and/or expanded to support
the new participants filter.
2020-06-03 14:29:22 +08:00
Andrew Nicols 7afd16ad84 MDL-66109 behat: Require newline at EOF
This change enables the gherkinlint rule to require a new line at the
end of the file. This change is in keeping with existing Moodle coding
style guidelines.
2020-05-11 11:07:49 +08:00
Paul Holden 21253ed622 MDL-67245 group: display user identity fields for group members. 2020-01-17 12:41:10 +00:00
Amaia Anabitarte e4987f0f58 MDL-64993 core_message: fix unit test for non-ordered queries 2019-05-07 17:54:43 +02:00
Amaia Anabitarte 888a467a78 MDL-64993 core_message: Adding self-conversations to unit tests 2019-05-06 00:47:52 +02:00
sam marshall 05a5d547b3 MDL-64979 Behat: Add option to increase timeouts 2019-03-19 17:17:55 +00:00
Dmitrii Metelkin 301783d94e MDL-63516 groups: fix unexpected debugging message 2019-02-06 09:21:26 +11:00
Jun Pataleta c617a7271a MDL-63620 group: Option to enable group messaging for imported groups 2019-01-14 13:31:23 +08:00
Jun Pataleta e5e5b37749 MDL-63620 group: Option for group messaging when auto-creating groups 2019-01-14 13:29:42 +08:00
Sara Arjona c752cce7dd MDL-63692 core_group: Add group conversation messages to Privacy API 2018-11-19 22:08:28 +01:00
Damyon Wiese f6ca9ca691 Merge branch 'MDL-44137_add_update-groups_webservice' of https://github.com/TheVirtualLtd/moodle 2018-11-05 15:07:26 +08:00
Robynstar 474dd887d0 MDL-44137 group: add update_groups webservice function 2018-11-01 11:52:03 +13:00