diff --git a/lib/behat/behat_files.php b/lib/behat/behat_files.php
index 0c485745005..06358f3f9ea 100644
--- a/lib/behat/behat_files.php
+++ b/lib/behat/behat_files.php
@@ -49,9 +49,9 @@ use Behat\Mink\Exception\ExpectationException as ExpectationException,
class behat_files extends behat_base {
/**
- * Gets the filepicker NodeElement.
+ * Gets the NodeElement for filepicker of filemanager moodleform element.
*
- * The filepicker field label is pointing to a hidden input which is
+ * The filepicker/filemanager element label is pointing to a hidden input which is
* not recognized as a named selector, as it is hidden...
*
* @throws ExpectationException Thrown by behat_base::find
@@ -77,7 +77,7 @@ class behat_files extends behat_base {
}
/**
- * Performs $action on a filepicker container element (file or folder).
+ * Performs $action on a filemanager container element (file or folder).
*
* It works together with open_element_contextual_menu
* as this method needs the contextual menu to be opened.
@@ -99,22 +99,22 @@ class behat_files extends behat_base {
/**
* Opens the contextual menu of a folder or a file.
*
- * Works both in filepicker elements and when dealing with repository
- * elements inside modal windows.
+ * Works both in filemanager elements and when dealing with repository
+ * elements inside filepicker modal window.
*
* @throws ExpectationException Thrown by behat_base::find
* @param string $name The name of the folder/file
- * @param string $filepickerelement The filepicker form element locator, the repository items are in filepicker modal window if false
+ * @param string $filemanagerelement The filemanager form element locator, the repository items are in filepicker modal window if false
* @return void
*/
- protected function open_element_contextual_menu($name, $filepickerelement = false) {
+ protected function open_element_contextual_menu($name, $filemanagerelement = false) {
- // If a filepicker is specified we restrict the search to the filepicker descendants.
+ // If a filemanager is specified we restrict the search to the descendants of this particular filemanager form element.
$containernode = false;
$exceptionmsg = '"'.$name.'" element can not be found';
- if ($filepickerelement) {
- $containernode = $this->get_filepicker_node($filepickerelement);
- $exceptionmsg = 'The "'.$filepickerelement.'" filepicker ' . $exceptionmsg;
+ if ($filemanagerelement) {
+ $containernode = $this->get_filepicker_node($filemanagerelement);
+ $exceptionmsg = 'The "'.$filemanagerelement.'" filemanager ' . $exceptionmsg;
$locatorprefix = "//div[@class='fp-content']";
} else {
$locatorprefix = "//div[contains(concat(' ', normalize-space(@class), ' '), ' fp-repo-items ')]//descendant::div[@class='fp-content']";
@@ -125,7 +125,7 @@ class behat_files extends behat_base {
// Avoid quote-related problems.
$name = $this->getSession()->getSelectorsHandler()->xpathLiteral($name);
- // Get a filepicker element (folder or file).
+ // Get a filepicker/filemanager element (folder or file).
try {
// First we look at the folder as we need to click on the contextual menu otherwise it would be opened.
@@ -159,25 +159,25 @@ class behat_files extends behat_base {
}
/**
- * Opens the 'add file' modal window and selects the repository.
+ * Opens the filepicker modal window and selects the repository.
*
* @throws ExpectationException Thrown by behat_base::find
- * @param NodeElement $filepickernode The filepicker DOM node.
+ * @param NodeElement $filemanagernode The filemanager or filepicker form element DOM node.
* @param mixed $repositoryname The repo name.
* @return void
*/
- protected function open_add_file_window($filepickernode, $repositoryname) {
+ protected function open_add_file_window($filemanagernode, $repositoryname) {
- $exception = new ExpectationException('No files can be added to the specified filepicker', $this->getSession());
+ $exception = new ExpectationException('No files can be added to the specified filemanager', $this->getSession());
- // We should deal with single-file and multiple-file filepickers,
+ // We should deal with single-file and multiple-file filemanagers,
// catching the exception thrown by behat_base::find() in case is not multiple
try {
- // Looking for the add button inside the specified filepicker.
- $add = $this->find('css', 'div.fp-btn-add a', $exception, $filepickernode);
+ // Looking for the add button inside the specified filemanager.
+ $add = $this->find('css', 'div.fp-btn-add a', $exception, $filemanagernode);
} catch (Exception $e) {
- // Otherwise should be a single-file filepicker.
- $add = $this->find('css', 'input.fp-btn-choose', $exception, $filepickernode);
+ // Otherwise should be a single-file filepicker form element.
+ $add = $this->find('css', 'input.fp-btn-choose', $exception, $filemanagernode);
}
$add->click();
@@ -187,7 +187,7 @@ class behat_files extends behat_base {
// Avoid problems with both double and single quotes in the same string.
$repositoryname = $this->getSession()->getSelectorsHandler()->xpathLiteral($repositoryname);
- // Here we don't need to look inside the selected filepicker because there can only be one modal window.
+ // Here we don't need to look inside the selected element because there can only be one modal window.
$repositorylink = $this->find(
'xpath',
"//div[contains(concat(' ', normalize-space(@class), ' '), ' fp-repo-area ')]" .
diff --git a/repository/tests/behat/behat_filepicker.php b/repository/tests/behat/behat_filepicker.php
index f6b4b3276a4..139741c489e 100644
--- a/repository/tests/behat/behat_filepicker.php
+++ b/repository/tests/behat/behat_filepicker.php
@@ -15,7 +15,7 @@
// along with Moodle. If not, see .
/**
- * Files and filepicker manipulation steps definitions.
+ * Filemanager and filepicker manipulation steps definitions.
*
* @package core
* @category test
@@ -28,10 +28,11 @@
require_once(__DIR__ . '/../../../lib/behat/behat_files.php');
use Behat\Mink\Exception\ExpectationException as ExpectationException,
- Behat\Gherkin\Node\TableNode as TableNode;
+ Behat\Gherkin\Node\TableNode as TableNode,
+ Behat\Behat\Context\Step\Given as Given;
/**
- * Steps definitions to deal with the filepicker.
+ * Steps definitions to deal with the filemanager and filepicker.
*
* Extends behat_files rather than behat_base as is file-related.
*
@@ -45,17 +46,34 @@ class behat_filepicker extends behat_files {
/**
* Creates a folder with specified name in the current folder and in the specified filepicker field.
*
+ * Will be deprecated in 2.7
+ * @see behat_filepicker::i_create_folder_in_filemanager()
+ *
* @Given /^I create "(?P(?:[^"]|\\")*)" folder in "(?P(?:[^"]|\\")*)" filepicker$/
* @throws ExpectationException Thrown by behat_base::find
* @param string $foldername
* @param string $filepickerelement
*/
public function i_create_folder_in_filepicker($foldername, $filepickerelement) {
+ $alternative = 'I create "' . $this->escape($foldername) .
+ '" folder in "' . $this->escape($filepickerelement) . '" filemanager';
+ return array(new Given($alternative));
+ }
- $fieldnode = $this->get_filepicker_node($filepickerelement);
+ /**
+ * Creates a folder with specified name in the current folder and in the specified filemanager field.
+ *
+ * @Given /^I create "(?P(?:[^"]|\\")*)" folder in "(?P(?:[^"]|\\")*)" filemanager$/
+ * @throws ExpectationException Thrown by behat_base::find
+ * @param string $foldername
+ * @param string $filemanagerelement
+ */
+ public function i_create_folder_in_filemanager($foldername, $filemanagerelement) {
- // Looking for the create folder button inside the specified filepicker.
- $exception = new ExpectationException('No folders can be created in "'.$filepickerelement.'" filepicker', $this->getSession());
+ $fieldnode = $this->get_filepicker_node($filemanagerelement);
+
+ // Looking for the create folder button inside the specified filemanager.
+ $exception = new ExpectationException('No folders can be created in "'.$filemanagerelement.'" filemanager', $this->getSession());
$newfolder = $this->find('css', 'div.fp-btn-mkdir a', $exception, $fieldnode);
$newfolder->click();
@@ -79,17 +97,34 @@ class behat_filepicker extends behat_files {
/**
* Opens the contents of a filepicker folder. It looks for the folder in the current folder and in the path bar.
*
+ * Will be deprecated in 2.7
+ * @see behat_filepicker::i_open_folder_from_filemanager()
+ *
* @Given /^I open "(?P(?:[^"]|\\")*)" folder from "(?P(?:[^"]|\\")*)" filepicker$/
* @throws ExpectationException Thrown by behat_base::find
* @param string $foldername
* @param string $filepickerelement
*/
public function i_open_folder_from_filepicker($foldername, $filepickerelement) {
+ $alternative = 'I open "' . $this->escape($foldername) . '" folder from "' .
+ $this->escape($filepickerelement) . '" filemanager';
+ return array(new Given($alternative));
+ }
- $fieldnode = $this->get_filepicker_node($filepickerelement);
+ /**
+ * Opens the contents of a filemanager folder. It looks for the folder in the current folder and in the path bar.
+ *
+ * @Given /^I open "(?P(?:[^"]|\\")*)" folder from "(?P(?:[^"]|\\")*)" filemanager$/
+ * @throws ExpectationException Thrown by behat_base::find
+ * @param string $foldername
+ * @param string $filemanagerelement
+ */
+ public function i_open_folder_from_filemanager($foldername, $filemanagerelement) {
+
+ $fieldnode = $this->get_filepicker_node($filemanagerelement);
$exception = new ExpectationException(
- 'The "'.$foldername.'" folder can not be found in the "'.$filepickerelement.'" filepicker',
+ 'The "'.$foldername.'" folder can not be found in the "'.$filemanagerelement.'" filemanager',
$this->getSession()
);
@@ -132,15 +167,32 @@ class behat_filepicker extends behat_files {
/**
* Unzips the specified file from the specified filepicker field. The zip file has to be visible in the current folder.
*
+ * Will be deprecated in 2.7
+ * @see behat_filepicker::i_unzip_file_from_filemanager()
+ *
* @Given /^I unzip "(?P(?:[^"]|\\")*)" file from "(?P(?:[^"]|\\")*)" filepicker$/
* @throws ExpectationException Thrown by behat_base::find
* @param string $filename
* @param string $filepickerelement
*/
public function i_unzip_file_from_filepicker($filename, $filepickerelement) {
+ $alternative = 'I unzip "' . $this->escape($filename) . '" file from "' .
+ $this->escape($filepickerelement) . '" filemanager';
+ return array(new Given($alternative));
+ }
- // Open the contextual menu of the filepicker element.
- $this->open_element_contextual_menu($filename, $filepickerelement);
+ /**
+ * Unzips the specified file from the specified filemanager field. The zip file has to be visible in the current folder.
+ *
+ * @Given /^I unzip "(?P(?:[^"]|\\")*)" file from "(?P(?:[^"]|\\")*)" filemanager$/
+ * @throws ExpectationException Thrown by behat_base::find
+ * @param string $filename
+ * @param string $filemanagerelement
+ */
+ public function i_unzip_file_from_filemanager($filename, $filemanagerelement) {
+
+ // Open the contextual menu of the filemanager element.
+ $this->open_element_contextual_menu($filename, $filemanagerelement);
// Execute the action.
$exception = new ExpectationException($filename.' element can not be unzipped', $this->getSession());
@@ -150,22 +202,38 @@ class behat_filepicker extends behat_files {
$this->wait_until_return_to_form();
// Wait until the current folder contents are updated
- $containernode = $this->get_filepicker_node($filepickerelement);
+ $containernode = $this->get_filepicker_node($filemanagerelement);
$this->wait_until_contents_are_updated($containernode);
}
/**
* Zips the specified folder from the specified filepicker field. The folder has to be in the current folder.
*
+ * Will be deprecated in 2.7
+ *
* @Given /^I zip "(?P(?:[^"]|\\")*)" folder from "(?P(?:[^"]|\\")*)" filepicker$/
* @throws ExpectationException Thrown by behat_base::find
* @param string $foldername
* @param string $filepickerelement
*/
public function i_zip_folder_from_filepicker($foldername, $filepickerelement) {
+ $alternative = 'I zip "' . $this->escape($foldername) . '" folder from "' .
+ $this->escape($filepickerelement) . '" filemanager';
+ return array(new Given($alternative));
+ }
- // Open the contextual menu of the filepicker element.
- $this->open_element_contextual_menu($foldername, $filepickerelement);
+ /**
+ * Zips the specified folder from the specified filemanager field. The folder has to be in the current folder.
+ *
+ * @Given /^I zip "(?P(?:[^"]|\\")*)" folder from "(?P(?:[^"]|\\")*)" filemanager$/
+ * @throws ExpectationException Thrown by behat_base::find
+ * @param string $foldername
+ * @param string $filemanagerelement
+ */
+ public function i_zip_folder_from_filemanager($foldername, $filemanagerelement) {
+
+ // Open the contextual menu of the filemanager element.
+ $this->open_element_contextual_menu($foldername, $filemanagerelement);
// Execute the action.
$exception = new ExpectationException($foldername.' element can not be zipped', $this->getSession());
@@ -175,22 +243,39 @@ class behat_filepicker extends behat_files {
$this->wait_until_return_to_form();
// Wait until the current folder contents are updated
- $containernode = $this->get_filepicker_node($filepickerelement);
+ $containernode = $this->get_filepicker_node($filemanagerelement);
$this->wait_until_contents_are_updated($containernode);
}
/**
* Deletes the specified file or folder from the specified filepicker field.
*
+ * Will be deprecated in 2.7
+ * @see behat_filepicker::i_delete_file_from_filemanager()
+ *
* @Given /^I delete "(?P(?:[^"]|\\")*)" from "(?P(?:[^"]|\\")*)" filepicker$/
* @throws ExpectationException Thrown by behat_base::find
- * @param string $foldername
+ * @param string $name
* @param string $filepickerelement
*/
public function i_delete_file_from_filepicker($name, $filepickerelement) {
+ $alternative = 'I delete "' . $this->escape($name) . '" from "' .
+ $this->escape($filepickerelement) . '" filemanager';
+ return array(new Given($alternative));
+ }
- // Open the contextual menu of the filepicker element.
- $this->open_element_contextual_menu($name, $filepickerelement);
+ /**
+ * Deletes the specified file or folder from the specified filemanager field.
+ *
+ * @Given /^I delete "(?P(?:[^"]|\\")*)" from "(?P(?:[^"]|\\")*)" filemanager$/
+ * @throws ExpectationException Thrown by behat_base::find
+ * @param string $name
+ * @param string $filemanagerelement
+ */
+ public function i_delete_file_from_filemanager($name, $filemanagerelement) {
+
+ // Open the contextual menu of the filemanager element.
+ $this->open_element_contextual_menu($name, $filemanagerelement);
// Execute the action.
$exception = new ExpectationException($name.' element can not be deleted', $this->getSession());
@@ -205,7 +290,7 @@ class behat_filepicker extends behat_files {
$this->wait_until_return_to_form();
// Wait until file manager contents are updated.
- $containernode = $this->get_filepicker_node($filepickerelement);
+ $containernode = $this->get_filepicker_node($filemanagerelement);
$this->wait_until_contents_are_updated($containernode);
}
diff --git a/repository/tests/behat/create_folders.feature b/repository/tests/behat/create_folders.feature
index 7492dad227f..a37dcf20e47 100644
--- a/repository/tests/behat/create_folders.feature
+++ b/repository/tests/behat/create_folders.feature
@@ -16,11 +16,11 @@ Feature: Create folders in the file manager
And I fill the moodle form with:
| Name | Folder resource |
| Description | The description |
- And I create "Folder 1" folder in "Files" filepicker
- And I open "Folder 1" folder from "Files" filepicker
- And I create "SubFolder 1" folder in "Files" filepicker
- When I open "Files" folder from "Files" filepicker
+ And I create "Folder 1" folder in "Files" filemanager
+ And I open "Folder 1" folder from "Files" filemanager
+ And I create "SubFolder 1" folder in "Files" filemanager
+ When I open "Files" folder from "Files" filemanager
Then I should see "Folder 1"
- And I open "Folder 1" folder from "Files" filepicker
+ And I open "Folder 1" folder from "Files" filemanager
And I should see "SubFolder 1"
And I press "Save and return to course"
diff --git a/repository/tests/behat/delete_files.feature b/repository/tests/behat/delete_files.feature
index ab170a66928..df5dcce1e29 100644
--- a/repository/tests/behat/delete_files.feature
+++ b/repository/tests/behat/delete_files.feature
@@ -10,12 +10,12 @@ Feature: Delete files and folders from the file manager
And I expand "My profile" node
And I follow "My private files"
And I upload "lib/tests/fixtures/empty.txt" file to "Files" filemanager
- And I create "Delete me" folder in "Files" filepicker
+ And I create "Delete me" folder in "Files" filemanager
And I press "Save changes"
- When I delete "empty.txt" from "Files" filepicker
+ When I delete "empty.txt" from "Files" filemanager
And I press "Save changes"
Then I should not see "empty.txt"
- And I delete "Delete me" from "Files" filepicker
+ And I delete "Delete me" from "Files" filemanager
And I press "Save changes"
And I should not see "Delete me"
And I press "Cancel"
diff --git a/repository/tests/behat/zip_and_unzip.feature b/repository/tests/behat/zip_and_unzip.feature
index 230fb2b3a28..ba8470c77cc 100644
--- a/repository/tests/behat/zip_and_unzip.feature
+++ b/repository/tests/behat/zip_and_unzip.feature
@@ -16,15 +16,15 @@ Feature: Zip folders and unzip compressed files
And I fill the moodle form with:
| Name | Folder resource |
| Description | The description |
- And I create "Folder 1" folder in "Files" filepicker
- And I open "Folder 1" folder from "Files" filepicker
- And I create "SubFolder 1" folder in "Files" filepicker
- And I open "Files" folder from "Files" filepicker
- And I zip "Folder 1" folder from "Files" filepicker
- And I delete "Folder 1" from "Files" filepicker
- When I unzip "Folder 1.zip" file from "Files" filepicker
- And I delete "Folder 1.zip" from "Files" filepicker
+ And I create "Folder 1" folder in "Files" filemanager
+ And I open "Folder 1" folder from "Files" filemanager
+ And I create "SubFolder 1" folder in "Files" filemanager
+ And I open "Files" folder from "Files" filemanager
+ And I zip "Folder 1" folder from "Files" filemanager
+ And I delete "Folder 1" from "Files" filemanager
+ When I unzip "Folder 1.zip" file from "Files" filemanager
+ And I delete "Folder 1.zip" from "Files" filemanager
Then I should see "Folder 1"
- And I open "Folder 1" folder from "Files" filepicker
+ And I open "Folder 1" folder from "Files" filemanager
And I should see "SubFolder 1"
And I press "Save and return to course"