Commit graph

413 commits

Author SHA1 Message Date
Mahmoud Kassaei
b297faa4ab MDL-70755 Quiz overrides: Broken layout for Group overrides 2021-02-03 09:29:11 +00:00
Tim Hunt
3fbf8529ab MDL-70266 quiz overrides: respect show user identity setting 2021-01-07 10:38:39 +00:00
Jun Pataleta
d27c4f8566 Merge branch 'MDL-68831' of https://github.com/timhunt/moodle 2020-12-17 00:04:33 +08:00
Jun Pataleta
037417af1d Merge branch 'MDL-69735' of https://github.com/timhunt/moodle 2020-12-16 23:01:28 +08:00
Tim Hunt
7d11dcfde2 MDL-68831 quiz overrides: show a summary on the quiz info page 2020-12-16 14:21:45 +00:00
Jun Pataleta
d4b9511bbe Merge branch 'MDL-54907' of https://github.com/timhunt/moodle 2020-12-16 10:34:58 +08:00
Tim Hunt
7350f41bf8 MDL-69735 quiz: new capability for read-only view of setting overrides 2020-12-11 19:54:40 +00:00
Tim Hunt
040c15c27e MDL-54907 quiz unit tests: clean up code style in attempts_test.php 2020-11-27 18:29:25 +00:00
Tim Hunt
fc9d2e0843 MDL-54907 quiz: better timefinish for attempts finished asynchronously
There are serveral ways a quiz attempt can be submitted:

1. The student click the Submit and finish button. In this case,
   no problem. We record the current time as the finish time
   for the quiz attempt.

2. The student is activly working away at the quiz, and the
   count-down timer reachers zero. In this case, we also record
   the current time. Note that, if the server is under high load,
   then this could well end up being a few seconds after the
   theoretical end time, so you could have a quiz with a 30 minute
   time limit, with an attempt that lasted 30:07. However, this
   is just an accurate reflection of what happened, so should
   be recorded like this.

3. If the student is offline when the time expires, then
   (depending on the quiz settings) the attempt may be
   automatically submitted by cron, but this will happen with
   at least some delay (to prevent race conditions between cron
   and a student working online) and if cron is running slow
   on the server, it could be a lot later. Previously, this led
   to, say, a 30 minute quiz where an attempt seemed to have
   lasted 67 minutes, which confused people.

   Now, in this situation, the finsh time for the quiz attempt is
   recorded as the time when the time limit ran out. This is not
   just less confusing for teachers looking at the quiz report,
   it is also more accurate. That is the latest time at which
   students could have made any changes to their responses.
2020-11-27 17:51:55 +00:00
Tim Hunt
ec6978b9d6 MDL-54907 quiz generator: defaults should match a new Moodle install 2020-11-27 14:57:36 +00:00
Andrew Nicols
0d580d2b3e MDL-67668 behat: Update tests for inplace editable field type 2020-11-23 09:01:19 +08:00
Andrew Nicols
ba34d6e225 MDL-70148 behat: Update steps for keyboard 2020-11-17 15:14:43 +08:00
Sara Arjona
e7ea4ae450 Merge branch 'MDL-69823-master' of git://github.com/jleyva/moodle 2020-11-11 07:41:19 +01:00
Juan Leyva
caddb8f175 MDL-69823 mod_quiz: Return question options via WS 2020-11-10 19:16:24 +01:00
Tim Hunt
1622425260 MDL-70065 quiz: fix paging when adding questions from the bank 2020-10-29 20:25:53 +00:00
Eloy Lafuente (stronk7)
8183def69e MDL-67673 phpunit: Move tests to use new phpunit_dataset
- Make advanced_testcase old methods to use new ones internally.
- Fix advanced_testcase, statslib, mod/quiz and mod/data tests.

Originally MDL-64600
2020-10-21 12:46:00 +02: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
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
Eloy Lafuente (stronk7)
d95c378771 MDL-67673 phpunit: Remove expectedException annotations
While this is not strictly required, because removal will
happen in PHPUnit 9.0, we are already getting rid of all
uses in core.

From release notes:https://phpunit.de/announcements/phpunit-8.html

The annotations `@expectedException`, `@expectedExceptionCode`,
`@expectedExceptionMessage`, and `@expectedExceptionMessageRegExp`
are now deprecated.
Using these annotations will trigger a deprecation warning
in PHPUnit 8 and in PHPUnit 9 these annotations will be removed.

Also, all uses of expectExceptionMessageRegExp() has been moved
to expectExceptionMessageMatches(). See https://github.com/sebastianbergmann/phpunit/issues/3957

TODO: Various weirdness found while doing the changes with these tests:
- vendor/bin/phpunit lib/tests/exporter_test.php (created MDL-69700)
- vendor/bin/phpunit competency/tests/external_test.php (same issue than prev one)
- vendor/bin/phpunit question/engine/tests/questionengine_test.php (created MDL-69624)
- vendor/bin/phpunit lib/tests/event_test.php (created MDL-69688)
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
f6711bb394 MDL-67673 phpunit: Fix the return type of template methods
All the setup/teardown/pre/post/conditions template methods
now are required to return void. This was warned with phpunit 7
and now is enforced.

