Commit | Line | Data |
---|---|---|
421a2125 PB |
1 | <?php |
2 | namespace Civi\Codeception; | |
3 | ||
4 | /** | |
5 | * Trait CiviAcceptanceTesterTrait | |
6 | * Trait for common functions used for Codeception Testing framework | |
7 | * @package Civi\Codeception | |
8 | */ | |
9 | trait CiviAcceptanceTesterTrait { | |
10 | ||
11 | /** | |
12 | * Parse Parameters, and create generic Civi URL | |
13 | * @param $page | |
14 | * The path and parameters of a CiviCRM page. Ex: "civicrm/dashboard?reset=1". | |
15 | */ | |
16 | public function amOnRoute($page) { | |
17 | $params = explode('?', $page); | |
18 | if (empty($params[1])) { | |
19 | $newPage = \CRM_Utils_System::url($page, NULL, FALSE, NULL, FALSE); | |
20 | } | |
21 | else { | |
22 | $newPage = \CRM_Utils_System::url($params[0], $params[1], FALSE, NULL, FALSE); | |
23 | } | |
e47ba1c0 | 24 | return $this->amOnPage($newPage); |
421a2125 PB |
25 | } |
26 | ||
27 | /** | |
28 | * Dispatcher for login to supported plattforms | |
29 | * @param $username | |
30 | * CiviCRM username for the login | |
31 | * @param $password | |
32 | * CiviCRM password for the login | |
33 | */ | |
34 | public function login($username, $password) { | |
35 | $config = \CRM_Core_Config::singleton(); | |
c64f69d9 | 36 | $handler = [$this, 'loginTo' . $config->userFramework]; |
421a2125 PB |
37 | if (is_callable($handler)) { |
38 | call_user_func($handler, $username, $password); | |
39 | } | |
40 | else { | |
41 | throw new CRM_Core_Exception("Framework {$config->userFramework} is not supported. Implement loginTo{$config->userFramework}."); | |
42 | } | |
43 | } | |
44 | ||
45 | /** | |
46 | * Login to Drupal | |
47 | * @param $username | |
48 | * CiviCRM username for the login | |
49 | * @param $password | |
50 | * CiviCRM password for the login | |
51 | */ | |
52 | public function loginToDrupal($username, $password) { | |
53 | $I = $this; | |
54 | $I->amOnPage('/user'); | |
55 | $I->fillField("#edit-name", $username); | |
56 | $I->fillField("#edit-pass", $password); | |
57 | $I->click("#edit-submit"); | |
58 | $I->see("CiviCRM Home"); | |
59 | } | |
60 | ||
61 | /** | |
62 | * Login to Joomla | |
63 | * @param $username | |
64 | * CiviCRM username for the login | |
65 | * @param $password | |
66 | * CiviCRM password for the login | |
67 | */ | |
68 | public function loginToJoomla($username, $password) { | |
e47ba1c0 | 69 | throw new CRM_Core_Exception("loginToJoomla is not implemented yet. Implement a corresponding login function."); |
421a2125 PB |
70 | } |
71 | ||
72 | /** | |
73 | * Login to Wordpress | |
74 | * @param $username | |
75 | * CiviCRM username for the login | |
76 | * @param $password | |
77 | * CiviCRM password for the login | |
78 | */ | |
79 | public function loginToWordpress($username, $password) { | |
e47ba1c0 | 80 | throw new CRM_Core_Exception("loginToWordpress is not implemented yet. Implement a corresponding login function."); |
421a2125 PB |
81 | } |
82 | ||
83 | /** | |
84 | * Login to Backdrop | |
85 | * @param $username | |
86 | * CiviCRM username for the login | |
87 | * @param $password | |
88 | * CiviCRM password for the login | |
89 | */ | |
90 | public function loginToBackdrop($username, $password) { | |
e47ba1c0 | 91 | throw new CRM_Core_Exception("loginToBackdrop is not implemented yet. Implement a corresponding login function."); |
421a2125 PB |
92 | } |
93 | ||
94 | /** | |
95 | * Login as Admin User | |
96 | */ | |
97 | public function loginAsAdmin() { | |
98 | global $_CV; | |
99 | $this->login($_CV['ADMIN_USER'], $_CV['ADMIN_PASS']); | |
100 | } | |
101 | ||
102 | /** | |
103 | * Login as Demo User | |
104 | */ | |
105 | public function loginAsDemo() { | |
106 | global $_CV; | |
107 | $this->login($_CV['DEMO_USER'], $_CV['DEMO_PASS']); | |
108 | } | |
109 | ||
110 | } |