diff --git a/mod/glossary/tests/behat/behat_mod_glossary.php b/mod/glossary/tests/behat/behat_mod_glossary.php new file mode 100644 index 00000000000..4d272685cab --- /dev/null +++ b/mod/glossary/tests/behat/behat_mod_glossary.php @@ -0,0 +1,58 @@ +. + +/** + * Steps definitions related with the glossary activity. + * + * @package mod_glossary + * @category test + * @copyright 2013 David MonllaĆ³ + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. + +require_once(__DIR__ . '/../../../../lib/behat/behat_base.php'); + +use Behat\Behat\Context\Step\Given as Given, + Behat\Gherkin\Node\TableNode as TableNode, + Behat\Mink\Exception\ElementNotFoundException as ElementNotFoundException; + +/** + * Glossary-related steps definitions. + * + * @package mod_glossary + * @category test + * @copyright 2013 David MonllaĆ³ + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class behat_mod_glossary extends behat_base { + + /** + * Adds an entry to the current glossary with the provided data. You should be in the glossary page. + * + * @Given /^I add a glossary entry with the following data:$/ + * @param TableNode $data + */ + public function i_add_a_glossary_entry_with_the_following_data(TableNode $data) { + return array( + new Given('I press "' . get_string('addentry', 'mod_glossary') . '"'), + new Given('I fill the moodle form with:', $data), + new Given('I press "Save changes"') + ); + } + +} diff --git a/mod/glossary/tests/behat/prevent_duplicate_entries.feature b/mod/glossary/tests/behat/prevent_duplicate_entries.feature new file mode 100644 index 00000000000..196d220982e --- /dev/null +++ b/mod/glossary/tests/behat/prevent_duplicate_entries.feature @@ -0,0 +1,36 @@ +@mod_glossary +Feature: A teacher can choose whether to allow duplicate entries in a glossary + In order to avoid confusion + As a moodle teacher + I need to avoid having duplicate concept definitions + + @javascript + Scenario: Prevent duplicate entries + Given the following "users" exists: + | username | firstname | lastname | email | + | teacher1 | Teacher | 1 | teacher1@asd.com | + And the following "courses" exists: + | fullname | shortname | category | + | Course 1 | C1 | 0 | + And the following "course enrolments" exists: + | user | course | role | + | teacher1 | C1 | editingteacher | + And I log in as "teacher1" + And I follow "Course 1" + And I turn editing mode on + And I add a "Glossary" to section "1" and I fill the form with: + | Name | Test glossary name | + | Description | Test glossary description | + | Duplicate entries allowed | No | + And I follow "Test glossary name" + And I add a glossary entry with the following data: + | Concept | Unique concept | + | Definition | I'm the definition of an unique concept | + When I press "Add a new entry" + And I fill the moodle form with: + | Concept | Unique concept | + | Definition | There is no definition restriction | + And I press "Save changes" + Then I should see "This concept already exists. No duplicates allowed in this glossary." + And I press "Cancel" +