useTransaction(TRUE); $this->_apiversion = 3; $this->_groupID = $this->groupCreate(); $this->_email = 'test@test.test'; } //---------- civicrm_mailing_event_subscribe methods --------- /** * Test civicrm_mailing_group_event_subscribe with wrong params. */ public function testMailerGroupSubscribeWrongParams() { $params = array( 'email' => $this->_email, 'group_id' => 'Wrong Group ID', 'contact_id' => '2121', 'time_stamp' => '20111111010101', 'hash' => 'sasa', ); $result = $this->callAPIFailure('mailing_event_subscribe', 'create', $params); if ($result['error_message'] != 'Subscription failed') { $this->assertEquals($result['error_message'], 'Invalid Group id', 'In line ' . __LINE__); } else { $this->assertEquals($result['error_message'], 'Subscription failed', 'In line ' . __LINE__); } } /** * Test civicrm_mailing_group_event_subscribe with given contact ID. */ public function testMailerGroupSubscribeGivenContactId() { $params = array( 'first_name' => 'Test', 'last_name' => 'Test', 'email' => $this->_email, 'contact_type' => 'Individual', ); $contactID = $this->individualCreate($params); $params = array( 'email' => $this->_email, 'group_id' => $this->_groupID, 'contact_id' => $contactID, 'hash' => 'b15de8b64e2cec34', 'time_stamp' => '20101212121212', ); $result = $this->callAPIAndDocument('mailing_event_subscribe', 'create', $params, __FUNCTION__, __FILE__); $this->assertEquals($result['values'][$result['id']]['contact_id'], $contactID); $this->contactDelete($contactID); } //-------- civicrm_mailing_group_event_unsubscribe methods----------- /** * Test civicrm_mailing_group_event_unsubscribe with wrong params. */ public function testMailerGroupUnsubscribeWrongParams() { $params = array( 'job_id' => 'Wrong ID', 'event_queue_id' => 'Wrong ID', 'hash' => 'Wrong Hash', 'time_stamp' => '20101212121212', ); $result = $this->callAPIFailure('mailing_event_unsubscribe', 'create', $params); $this->assertEquals($result['error_message'], 'Queue event could not be found', 'In line ' . __LINE__); } //--------- civicrm_mailing_group_event_domain_unsubscribe methods ------- /** * Test civicrm_mailing_group_event_domain_unsubscribe with wrong params. */ public function testMailerGroupDomainUnsubscribeWrongParams() { $params = array( 'job_id' => 'Wrong ID', 'event_queue_id' => 'Wrong ID', 'hash' => 'Wrong Hash', 'org_unsubscribe' => 1, 'time_stamp' => '20101212121212', ); $result = $this->callAPIFailure('mailing_event_unsubscribe', 'create', $params); $this->assertEquals($result['error_message'], 'Domain Queue event could not be found', 'In line ' . __LINE__); } //----------- civicrm_mailing_group_event_resubscribe methods-------- /** * Test civicrm_mailing_group_event_resubscribe with wrong params type. */ /** * Test civicrm_mailing_group_event_resubscribe with wrong params. */ public function testMailerGroupResubscribeWrongParams() { $params = array( 'job_id' => 'Wrong ID', 'event_queue_id' => 'Wrong ID', 'hash' => 'Wrong Hash', 'org_unsubscribe' => 'test', 'time_stamp' => '20101212121212', ); $result = $this->callAPIFailure('mailing_event_resubscribe', 'create', $params); $this->assertEquals($result['error_message'], 'Queue event could not be found', 'In line ' . __LINE__); } //------------------------ success case --------------------- /** * Test civicrm_mailing_group_event_subscribe and civicrm_mailing_event_confirm functions - success expected. */ public function testMailerProcess() { $params = array( 'first_name' => 'Test', 'last_name' => 'Test', 'email' => $this->_email, 'contact_type' => 'Individual', ); $contactID = $this->individualCreate($params); $params = array( 'email' => $this->_email, 'group_id' => $this->_groupID, 'contact_id' => $contactID, 'hash' => 'b15de8b64e2cec34', 'time_stamp' => '20101212121212', ); $result = $this->callAPISuccess('mailing_event_subscribe', 'create', $params); $this->assertEquals($result['values'][$result['id']]['contact_id'], $contactID); $params = array( 'contact_id' => $result['values'][$result['id']]['contact_id'], 'subscribe_id' => $result['values'][$result['id']]['subscribe_id'], 'hash' => $result['values'][$result['id']]['hash'], 'time_stamp' => '20101212121212', 'event_subscribe_id' => $result['values'][$result['id']]['subscribe_id'], ); $result = $this->callAPISuccess('mailing_event_confirm', 'create', $params); $this->contactDelete($contactID); } }