Moodle APIs 4.3
Moodle 4.3.6 (Build: 20240812)
|
Parent class for LTI Advantage tests, providing environment setup and mock user launches. More...
Public Member Functions | |
assertDebuggingCalled ($debugmessage=null, $debuglevel=null, $message='') | |
Assert that exactly debugging was just called once. | |
assertDebuggingCalledCount ($expectedcount, $debugmessages=array(), $debuglevels=array(), $message='') | |
Asserts how many times debugging has been called. | |
assertDebuggingNotCalled ($message='') | |
Call when no debugging() messages expected. | |
assertEqualsIgnoringWhitespace ($expected, $actual, string $message='') | |
Assert that two Date/Time strings are equal. | |
assertEventContextNotUsed (\core\event\base $event, $message='') | |
Assert that various event methods are not using event->context. | |
assertEventLegacyData ($expected, core\event\base $event, $message='') | |
Assert that an event legacy data is equal to the expected value. | |
assertEventLegacyLogData ($expected, core\event\base $event, $message='') | |
Assert that an event legacy log data is equal to the expected value. | |
assertTimeCurrent ($time, $message='') | |
Assert that: start < $time < time() | |
getDebuggingMessages () | |
Return debugging messages from the current test. | |
getExternalTestFileUrl ($path, $https=false) | |
Returns UTL of the external test file. | |
preventResetByRollback () | |
Call this method from test if you want to make sure that the resetting of database is done the slow way without transaction rollback. | |
recurseFolders ($path, $callback, $fileregexp='/.*/', $exclude=false, $ignorefolders=array()) | |
Recursively visit all the files in the source tree. | |
redirectEmails () | |
Starts email redirection. | |
redirectEvents () | |
Starts event redirection. | |
redirectHook (string $hookname, callable $callback) | |
Override hook callbacks. | |
redirectMessages () | |
Starts message redirection. | |
resetAfterTest ($reset=true) | |
Reset everything after current test. | |
resetDebugging () | |
Clear all previous debugging messages in current test and revert to default DEVELOPER_DEBUG level. | |
runBare () | |
Runs the bare test sequence. | |
setCurrentTimeStart () | |
Stores current time as the base for assertTimeCurrent(). | |
stopHookRedirections () | |
Remove all hook overrides. | |
waitForSecond () | |
Wait for a second to roll over, ensures future calls to time() return a different result. | |
Static Public Member Functions | |
static | assertNotTag ($matcher, $actual, $message='', $ishtml=true) |
Note: we are overriding this method to remove the deprecated error. | |
static | assertTag ($matcher, $actual, $message='', $ishtml=true) |
Note: we are overriding this method to remove the deprecated error. | |
static | assertValidKeys (array $hash, array $validKeys) |
Validate list of keys in the associative array. | |
static | findNodes (DOMDocument $dom, array $options, $isHtml=true) |
Parse out the options from the tag using DOM object tree. | |
static | getDataGenerator () |
Get data generator. | |
static | resetAllData ($detectchanges=false) |
Reset all database tables, restore global state and clear caches and optionally purge dataroot dir. | |
static | setAdminUser () |
Set current $USER to admin account, reset access cache. | |
static | setGuestUser () |
Set current $USER to guest account, reset access cache. | |
static | setTimezone ($servertimezone='Australia/Perth', $defaultphptimezone='Australia/Perth') |
Change server and default php timezones. | |
static | setUser ($user=null) |
Set current $USER, reset access cache. | |
Protected Member Functions | |
create_test_environment (bool $enableauthplugin=true, bool $enableenrolplugin=true, bool $membersync=true, int $membersyncmode=helper::MEMBER_SYNC_ENROL_AND_UNENROL, bool $gradesync=true, bool $gradesynccompletion=false, int $enrolstartdate=0, int $provisioningmodeinstructor=0, int $provisioningmodelearner=0) | |
Sets up and returns a test course, including LTI-published resources, ready for testing. | |
createArrayDataSet () | |
createCsvDataSet () | |
createXMLDataSet () | |
dataset_from_array (array $data) | |
Creates a new dataset from PHP array. | |
dataset_from_files (array $files) | |
Creates a new dataset from CVS/XML files. | |
dataset_from_string (string $content, string $type, ?string $table=null) | |
Creates a new dataset from string (CSV or XML). | |
enable_auth () | |
Enable auth_lti plugin. | |
enable_enrol () | |
Enable enrol_lti plugin. | |
get_mock_launch (\stdClass $resource, array $mockuser, ?string $resourcelinkid=null, ?array $ags=[], bool $nrps=true, ?array $migrationclaiminfo=null, ?array $customparams=null, $aud='123') | |
Get a mock LtiMessageLaunch object, as if a user had launched from a resource link in the platform. | |
get_mock_launch_users_with_ids (array $ids, bool $includepicture=false, string $role='http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor') | |
Get a list of users ready for use with mock launches by providing an array of user ids. | |
get_tool_launch_service () | |
Helper to get a tool_launch_service instance. | |
loadDataSet () | |
lti_advantage_user_authenticates (string $sub, array $migrationclaiminfo=[]) | |
Helper to return a user which has been bound to the LTI credentials provided and is deemed a valid linked user. | |
run_all_adhoc_tasks () | |
Run adhoc tasks. | |
runAdhocTasks ($matchclass='', $matchuserid=null) | |
Run adhoc tasks, optionally matching the specified classname. | |
setup_legacy_data (\stdClass $course, array $legacydata) | |
Set up data representing a several published legacy tools, including tool records, tool consumer maps and a user. | |
Static Protected Member Functions | |
static | getDescendants (DOMNode $node) |
Recursively get flat array of all descendants of this node. | |
static | getElementsByCaseInsensitiveTagName (DOMDocument $dom, $tag) |
Gets elements by case insensitive tagname. | |
static | getNodeText (DOMNode $node) |
Get the text value of this node's child text node. | |
static | load_fixture (string $component, string $path,) |
Convenience method to load a fixture from a component's fixture directory. | |
Protected Attributes | |
string | $issuer = 'https://lms.example.org' |
the default issuer for tests extending this class. | |
Parent class for LTI Advantage tests, providing environment setup and mock user launches.
|
inherited |
Assert that exactly debugging was just called once.
Discards the debugging message if successful.
null | string | $debugmessage | null means any |
null | string | $debuglevel | null means any |
string | $message |
|
inherited |
Asserts how many times debugging has been called.
int | $expectedcount | The expected number of times |
array | $debugmessages | Expected debugging messages, one for each expected message. |
array | $debuglevels | Expected debugging levels, one for each expected message. |
string | $message |
void |
|
inherited |
Call when no debugging() messages expected.
string | $message |
|
inherited |
Assert that two Date/Time strings are equal.
The strings generated by DateTime, strtotime, date, time, etc. are generated outside of our control. From time-to-time string changes are made. One such example is from ICU 72.1 which changed the time format to include a narrow-non-breaking-space (U+202F) between the time and AM/PM.
We should not update our tests to match these changes, as it is not our code that is generating the strings and they may change again. In addition, the changes are not equal amongst all systems as they depend on the version of ICU installed.
string | $expected | |
string | $actual | |
string | $message |
|
inherited |
Assert that various event methods are not using event->context.
While restoring context might not be valid and it should not be used by event url or description methods.
core\event\base | $event | the event object. |
string | $message |
void |
|
inherited |
Assert that an event legacy data is equal to the expected value.
mixed | $expected | expected data. |
core\event\base | $event | the event object. |
string | $message |
void |
|
inherited |
Assert that an event legacy log data is equal to the expected value.
mixed | $expected | expected data. |
core\event\base | $event | the event object. |
string | $message |
void |
|
staticinherited |
Note: we are overriding this method to remove the deprecated error.
array | $matcher | |
string | $actual | |
string | $message | |
boolean | $ishtml |
|
staticinherited |
Note: we are overriding this method to remove the deprecated error.
array | $matcher | |
string | $actual | |
string | $message | |
boolean | $ishtml |
|
inherited |
Assert that: start < $time < time()
int | $time | |
string | $message |
void |
|
staticinherited |
Validate list of keys in the associative array.
array | $hash | |
array | $validKeys |
array |
PHPUnit\Framework\Exception |
|
protected |
Sets up and returns a test course, including LTI-published resources, ready for testing.
bool | $enableauthplugin | whether to enable the auth plugin during setup. |
bool | $enableenrolplugin | whether to enable the enrol plugin during setup. |
bool | $membersync | whether or not the published resource support membership sync with the platform. |
int | $membersyncmode | the mode of member sync to set up on the shared resource. |
bool | $gradesync | whether or not to enabled gradesync on the published resources. |
bool | $gradesynccompletion | whether or not to require gradesynccompletion on the published resources. |
int | $enrolstartdate | the unix time when the enrolment starts, or 0 for no start time. |
int | $provisioningmodeinstructor | the teacher provisioning mode for all created resources, 0 for default (prompt). |
int | $provisioningmodelearner | the student provisioning mode for all created resources, 0 for default (auto). |
array | array of objects for use in individual tests; courses, tools. |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Creates a new dataset from PHP array.
array | $data | array of tables, see { |
phpunit_dataset |
|
protectedinherited |
Creates a new dataset from CVS/XML files.
This method accepts an array of full paths to CSV or XML files to be loaded into the dataset. For CSV files, the name of the table which the file belongs to needs to be specified. Example:
$fullpaths = [ '/path/to/users.xml', 'course' => '/path/to/courses.csv', ];
array | $files | full paths to CSV or XML files to load. |
phpunit_dataset |
|
protectedinherited |
Creates a new dataset from string (CSV or XML).
string | $content | contents (CSV or XML) to load. |
string | $type | format of the content to be loaded (csv or xml). |
string | $table | name of the table which the file belongs to (only for CSV files). |
phpunit_dataset |
|
staticinherited |
Parse out the options from the tag using DOM object tree.
DOMDocument | $dom | |
array | $options | |
bool | $isHtml |
array |
|
protected |
Get a mock LtiMessageLaunch object, as if a user had launched from a resource link in the platform.
stdClass | $resource | the resource record, allowing the mock to generate a link to this. |
array | $mockuser | the user on the platform who is performing the launch. |
string | null | $resourcelinkid | the id of resource link in the platform, if desired. |
array | null | $ags | array representing the lti-ags claim info. Pass null to omit, empty array to use a default. |
bool | $nrps | whether to include a mock NRPS claim or not. |
array | null | $migrationclaiminfo | contains consumer key, secret and any fields which are sent in the claim. |
array | null | $customparams | an array of custom params to send, or null to just use defaults. |
mixed | $aud | the array or string value of aud to use in the mock launch data. |
LtiMessageLaunch | the mock launch object with test launch data. |
|
protected |
Get a list of users ready for use with mock launches by providing an array of user ids.
array | $ids | the platform user_ids for the users. |
bool | $includepicture | whether to include a profile picture or not (slows tests, so defaults to false). |
string | $role | the LTI role to include in the user data. |
array | the users list. |
|
protected |
Helper to get a tool_launch_service instance.
tool_launch_service | the instance. |
|
staticinherited |
Get data generator.
testing_data_generator |
|
inherited |
Return debugging messages from the current test.
array | with instances having 'message', 'level' and 'stacktrace' property. |
|
staticprotectedinherited |
Recursively get flat array of all descendants of this node.
DOMNode | $node |
array |
|
staticprotectedinherited |
Gets elements by case insensitive tagname.
DOMDocument | $dom | |
string | $tag |
DOMNodeList |
|
inherited |
Returns UTL of the external test file.
The result depends on the value of following constants:
They should point to standard external test files repository, it defaults to 'http://download.moodle.org/unittest'.
False value means skip tests that require external files.
string | $path | |
bool | $https | true if https required |
string | url |
|
staticprotectedinherited |
Get the text value of this node's child text node.
DOMNode | $node |
string |
|
staticprotectedinherited |
Convenience method to load a fixture from a component's fixture directory.
string | $component | |
string | $path |
coding_exception |
|
protectedinherited |
|
protected |
Helper to return a user which has been bound to the LTI credentials provided and is deemed a valid linked user.
string | $sub | the subject id string |
array | $migrationclaiminfo | mocked migration claim information, allowing the mock auth to bind to an existing user. |
stdClass | the user record. |
|
inherited |
Call this method from test if you want to make sure that the resetting of database is done the slow way without transaction rollback.
This is useful especially when testing stuff that is not compatible with transactions.
void |
|
inherited |
Recursively visit all the files in the source tree.
Calls the callback function with the pathname of each file found.
string | $path | the folder to start searching from. |
string | $callback | the method of this class to call with the name of each file found. |
string | $fileregexp | a regexp used to filter the search (optional). |
bool | $exclude | If true, pathnames that match the regexp will be ignored. If false, only files that match the regexp will be included. (default false). |
array | $ignorefolders | will not go into any of these folders (optional). |
void |
|
inherited |
Starts email redirection.
You can verify if email were sent or not by inspecting the email array in the returned phpmailer sink instance. The redirection can be stopped by calling $sink->close();
phpunit_message_sink |
|
inherited |
Starts event redirection.
You can verify if events were triggered or not by inspecting the events array in the returned event sink instance. The redirection can be stopped by calling $sink->close();
phpunit_event_sink |
|
inherited |
Override hook callbacks.
string | $hookname | |
callable | $callback |
void |
|
inherited |
Starts message redirection.
You can verify if messages were sent or not by inspecting the messages array in the returned messaging sink instance. The redirection can be stopped by calling $sink->close();
phpunit_message_sink |
|
inherited |
Reset everything after current test.
bool | $reset | true means reset state back, false means keep all data for the next test, null means reset state and show warnings if anything changed |
void |
|
staticinherited |
Reset all database tables, restore global state and clear caches and optionally purge dataroot dir.
bool | $detectchanges | true - changes in global state and database are reported as errors false - no errors reported null - only critical problems are reported as errors |
void |
|
protectedinherited |
Run adhoc tasks, optionally matching the specified classname.
string | $matchclass | The name of the class to match on. |
int | $matchuserid | The userid to match. |
|
finalinherited |
Runs the bare test sequence.
void |
|
staticinherited |
Set current $USER to admin account, reset access cache.
void |
|
inherited |
Stores current time as the base for assertTimeCurrent().
Note: this is called automatically before calling individual test methods.
int | current time |
|
staticinherited |
Set current $USER to guest account, reset access cache.
void |
|
staticinherited |
Change server and default php timezones.
string | $servertimezone | timezone to set in $CFG->timezone (not validated) |
string | $defaultphptimezone | timezone to fake default php timezone (must be valid) |
|
protected |
Set up data representing a several published legacy tools, including tool records, tool consumer maps and a user.
stdClass | $course | the course in which to create the tools. |
array | $legacydata | array containing user id, consumer key and tool secrets for creation of records. |
array | array containing [tool1record, tool2record, consumerrecord, userrecord]. |
|
staticinherited |
Set current $USER, reset access cache.
null | int | stdClass | $user | user record, null or 0 means non-logged-in, positive integer means userid |
void |
|
inherited |
Remove all hook overrides.
void |
|
inherited |
Wait for a second to roll over, ensures future calls to time() return a different result.
This is implemented instead of sleep() as we do not need to wait a full second. In some cases due to calls we may wait more than sleep() would have, on average it will be less.