Skip to content

Commit eecc04f

Browse files
committed
MDL-65883 mod_quiz: replace all hardcoded urls to proper params
1 parent f237e35 commit eecc04f

File tree

1 file changed

+81
-156
lines changed

1 file changed

+81
-156
lines changed

mod/quiz/tests/attempt_test.php

Lines changed: 81 additions & 156 deletions
Original file line numberDiff line numberDiff line change
@@ -86,209 +86,134 @@ protected function create_quiz_and_attempt_with_layout($layout) {
8686
*/
8787
public function test_attempt_url() {
8888
$attempt = $this->create_quiz_and_attempt_with_layout('1,2,0,3,4,0,5,6,0');
89+
8990
$attemptid = $attempt->get_attempt()->id;
9091
$cmid = $attempt->get_cmid();
92+
$url = '/mod/quiz/attempt.php';
93+
$params = ['attempt' => $attemptid, 'cmid' => $cmid, 'page' => 2];
9194

92-
$this->assertEquals(new moodle_url(
93-
'/mod/quiz/attempt.php?attempt=' . $attemptid . '&page=2&cmid=' . $cmid),
94-
$attempt->attempt_url(null, 2));
95+
$this->assertEquals(new moodle_url($url, $params), $attempt->attempt_url(null, 2));
9596

96-
$this->assertEquals(new moodle_url(
97-
'/mod/quiz/attempt.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid . '#'),
98-
$attempt->attempt_url(3));
97+
$params['page'] = 1;
98+
$this->assertEquals(new moodle_url($url, $params), $attempt->attempt_url(3));
9999

100100
$questionattempt = $attempt->get_question_attempt(4);
101-
$expecteanchor = '#' . $questionattempt->get_outer_question_div_unique_id();
102-
$this->assertEquals(new moodle_url(
103-
'/mod/quiz/attempt.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid . $expecteanchor),
104-
$attempt->attempt_url(4));
105-
106-
$this->assertEquals(new moodle_url(
107-
'#'),
108-
$attempt->attempt_url(null, 2, 2));
101+
$expecteanchor = $questionattempt->get_outer_question_div_unique_id();
102+
$this->assertEquals(new moodle_url($url, $params, $expecteanchor), $attempt->attempt_url(4));
109103

110-
$this->assertEquals(new moodle_url(
111-
'#'),
112-
$attempt->attempt_url(3, -1, 1));
104+
$this->assertEquals(new moodle_url('#'), $attempt->attempt_url(null, 2, 2));
105+
$this->assertEquals(new moodle_url('#'), $attempt->attempt_url(3, -1, 1));
113106

114107
$questionattempt = $attempt->get_question_attempt(4);
115-
$expecteanchor = '#' . $questionattempt->get_outer_question_div_unique_id();
116-
$this->assertEquals(new moodle_url($expecteanchor), $attempt->attempt_url(4, -1, 1));
108+
$expecteanchor = $questionattempt->get_outer_question_div_unique_id();
109+
$this->assertEquals(new moodle_url(null, null, $expecteanchor, null), $attempt->attempt_url(4, -1, 1));
117110

118111
// Summary page.
119-
$this->assertEquals(new moodle_url(
120-
'/mod/quiz/summary.php?attempt=' . $attemptid . '&cmid=' . $cmid),
121-
$attempt->summary_url());
112+
$url = '/mod/quiz/summary.php';
113+
unset($params['page']);
114+
$this->assertEquals(new moodle_url($url, $params), $attempt->summary_url());
122115

123116
// Review page.
124-
$this->assertEquals(new moodle_url(
125-
'/mod/quiz/review.php?attempt=' . $attemptid . '&cmid=' . $cmid),
126-
$attempt->review_url());
127-
128-
$this->assertEquals(new moodle_url(
129-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=2&cmid=' . $cmid),
130-
$attempt->review_url(null, 2));
131-
132-
$this->assertEquals(new moodle_url(
133-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid),
134-
$attempt->review_url(3, -1, false));
135-
136-
$this->assertEquals(new moodle_url(
137-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid . $expecteanchor),
138-
$attempt->review_url(4, -1, false));
139-
140-
$this->assertEquals(new moodle_url(
141-
'/mod/quiz/review.php?attempt=' . $attemptid . '&cmid=' . $cmid),
142-
$attempt->review_url(null, 2, true));
143-
144-
$this->assertEquals(new moodle_url(
145-
'/mod/quiz/review.php?attempt=' . $attemptid . '&cmid=' . $cmid),
146-
$attempt->review_url(1, -1, true));
117+
$url = '/mod/quiz/review.php';
118+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url());
147119

148-
$this->assertEquals(new moodle_url(
149-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=2&cmid=' . $cmid),
150-
$attempt->review_url(null, 2, false));
120+
$params['page'] = 1;
121+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(3, -1, false));
122+
$this->assertEquals(new moodle_url($url, $params, $expecteanchor), $attempt->review_url(4, -1, false));
151123

152-
$this->assertEquals(new moodle_url(
153-
'/mod/quiz/review.php?attempt=' . $attemptid . '&showall=0&cmid=' . $cmid),
154-
$attempt->review_url(null, 0, false));
124+
unset($params['page']);
125+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 2, true));
126+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(1, -1, true));
155127

156-
$this->assertEquals(new moodle_url(
157-
'/mod/quiz/review.php?attempt=' . $attemptid . '&showall=0&cmid=' . $cmid),
158-
$attempt->review_url(1, -1, false));
128+
$params['page'] = 2;
129+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 2, false));
130+
unset($params['page']);
159131

