From 421a2125f7da0efa342cf0018c2948f603a150bd Mon Sep 17 00:00:00 2001 From: Philipp Batroff Date: Thu, 12 Oct 2017 00:41:03 +0200 Subject: [PATCH] Added Trait for Codeception Integration --- .../Codeception/CiviAcceptanceTesterTrait.php | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 Civi/Codeception/CiviAcceptanceTesterTrait.php diff --git a/Civi/Codeception/CiviAcceptanceTesterTrait.php b/Civi/Codeception/CiviAcceptanceTesterTrait.php new file mode 100644 index 0000000000..a6c8e547c4 --- /dev/null +++ b/Civi/Codeception/CiviAcceptanceTesterTrait.php @@ -0,0 +1,110 @@ +amOnPage($newPage); + } + + /** + * Dispatcher for login to supported plattforms + * @param $username + * CiviCRM username for the login + * @param $password + * CiviCRM password for the login + */ + public function login($username, $password) { + $config = \CRM_Core_Config::singleton(); + $handler = array($this, 'loginTo' . $config->userFramework); + if (is_callable($handler)) { + call_user_func($handler, $username, $password); + } + else { + throw new CRM_Core_Exception("Framework {$config->userFramework} is not supported. Implement loginTo{$config->userFramework}."); + } + } + + /** + * Login to Drupal + * @param $username + * CiviCRM username for the login + * @param $password + * CiviCRM password for the login + */ + public function loginToDrupal($username, $password) { + $I = $this; + $I->amOnPage('/user'); + $I->fillField("#edit-name", $username); + $I->fillField("#edit-pass", $password); + $I->click("#edit-submit"); + $I->see("CiviCRM Home"); + } + + /** + * Login to Joomla + * @param $username + * CiviCRM username for the login + * @param $password + * CiviCRM password for the login + */ + public function loginToJoomla($username, $password) { + throw new CRM_Core_Exception("loginToJoomla is not implemented yet. Implement a corrosponding login function."); + } + + /** + * Login to Wordpress + * @param $username + * CiviCRM username for the login + * @param $password + * CiviCRM password for the login + */ + public function loginToWordpress($username, $password) { + throw new CRM_Core_Exception("loginToWordpress is not implemented yet. Implement a corrosponding login function."); + } + + /** + * Login to Backdrop + * @param $username + * CiviCRM username for the login + * @param $password + * CiviCRM password for the login + */ + public function loginToBackdrop($username, $password) { + throw new CRM_Core_Exception("loginToBackdrop is not implemented yet. Implement a corrosponding login function."); + } + + /** + * Login as Admin User + */ + public function loginAsAdmin() { + global $_CV; + $this->login($_CV['ADMIN_USER'], $_CV['ADMIN_PASS']); + } + + /** + * Login as Demo User + */ + public function loginAsDemo() { + global $_CV; + $this->login($_CV['DEMO_USER'], $_CV['DEMO_PASS']); + } + +} -- 2.25.1