dev/core#4081 Ensure that if using the API to update an event template it is not...
authorSeamus Lee <seamuslee001@gmail.com>
Mon, 16 Jan 2023 02:50:19 +0000 (13:50 +1100)
committerSeamus Lee <seamuslee001@gmail.com>
Mon, 16 Jan 2023 05:35:50 +0000 (16:35 +1100)
Remove unneded lines now that we have a sensible default value in the database

CRM/Event/BAO/Event.php
tests/phpunit/api/v3/EventTest.php

index ba87473d1821f124da2f9bd3f4bcb811e338c938..23d26017feb7a8029451902f1ebf6ad87556c6c7 100644 (file)
@@ -95,9 +95,6 @@ class CRM_Event_BAO_Event extends CRM_Event_DAO_Event implements \Civi\Core\Hook
    */
   public static function create(&$params) {
     $transaction = new CRM_Core_Transaction();
-    if (empty($params['is_template'])) {
-      $params['is_template'] = 0;
-    }
     // check if new event, if so set the created_id (if not set)
     // and always set created_date to now
     if (empty($params['id'])) {
index bba9dc803c0280982d37509c93f670e5441c387f..a9debb622a490b08140e85d9befb7e7544488139 100644 (file)
@@ -935,4 +935,28 @@ class api_v3_EventTest extends CiviUnitTestCase {
     $this->assertEquals(1, $result['count']);
   }
 
+  /**
+   * Test that using the API to update an Event template keeps the is_template parameter the same
+   * @dataProvider versionThreeAndFour
+   */
+  public function testUpdateEventTemplate($version): void {
+    $this->_apiversion = $version;
+    $templateParams = [
+      'summary' => 'Sign up now to learn the results of this unit test',
+      'description' => 'This event is created from a template, so all the values should be the same as the original ones.',
+      'event_type_id' => 1,
+      'is_public' => 1,
+      'end_date' => '2018-06-25 17:00:00',
+      'is_online_registration' => 1,
+      'registration_start_date' => '2017-06-25 17:00:00',
+      'registration_end_date' => '2018-06-25 17:00:00',
+      'max_participants' => 100,
+      'event_full_text' => 'Sorry! We are already full',
+    ];
+    $template = $this->callAPISuccess('Event', 'create', ['is_template' => 1, 'template_title' => 'Test tpl'] + $templateParams);
+    $this->callAPISuccess('Event', 'create', ['id' => $template['id'], 'is_public' => 0]);
+    $template = $this->callAPISuccess('Event', 'get', ['id' => $template['id']])['values'][$template['id']];
+    $this->assertEquals(1, $template['is_template']);
+  }
+
 }