Skip to content

Commit

Permalink
dev/core#2102 Fix hang on event edit
Browse files Browse the repository at this point in the history
  • Loading branch information
eileenmcnaughton committed Oct 9, 2020
1 parent 1d1cf83 commit 607b8f4
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 1 deletion.
2 changes: 1 addition & 1 deletion CRM/Event/Form/ManageEvent/Location.php
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ public function postProcess() {
CRM_Event_BAO_Event::deleteEventLocBlock($this->_oldLocBlockId, $this->_id);
}

$isUpdateToExistingLocationBlock = !empty($params['loc_event_id']) && (int) $params['loc_event_id'] === $this->locationBlock['loc_block_id'];
$isUpdateToExistingLocationBlock = !$deleteOldBlock && !empty($params['loc_event_id']) && (int) $params['loc_event_id'] === $this->locationBlock['loc_block_id'];
// It should be impossible for there to be no default location type. Consider removing this handling
$defaultLocationTypeID = CRM_Core_BAO_LocationType::getDefault()->id ?? 1;

Expand Down
70 changes: 70 additions & 0 deletions tests/phpunit/CRM/Event/Form/ManageEvent/LocationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,76 @@ public function testCreateWithLocBlock() {
$this->eventDelete($eventID);
}

/**
* Test updating a location block.
*
* @throws \API_Exception
* @throws \CRM_Core_Exception
* @throws \Civi\API\Exception\UnauthorizedException
*/
public function testUpdateLocationBlock() {
$eventID = (int) $this->eventCreate()['id'];
$this->submitForm([
'address' => [
'1' => [
'street_address' => 'Old address',
'supplemental_address_1' => 'Hallmark Ct',
'supplemental_address_2' => 'Jersey Village',
'supplemental_address_3' => 'My Town',
'city' => 'Newark',
'postal_code' => '01903',
'country_id' => 1228,
'state_province_id' => 1029,
'geo_code_1' => '18.219023',
'geo_code_2' => '-105.00973',
'is_primary' => 1,
'location_type_id' => 1,
],
],
], $eventID);

$this->submitForm([
'location_option' => 1,
'loc_event_id' => Event::get()->addWhere('id', '=', $eventID)->addSelect('loc_block_id')->execute()->first()['loc_block_id'],
'address' => [
'1' => [
'street_address' => 'New address',
'supplemental_address_1' => 'Hallmark Ct',
'supplemental_address_2' => 'Jersey Village',
'supplemental_address_3' => 'My Town',
'city' => 'Newark',
'postal_code' => '01903',
'country_id' => 1228,
'state_province_id' => 1029,
'geo_code_1' => '18.219023',
'geo_code_2' => '-105.00973',
],
],
'email' => [
'1' => [
'email' => '',
],
'2' => [
'email' => '',
],
],
'phone' => [
'1' => [
'phone_type_id' => 1,
'phone' => '',
'phone_ext' => '',
],
'2' => [
'phone_type_id' => 1,
'phone' => '',
'phone_ext' => '',
],
],
], $eventID);
// Cleanup.
$this->eventDelete($eventID);
}

/**
* Get the values to submit for the form.
*
Expand Down

0 comments on commit 607b8f4

Please sign in to comment.