/** * test if deleted users data is removed * * @see TODO add mantis issue * * TODO add test cases for keepOrganizerEvents and $_keepAsContact and $_keepAsContact */ public function testDeleteUsersData() { // configure removal of data Tinebase_Config::getInstance()->set(Tinebase_Config::ACCOUNT_DELETION_EVENTCONFIGURATION, new Tinebase_Config_Struct(array('_deletePersonalContainers' => true))); // we need a valid group and a contact for this test $userContact = Addressbook_Controller_Contact::getInstance()->create(new Addressbook_Model_Contact(array('n_given' => 'testuser'))); $testUser = $this->getTestRecord(); $testUser->contact_id = $userContact->getId(); $this->_backend->addUser($testUser); Tinebase_Group::getInstance()->addGroupMember($testUser->accountPrimaryGroup, $testUser->getId()); $this->_setUser($testUser); // add a contact and an event to personal folders $event = Calendar_Controller_Event::getInstance()->create(new Calendar_Model_Event(array('summary' => 'testevent', 'dtstart' => '2015-12-24 12:00:00', 'dtend' => '2015-12-24 13:00:00'), true)); $contact = Addressbook_Controller_Contact::getInstance()->create(new Addressbook_Model_Contact(array('n_given' => 'testcontact'))); $this->_setUser($this->_originalTestUser); $this->_backend->deleteUser($testUser); // check if contact and event are removed $adbBackend = new Addressbook_Backend_Sql(); try { $adbBackend->get($contact->getId()); $this->fail('contact be deleted'); } catch (Exception $e) { $this->assertTrue($e instanceof Tinebase_Exception_NotFound); } $calBackend = new Calendar_Backend_Sql(); try { $calBackend->get($event->getId()); $this->fail('event should be deleted: ' . print_r($event->toArray(), true)); } catch (Exception $e) { $this->assertTrue($e instanceof Tinebase_Exception_NotFound); } }
/** * test deleting container and the containing events * #6704: events do not disappear when shared calendar got deleted * https://forge.tine20.org/mantisbt/view.php?id=6704 */ public function testDeleteContainerAndEvents() { $fe = new Tinebase_Frontend_Json_Container(); $container = $fe->addContainer('Calendar', 'testdeletecontacts', Tinebase_Model_Container::TYPE_SHARED, ''); // test if model is set automatically $this->assertEquals($container['model'], 'Calendar_Model_Event'); $date = new Tinebase_DateTime(); $event = new Calendar_Model_Event(array('dtstart' => $date, 'dtend' => $date->subHour(1), 'summary' => 'bla bla', 'class' => 'PUBLIC', 'transp' => 'OPAQUE', 'container_id' => $container['id'], 'organizer' => Tinebase_Core::getUser()->contact_id)); $event = Calendar_Controller_Event::getInstance()->create($event); $this->assertEquals($container['id'], $event->container_id); $fe->deleteContainer($container['id']); $e = new Exception('dummy'); $cb = new Calendar_Backend_Sql(); $deletedEvent = $cb->get($event->getId(), true); // record should be deleted $this->assertEquals($deletedEvent->is_deleted, 1); try { Calendar_Controller_Event::getInstance()->get($event->getId(), $container['id']); $this->fail('The expected exception was not thrown'); } catch (Tinebase_Exception_NotFound $e) { // ok; } // record should not be found $this->assertEquals($e->getMessage(), 'Calendar_Model_Event record with id ' . $event->getId() . ' not found!'); }