mirror of
https://github.com/moodle/moodle.git
synced 2025-03-14 04:30:15 +01:00
Merge branch 'wip-mdl-48624-m' of https://github.com/rajeshtaneja/moodle
This commit is contained in:
commit
e08f58288a
@ -1220,7 +1220,20 @@ class behat_general extends behat_base {
|
||||
* @param number $expectedsize the expected file size in bytes.
|
||||
*/
|
||||
public function following_should_download_bytes($link, $expectedsize) {
|
||||
$result = $this->download_file_from_link($link);
|
||||
$exception = new ExpectationException('Error while downloading data from ' . $link, $this->getSession());
|
||||
|
||||
// It will stop spinning once file is downloaded or time out.
|
||||
$result = $this->spin(
|
||||
function($context, $args) {
|
||||
$link = $args['link'];
|
||||
return $this->download_file_from_link($link);
|
||||
},
|
||||
array('link' => $link),
|
||||
self::EXTENDED_TIMEOUT,
|
||||
$exception
|
||||
);
|
||||
|
||||
// Check download size.
|
||||
$actualsize = (int)strlen($result);
|
||||
if ($actualsize !== (int)$expectedsize) {
|
||||
throw new ExpectationException('Downloaded data was ' . $actualsize .
|
||||
@ -1249,7 +1262,21 @@ class behat_general extends behat_base {
|
||||
list($minexpectedsize, $maxexpectedsize) = array($maxexpectedsize, $minexpectedsize);
|
||||
}
|
||||
|
||||
$result = $this->download_file_from_link($link);
|
||||
$exception = new ExpectationException('Error while downloading data from ' . $link, $this->getSession());
|
||||
|
||||
// It will stop spinning once file is downloaded or time out.
|
||||
$result = $this->spin(
|
||||
function($context, $args) {
|
||||
$link = $args['link'];
|
||||
|
||||
return $this->download_file_from_link($link);
|
||||
},
|
||||
array('link' => $link),
|
||||
self::EXTENDED_TIMEOUT,
|
||||
$exception
|
||||
);
|
||||
|
||||
// Check download size.
|
||||
$actualsize = (int)strlen($result);
|
||||
if ($actualsize < $minexpectedsize || $actualsize > $maxexpectedsize) {
|
||||
throw new ExpectationException('Downloaded data was ' . $actualsize .
|
||||
|
@ -51,32 +51,40 @@ class behat_workshopallocation_manual extends behat_base {
|
||||
* @param string $participantname
|
||||
*/
|
||||
public function i_add_a_reviewer_for_workshop_participant($reviewername, $participantname) {
|
||||
$participantnameliteral = $this->getSession()->getSelectorsHandler()->xpathLiteral($participantname);
|
||||
$xpathtd = "//table[contains(concat(' ', normalize-space(@class), ' '), ' allocations ')]/".
|
||||
"tbody/tr[./td[contains(concat(' ', normalize-space(@class), ' '), ' peer ')]".
|
||||
"[contains(.,$participantnameliteral)]]/".
|
||||
"td[contains(concat(' ', normalize-space(@class), ' '), ' reviewedby ')]";
|
||||
$xpathselect = $xpathtd . "/descendant::select";
|
||||
try {
|
||||
$selectnode = $this->find('xpath', $xpathselect);
|
||||
} catch (Exception $ex) {
|
||||
$this->find_button(get_string('showallparticipants', 'workshopallocation_manual'))->press();
|
||||
$selectnode = $this->find('xpath', $xpathselect);
|
||||
}
|
||||
$selectid = $selectnode->getAttribute('id');
|
||||
$selectformfield = behat_field_manager::get_form_field($selectnode, $this->getSession());
|
||||
$selectformfield->set_value($reviewername);
|
||||
// It will stop spinning once all reviewer for workshop participants are added or it time out.
|
||||
$this->spin(
|
||||
function($context, $args) {
|
||||
$participantnameliteral = $this->getSession()->getSelectorsHandler()->xpathLiteral($args['participantname']);
|
||||
$xpathtd = "//table[contains(concat(' ', normalize-space(@class), ' '), ' allocations ')]/".
|
||||
"tbody/tr[./td[contains(concat(' ', normalize-space(@class), ' '), ' peer ')]".
|
||||
"[contains(.,$participantnameliteral)]]/".
|
||||
"td[contains(concat(' ', normalize-space(@class), ' '), ' reviewedby ')]";
|
||||
$xpathselect = $xpathtd . "/descendant::select";
|
||||
try {
|
||||
$selectnode = $this->find('xpath', $xpathselect);
|
||||
} catch (Exception $ex) {
|
||||
$this->find_button(get_string('showallparticipants', 'workshopallocation_manual'))->press();
|
||||
$selectnode = $this->find('xpath', $xpathselect);
|
||||
}
|
||||
|
||||
if (!$this->running_javascript()) {
|
||||
// Without Javascript we need to press the "Go" button.
|
||||
$go = $this->getSession()->getSelectorsHandler()->xpathLiteral(get_string('go'));
|
||||
$this->find('xpath', $xpathtd."/descendant::input[@value=$go]")->click();
|
||||
} else {
|
||||
// With Javascript we just wait for the page to reload and the success string to appear.
|
||||
$allocatedtext = $this->getSession()->getSelectorsHandler()->xpathLiteral(
|
||||
get_string('allocationadded', 'workshopallocation_manual'));
|
||||
$this->find('xpath', "//*[contains(.,$allocatedtext)]");
|
||||
}
|
||||
$selectformfield = behat_field_manager::get_form_field($selectnode, $this->getSession());
|
||||
$selectformfield->set_value($args['reviewername']);
|
||||
|
||||
if (!$this->running_javascript()) {
|
||||
// Without Javascript we need to press the "Go" button.
|
||||
$go = $this->getSession()->getSelectorsHandler()->xpathLiteral(get_string('go'));
|
||||
$this->find('xpath', $xpathtd."/descendant::input[@value=$go]")->click();
|
||||
} else {
|
||||
// With Javascript we just wait for the page to reload and the success string to appear.
|
||||
$allocatedtext = $this->getSession()->getSelectorsHandler()->xpathLiteral(
|
||||
get_string('allocationadded', 'workshopallocation_manual'));
|
||||
$this->find('xpath', "//*[contains(.,$allocatedtext)]");
|
||||
}
|
||||
return true;
|
||||
},
|
||||
array('participantname' => $participantname, 'reviewername' => $reviewername),
|
||||
self::EXTENDED_TIMEOUT
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -73,7 +73,10 @@ if ($from_form = $export_form->get_data()) {
|
||||
echo get_string('yourfileshoulddownload', 'question', $export_url->out());
|
||||
echo $OUTPUT->box_end();
|
||||
|
||||
$PAGE->requires->js_function_call('document.location.replace', array($export_url->out(false)), false, 1);
|
||||
// Don't allow force download for behat site, as pop-up can't be handled by selenium.
|
||||
if (!defined('BEHAT_SITE_RUNNING')) {
|
||||
$PAGE->requires->js_function_call('document.location.replace', array($export_url->out(false)), false, 1);
|
||||
}
|
||||
|
||||
echo $OUTPUT->continue_button(new moodle_url('edit.php', $thispageurl->params()));
|
||||
echo $OUTPUT->footer();
|
||||
|
@ -34,8 +34,4 @@ Feature: Test importing questions from GIFT format.
|
||||
And I set the field "id_format_gift" to "1"
|
||||
And I press "Export questions to file"
|
||||
And following "click here" should download between "1550" and "1650" bytes
|
||||
# If the download step is the last in the scenario then we can sometimes run
|
||||
# into the situation where the download page causes a http redirect but behat
|
||||
# has already conducted its reset (generating an error). By putting a logout
|
||||
# step we avoid behat doing the reset until we are off that page.
|
||||
And I log out
|
||||
|
||||
|
@ -36,11 +36,6 @@ Feature: Test importing questions from Moodle XML format.
|
||||
And I set the field "id_format_xml" to "1"
|
||||
And I press "Export questions to file"
|
||||
And following "click here" should download between "57000" and "58000" bytes
|
||||
# If the download step is the last in the scenario then we can sometimes run
|
||||
# into the situation where the download page causes a http redirect but behat
|
||||
# has already conducted its reset (generating an error). By putting a logout
|
||||
# step we avoid behat doing the reset until we are off that page.
|
||||
And I log out
|
||||
|
||||
@javascript @_file_upload
|
||||
Scenario: import some multiple choice questions from Moodle XML format
|
||||
|
Loading…
x
Reference in New Issue
Block a user