160-
$this->assertEquals(new moodle_url(
161-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid),
162-
$attempt->review_url(3, -1, false));
132+
$params['showall'] = 0;
133+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 0, false));
134+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(1, -1, false));
163135

164-
$this->assertEquals(new moodle_url(
165-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=2&cmid=' . $cmid),
166-
$attempt->review_url(null, 2));
136+
$params['page'] = 1;
137+
unset($params['showall']);
138+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(3, -1, false));
167139

140+
$params['page'] = 2;
141+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 2));
168142
$this->assertEquals(new moodle_url('#'), $attempt->review_url(null, -1, null, 0));
169143

170-
171144
$questionattempt = $attempt->get_question_attempt(3);
172145
$expecteanchor = '#' . $questionattempt->get_outer_question_div_unique_id();
173146
$this->assertEquals(new moodle_url($expecteanchor), $attempt->review_url(3, -1, null, 0));
174147

175148
$questionattempt = $attempt->get_question_attempt(4);
176149
$expecteanchor = '#' . $questionattempt->get_outer_question_div_unique_id();
177-
$this->assertEquals(new moodle_url( $expecteanchor), $attempt->review_url(4, -1, null, 0));
178-
179-
$this->assertEquals(new moodle_url('#'),
180-
$attempt->review_url(null, 2, true, 0));
181-
182-
$this->assertEquals(new moodle_url(
183-
'#'),
184-
$attempt->review_url(1, -1, true, 0));
185-
186-
$this->assertEquals(new moodle_url(
187-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=2&cmid=' . $cmid),
188-
$attempt->review_url(null, 2, false, 0));
189-
190-
$this->assertEquals(new moodle_url(
191-
'#'),
192-
$attempt->review_url(null, 0, false, 0));
193-
194-
$this->assertEquals(new moodle_url(
195-
'#'),
196-
$attempt->review_url(1, -1, false, 0));
150+
$this->assertEquals(new moodle_url($expecteanchor), $attempt->review_url(4, -1, null, 0));
151+
$this->assertEquals(new moodle_url('#'), $attempt->review_url(null, 2, true, 0));
152+
$this->assertEquals(new moodle_url('#'), $attempt->review_url(1, -1, true, 0));
153+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 2, false, 0));
154+
$this->assertEquals(new moodle_url('#'), $attempt->review_url(null, 0, false, 0));
155+
$this->assertEquals(new moodle_url('#'), $attempt->review_url(1, -1, false, 0));
197156

198-
$this->assertEquals(new moodle_url(
199-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid),
200-
$attempt->review_url(3, -1, false, 0));
157+
$params['page'] = 1;
158+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(3, -1, false, 0));
201159

202160
// Setup another attempt.
203161
$attempt = $this->create_quiz_and_attempt_with_layout(
204162
'1,2,3,4,5,6,7,8,9,10,0,11,12,13,14,15,16,17,18,19,20,0,' .
205163
'21,22,23,24,25,26,27,28,29,30,0,31,32,33,34,35,36,37,38,39,40,0,' .
206164
'41,42,43,44,45,46,47,48,49,50,0,51,52,53,54,55,56,57,58,59,60,0');
165+
207166
$attemptid = $attempt->get_attempt()->id;
208167
$cmid = $attempt->get_cmid();
168+
$params = ['attempt' => $attemptid, 'cmid' => $cmid];
169+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url());
209170

210-
$this->assertEquals(new moodle_url(
211-
'/mod/quiz/review.php?attempt=' . $attemptid . '&cmid=' . $cmid),
212-
$attempt->review_url());
213-
214-
$this->assertEquals(new moodle_url(
215-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=2&cmid=' . $cmid),
216-
$attempt->review_url(null, 2));
217-
218-
$this->assertEquals(new moodle_url(
219-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid . '#'),
220-
$attempt->review_url(11, -1, false));
171+
$params['page'] = 2;
172+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 2));
221173

174+
$params['page'] = 1;
175+
unset($params['showall']);
176+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(11, -1, false));
222177

