Merge pull request #17253 from mattwire/utf8convertblocksize
[civicrm-core.git] / tests / phpunit / CRM / Core / BAO / OpenIDTest.php
1 <?php
2
3 /**
4 * Class CRM_Core_BAO_OpenIDTest
5 * @group headless
6 */
7 class CRM_Core_BAO_OpenIDTest extends CiviUnitTestCase {
8
9 public function tearDown() {
10 // If we truncate only contact, then stale domain and openid records will be left.
11 // If we truncate none of these tables, then contactDelete() will incrementally
12 // clean correctly.
13 //$tablesToTruncate = array('civicrm_domain', 'civicrm_contact', 'civicrm_openid');
14 //$this->quickCleanup($tablesToTruncate);
15 }
16
17 public function setUp() {
18 parent::setUp();
19 }
20
21 /**
22 * Add() method (create and update modes)
23 */
24 public function testAdd() {
25 $contactId = $this->individualCreate();
26 $this->assertDBRowExist('CRM_Contact_DAO_Contact', $contactId);
27
28 $openIdURL = "http://test-username.civicrm.org/";
29 $params = [
30 'contact_id' => $contactId,
31 'location_type_id' => 1,
32 'openid' => $openIdURL,
33 'is_primary' => 1,
34 ];
35
36 $openObject = CRM_Core_BAO_OpenID::add($params);
37
38 $openId = $openObject->id;
39
40 $this->assertDBNotNull('CRM_Core_DAO_OpenID', $openIdURL, 'id', 'openid',
41 'Database check for created OpenID.'
42 );
43
44 // Now call add() to modify an existing open-id record
45
46 $params = [
47 'id' => $openId,
48 'contact_id' => $contactId,
49 'openid' => $openIdURL,
50 'is_bulkmail' => 1,
51 'allowed_to_login' => 1,
52 ];
53
54 CRM_Core_BAO_OpenID::add($params);
55
56 $allowedToLogin = $this->assertDBNotNull('CRM_Core_DAO_OpenID', $openId, 'allowed_to_login', 'id',
57 'Database check on updated OpenID record.'
58 );
59 $this->assertEquals($allowedToLogin, 1, 'Verify allowed_to_login value is 1.');
60
61 $this->contactDelete($contactId);
62 $this->assertDBRowNotExist('CRM_Contact_DAO_Contact', $contactId);
63 }
64
65 /**
66 * IfAllowedToLogin() method (set and reset allowed_to_login)
67 */
68 public function testIfAllowedToLogin() {
69 $contactId = $this->individualCreate();
70 $this->assertDBRowExist('CRM_Contact_DAO_Contact', $contactId);
71 $openIdURL = "http://test-username.civicrm.org/";
72
73 $params = [
74 'contact_id' => $contactId,
75 'location_type_id' => 1,
76 'openid' => $openIdURL,
77 'is_primary' => 1,
78 ];
79
80 $openObject = CRM_Core_BAO_OpenID::add($params);
81
82 $openId = $openObject->id;
83 $this->assertDBNotNull('CRM_Core_DAO_OpenID', $openIdURL, 'id', 'openid',
84 'Database check for created OpenID.'
85 );
86
87 $allowedToLogin = CRM_Core_BAO_OpenID::isAllowedToLogin($openIdURL);
88 $this->assertEquals($allowedToLogin, FALSE, 'Verify allowed_to_login value is 0.');
89
90 // Now call add() to modify an existing open-id record
91
92 $params = [
93 'id' => $openId,
94 'contact_id' => $contactId,
95 'openid' => $openIdURL,
96 'is_bulkmail' => 1,
97 'allowed_to_login' => 1,
98 ];
99
100 CRM_Core_BAO_OpenID::add($params);
101
102 $allowedToLogin = CRM_Core_BAO_OpenID::isAllowedToLogin($openIdURL);
103
104 $this->assertEquals($allowedToLogin, TRUE, 'Verify allowed_to_login value is 1.');
105 $this->contactDelete($contactId);
106 //domain contact doesn't really get deleted //
107 $this->assertDBRowNotExist('CRM_Contact_DAO_Contact', $contactId);
108 }
109
110 /**
111 * AllOpenIDs() method - get all OpenIDs for the given contact
112 */
113 public function testAllOpenIDs() {
114 $contactId = $this->individualCreate();
115 $this->assertDBRowExist('CRM_Contact_DAO_Contact', $contactId);
116
117 // create first openid
118 $openIdURLOne = "http://test-one-username.civicrm.org/";
119 $params = [
120 'contact_id' => $contactId,
121 'location_type_id' => 1,
122 'openid' => $openIdURLOne,
123 'is_primary' => 1,
124 'allowed_to_login' => 1,
125 ];
126
127 $openObjectOne = CRM_Core_BAO_OpenID::add($params);
128
129 $openIdOne = $openObjectOne->id;
130 $this->assertDBNotNull('CRM_Core_DAO_OpenID', $openIdURLOne, 'id', 'openid',
131 'Database check for created OpenID.'
132 );
133
134 // create second openid
135 $openIdURLTwo = "http://test-two-username.civicrm.org/";
136 $params = [
137 'contact_id' => $contactId,
138 'location_type_id' => 1,
139 'openid' => $openIdURLTwo,
140 ];
141
142 $openObjectTwo = CRM_Core_BAO_OpenID::add($params);
143 $openIdTwo = $openObjectTwo->id;
144
145 $this->assertDBNotNull('CRM_Core_DAO_OpenID', $openIdURLTwo, 'id', 'openid',
146 'Database check for created OpenID.'
147 );
148
149 // obtain all openids for the contact
150 $openIds = CRM_Core_BAO_OpenID::allOpenIDs($contactId);
151
152 // check number of openids for the contact
153 $this->assertEquals(2, count($openIds), 'Checking number of returned open-ids.');
154
155 // check first openid values
156 $this->assertEquals($openIdURLOne, $openIds[$openIdOne]['openid'],
157 'Confirm first openid value.'
158 );
159 $this->assertEquals(1, $openIds[$openIdOne]['is_primary'], 'Confirm is_primary field value.');
160 $this->assertEquals(1, $openIds[$openIdOne]['allowed_to_login'], 'Confirm allowed_to_login field value.');
161
162 // check second openid values
163 $this->assertEquals($openIdURLTwo, $openIds[$openIdTwo]['openid'],
164 'Confirm second openid value.'
165 );
166 $this->assertEquals(0, $openIds[$openIdTwo]['is_primary'], 'Confirm is_primary field value for second openid.');
167 $this->assertEquals(0, $openIds[$openIdTwo]['allowed_to_login'], 'Confirm allowed_to_login field value for second openid.');
168
169 $this->contactDelete($contactId);
170 $this->assertDBRowNotExist('CRM_Contact_DAO_Contact', $contactId);
171 }
172
173 }