2 require_once 'CiviTest/CiviUnitTestCase.php';
3 require_once 'CiviTest/Contact.php';
6 * Class CRM_Core_BAO_OpenIDTest
8 class CRM_Core_BAO_OpenIDTest
extends CiviUnitTestCase
{
14 'name' => 'OpenID BAOs',
15 'description' => 'Test all Core_BAO_OpenID methods.',
16 'group' => 'CiviCRM BAO Tests',
21 // If we truncate only contact, then stale domain and openid records will be left.
22 // If we truncate none of these tables, then contactDelete() will incrementally
24 //$tablesToTruncate = array('civicrm_domain', 'civicrm_contact', 'civicrm_openid');
25 //$this->quickCleanup($tablesToTruncate);
33 * add() method (create and update modes)
36 $contactId = Contact
::createIndividual();
37 $this->assertDBRowExist('CRM_Contact_DAO_Contact', $contactId);
39 $openIdURL = "http://test-username.civicrm.org/";
41 'contact_id' => $contactId,
42 'location_type_id' => 1,
43 'openid' => $openIdURL,
47 $openObject = CRM_Core_BAO_OpenID
::add($params);
49 $openId = $openObject->id
;
51 $this->assertDBNotNull('CRM_Core_DAO_OpenID', $openIdURL, 'id', 'openid',
52 'Database check for created OpenID.'
55 // Now call add() to modify an existing open-id record
59 'contact_id' => $contactId,
60 'openid' => $openIdURL,
62 'allowed_to_login' => 1,
65 CRM_Core_BAO_OpenID
::add($params);
67 $allowedToLogin = $this->assertDBNotNull('CRM_Core_DAO_OpenID', $openId, 'allowed_to_login', 'id',
68 'Database check on updated OpenID record.'
70 $this->assertEquals($allowedToLogin, 1, 'Verify allowed_to_login value is 1.');
72 $this->contactDelete($contactId);
73 $this->assertDBRowNotExist('CRM_Contact_DAO_Contact', $contactId);
77 * ifAllowedToLogin() method (set and reset allowed_to_login)
79 function testIfAllowedToLogin() {
80 $contactId = Contact
::createIndividual();
81 $this->assertDBRowExist('CRM_Contact_DAO_Contact', $contactId);
82 $openIdURL = "http://test-username.civicrm.org/";
85 'contact_id' => $contactId,
86 'location_type_id' => 1,
87 'openid' => $openIdURL,
91 $openObject = CRM_Core_BAO_OpenID
::add($params);
93 $openId = $openObject->id
;
94 $this->assertDBNotNull('CRM_Core_DAO_OpenID', $openIdURL, 'id', 'openid',
95 'Database check for created OpenID.'
98 $allowedToLogin = CRM_Core_BAO_OpenID
::isAllowedToLogin($openIdURL);
99 $this->assertEquals($allowedToLogin, FALSE, 'Verify allowed_to_login value is 0.');
101 // Now call add() to modify an existing open-id record
105 'contact_id' => $contactId,
106 'openid' => $openIdURL,
108 'allowed_to_login' => 1,
111 CRM_Core_BAO_OpenID
::add($params);
113 $allowedToLogin = CRM_Core_BAO_OpenID
::isAllowedToLogin($openIdURL);
115 $this->assertEquals($allowedToLogin, TRUE, 'Verify allowed_to_login value is 1.');
116 $this->contactDelete($contactId);
117 //domain contact doesn't really get deleted //
118 $this->assertDBRowNotExist('CRM_Contact_DAO_Contact', $contactId);
122 * allOpenIDs() method - get all OpenIDs for the given contact
124 function testAllOpenIDs() {
125 $contactId = Contact
::createIndividual();
126 $this->assertDBRowExist('CRM_Contact_DAO_Contact', $contactId);
128 // create first openid
129 $openIdURLOne = "http://test-one-username.civicrm.org/";
131 'contact_id' => $contactId,
132 'location_type_id' => 1,
133 'openid' => $openIdURLOne,
135 'allowed_to_login' => 1,
138 $openObjectOne = CRM_Core_BAO_OpenID
::add($params);
140 $openIdOne = $openObjectOne->id
;
141 $this->assertDBNotNull('CRM_Core_DAO_OpenID', $openIdURLOne, 'id', 'openid',
142 'Database check for created OpenID.'
145 // create second openid
146 $openIdURLTwo = "http://test-two-username.civicrm.org/";
148 'contact_id' => $contactId,
149 'location_type_id' => 1,
150 'openid' => $openIdURLTwo,
153 $openObjectTwo = CRM_Core_BAO_OpenID
::add($params);
154 $openIdTwo = $openObjectTwo->id
;
156 $this->assertDBNotNull('CRM_Core_DAO_OpenID', $openIdURLTwo, 'id', 'openid',
157 'Database check for created OpenID.'
160 // obtain all openids for the contact
161 $openIds = CRM_Core_BAO_OpenID
::allOpenIDs($contactId);
163 // check number of openids for the contact
164 $this->assertEquals(2, count($openIds), 'Checking number of returned open-ids.');
166 // check first openid values
167 $this->assertEquals($openIdURLOne, $openIds[$openIdOne]['openid'],
168 'Confirm first openid value.'
170 $this->assertEquals(1, $openIds[$openIdOne]['is_primary'], 'Confirm is_primary field value.');
171 $this->assertEquals(1, $openIds[$openIdOne]['allowed_to_login'], 'Confirm allowed_to_login field value.');
173 // check second openid values
174 $this->assertEquals($openIdURLTwo, $openIds[$openIdTwo]['openid'],
175 'Confirm second openid value.'
177 $this->assertEquals(0, $openIds[$openIdTwo]['is_primary'], 'Confirm is_primary field value for second openid.');
178 $this->assertEquals(0, $openIds[$openIdTwo]['allowed_to_login'], 'Confirm allowed_to_login field value for second openid.');
180 //Contact::delete($contactId);
181 $this->contactDelete($contactId);
182 $this->assertDBRowNotExist('CRM_Contact_DAO_Contact', $contactId);