223178
$questionattempt = $attempt->get_question_attempt(12);
224-
$expecteanchor = '#' . $questionattempt->get_outer_question_div_unique_id();
225-
$this->assertEquals(new moodle_url(
226-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid . $expecteanchor),
227-
$attempt->review_url(12, -1, false));
228-
229-
$this->assertEquals(new moodle_url(
230-
'/mod/quiz/review.php?attempt=' . $attemptid . '&showall=1&cmid=' . $cmid),
231-
$attempt->review_url(null, 2, true));
232-
233-
$this->assertEquals(new moodle_url(
234-
'/mod/quiz/review.php?attempt=' . $attemptid . '&showall=1&cmid=' . $cmid),
235-
$attempt->review_url(1, -1, true));
236-
237-
$this->assertEquals(new moodle_url(
238-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=2&cmid=' . $cmid),
239-
$attempt->review_url(null, 2, false));
240-
241-
$this->assertEquals(new moodle_url(
242-
'/mod/quiz/review.php?attempt=' . $attemptid . '&cmid=' . $cmid),
243-
$attempt->review_url(null, 0, false));
244-
245-
$this->assertEquals(new moodle_url(
246-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid),
247-
$attempt->review_url(11, -1, false));
248-
249-
$this->assertEquals(new moodle_url(
250-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid . $expecteanchor),
251-
$attempt->review_url(12, -1, false));
252-
253-
$this->assertEquals(new moodle_url(
254-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=2&cmid=' . $cmid),
255-
$attempt->review_url(null, 2));
256-
257-
$this->assertEquals(new moodle_url(
258-
'#'),
259-
$attempt->review_url(null, -1, null, 0));
179+
$expecteanchor = $questionattempt->get_outer_question_div_unique_id();
180+
$this->assertEquals(new moodle_url($url, $params, $expecteanchor), $attempt->review_url(12, -1, false));
181+
182+
$params['showall'] = 1;
183+
unset($params['page']);
184+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 2, true));
185+
186+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(1, -1, true));
187+
$params['page'] = 2;
188+
unset($params['showall']);
189+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 2, false));
190+
unset($params['page']);
191+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 0, false));
192+
$params['page'] = 1;
193+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(11, -1, false));
194+
$this->assertEquals(new moodle_url($url, $params, $expecteanchor), $attempt->review_url(12, -1, false));
195+
$params['page'] = 2;
196+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 2));
197+
$this->assertEquals(new moodle_url('#'), $attempt->review_url(null, -1, null, 0));
260198

261199
$questionattempt = $attempt->get_question_attempt(3);
262-
$expecteanchor = '#' . $questionattempt->get_outer_question_div_unique_id();
263-
$this->assertEquals(new moodle_url($expecteanchor), $attempt->review_url(3, -1, null, 0));
200+
$expecteanchor = $questionattempt->get_outer_question_div_unique_id();
201+
$this->assertEquals(new moodle_url(null, null, $expecteanchor), $attempt->review_url(3, -1, null, 0));
264202

265203
$questionattempt = $attempt->get_question_attempt(4);
266-
$expecteanchor = '#' . $questionattempt->get_outer_question_div_unique_id();
267-
$this->assertEquals(new moodle_url($expecteanchor), $attempt->review_url(4, -1, null, 0));
268-
269-
$this->assertEquals(new moodle_url(
270-
'#'),
271-
$attempt->review_url(null, 2, true, 0));
272-
273-
$this->assertEquals(new moodle_url(
274-
'#'),
275-
$attempt->review_url(1, -1, true, 0));
276-
277-
$this->assertEquals(new moodle_url(
278-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=2&cmid=' . $cmid),
279-
$attempt->review_url(null, 2, false, 0));
204+
$expecteanchor = $questionattempt->get_outer_question_div_unique_id();
205+
$this->assertEquals(new moodle_url(null, null, $expecteanchor), $attempt->review_url(4, -1, null, 0));
280206

281-
$this->assertEquals(new moodle_url(
282-
'#'),
283-
$attempt->review_url(null, 0, false, 0));
207+
$this->assertEquals(new moodle_url('#'), $attempt->review_url(null, 2, true, 0));
208+
$this->assertEquals(new moodle_url('#'), $attempt->review_url(1, -1, true, 0));
284209

285-
$this->assertEquals(new moodle_url(
286-
'#'),
287-
$attempt->review_url(1, -1, false, 0));
210+
$params['page'] = 2;
211+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(null, 2, false, 0));
212+
$this->assertEquals(new moodle_url('#'), $attempt->review_url(null, 0, false, 0));
213+
$this->assertEquals(new moodle_url('#'), $attempt->review_url(1, -1, false, 0));
288214

289-
$this->assertEquals(new moodle_url(
290-
'/mod/quiz/review.php?attempt=' . $attemptid . '&page=1&cmid=' . $cmid . '#'),
291-
$attempt->review_url(11, -1, false, 0));
215+
$params['page'] = 1;
216+
$this->assertEquals(new moodle_url($url, $params), $attempt->review_url(11, -1, false, 0));
292217
}
293218

294219
public function test_is_participant() {

0 commit comments

Comments
 (0)