At the same time, fix a few wrong function names,
provider data and param types, return statements...
2020-10-21 12:45:59 +02:00
Juan Leyva
8bec429a98 MDL-54956 quiz: Return response files in attempts 2020-09-22 18:03:23 +02:00
Bas Brands
4394f9e358 MDL-67735 theme_boost: remove bs2 and bs4alpha compatibility css 2020-08-17 08:16:42 +00:00
Tim Hunt
5516275fda MDL-69253 mod_quiz: unit test for the last commit 2020-08-04 14:37:25 +01:00
Sara Arjona
d189edb843 Merge branch 'MDL-68210-master' of https://github.com/snake/moodle 2020-07-16 16:21:27 +02:00
Sara Arjona
9f9682cfe2 Merge branch 'MDL-69068-master' of git://github.com/andrewnicols/moodle 2020-07-15 12:20:20 +02:00
Andrew Nicols
b49cb92e82 MDL-69068 behat: New step to support singular generators 2020-07-15 15:27:31 +08:00
François Moreau
760ed019ee MDL-45002 mod_quiz: completion option, at least N attempts completed 2020-07-14 15:32:06 -04:00
Jake Dallimore
c467de9ac6 MDL-68210 overrides: allow copy and delete of inactive overrides
This brings lesson and assign in line with the expected behaviour
already implemented in quiz. When an override is inactive, all controls
are shown.
2020-07-08 09:08:27 +08:00
Russell Boyatt
8a2d8ec472 MDL-66899 quiz: Adding test for regrading quiz event. 2020-06-09 09:50:34 +01:00
Adrian Greeve
aa1dcabf4c Merge branch 'MDL-68733' of https://github.com/timhunt/moodle 2020-05-21 08:37:52 +08:00
Tim Hunt
64207dab65 MDL-67183 questions: get_question & get_behaviour only init if required
This reviews all the code code, and sets $requirequestioninitialised
whenever possible in these calls, which should improve performance.
2020-05-19 20:52:07 +01:00
Tim Hunt
89c8a076b2 MDL-68733 quiz editing: behat test for altering random question tags 2020-05-18 23:20:10 +01:00
Tim Hunt
c689726d3f MDL-68733 question behat: question tag generator and use in quiz test 2020-05-18 22:56:33 +01:00
Tim Hunt
b20541805f MDL-62487 quiz manual grading: store options as user preferences 2020-05-15 13:12:08 +01:00
David Mudrák
8599eb5ebb MDL-68434 lang: Use the updated terminology in the tests 2020-04-29 17:40:58 +02:00
Tim Hunt
5c3f700ac7 MDL-66259 quiz responses: fix unrealistic test setup 2020-04-24 15:56:23 +02:00
Andrew Nicols
47bede0d5d Merge branch 'MDL-67155' of https://github.com/timhunt/moodle 2019-12-03 12:12:28 +08:00
Tim Hunt
285c703685 MDL-48024 behat: allow plugins to have data generators
This extends the step
Given the following "users" exist:
to also support things like
Given the following "mod_quiz > user overrides" exist:

Instructions are on the behat_data_generators and
behat_generator_base classes.
2019-11-21 09:18:35 +08:00
Tim Hunt
550599e001 MDL-67155 quiz: first attempt_step should record the student's userid 2019-11-07 00:08:49 +00:00
Jun Pataleta
d75eb57daa Merge branch 'MDL-66821' of https://github.com/timhunt/moodle 2019-10-15 07:35:36 +08:00
Eloy Lafuente (stronk7)
82d71a5c83 Merge branch 'MDL-66335' of https://github.com/timhunt/moodle 2019-10-14 18:53:44 +02:00
Tim Hunt
9c14b28d0b MDL-66821 question behat: new step for acting on questions in the bank
There is a proposed change MDL-66816 which will change the question
bank UI. This will break any Behat tests which uses low-level steps
like

    When I click on "Duplicate" "link" in the "Test question" "table_row"

to perform an action on a question in the question bank. This commit
introduces a new step:

    When I choose "Duplicate" action for "Test question" in the question bank

This commit also converts all core Behat tests to use the new step.
2019-10-14 11:36:12 +01:00
Tim Hunt
4e1ebf8cde MDL-66335 quiz behat: using the new generic navigation steps
This converts all the navigation to quiz pages when that is not
the thing under test. Also, I decided that the Quiz settings form
belonged to the course, so did not do that here.
2019-10-14 11:21:22 +01:00
Tim Hunt
c2200bd5dc MDL-66553 quiz/questions: show idnumber and tags when adding from qbank 2019-10-11 13:59:26 +01:00
Tim Hunt
61cc1e6494 MDL-66553 question bank: show tags and idnumbers in question list 2019-10-11 13:59:26 +01:00
Eloy Lafuente (stronk7)
10ab0770ab Merge branch 'MDL-66764' of https://github.com/timhunt/moodle 2019-10-07 22:50:57 +02:00
Tim Hunt
b04b6ae1ab MDL-66764 quiz: redo question should not repeat random questions
Before this fix, it was only considering questions seen in previous attempts.

It should avoid the questions in the current attmept too.
2019-09-25 11:04:38 +01:00
Tim Hunt
118d62a266 MDL-66709 quiz: add a Behat test for backup/restore of quiz attempts 2019-09-23 19:21:36 +01:00
Huong Nguyen
0fd6032ce8 MDL-66633 Quiz: Improve preview user checking 2019-09-19 16:20:42 +02:00
Huong Nguyen
8dc015050e MDL-66633 quiz: allow to create attempts for different users
By adding a new optional param to quiz_prepare_and_start_new_attempt()
it can be used by the surrounding code to create an attempt for anybody
else (different from current $USER)

quiz attempt API should let you create an attempt for a different user
2019-09-18 19:52:09 +02:00