/** * testMergeDuplicateTags * * @see 0007354: function for merging duplicate tags */ public function testMergeDuplicateTags() { $sharedTag1 = $this->_createSharedTag(); // sleep to make sure, $sharedTag1 is always chosen as 'master' sleep(1); $sharedTag2 = $this->_createSharedTag(); $contactIds = Addressbook_Controller_Contact::getInstance()->getAll()->getArrayOfIds(); $contactFilter = new Addressbook_Model_ContactFilter(array(array('field' => 'id', 'operator' => 'in', 'value' => array_slice($contactIds, 0, 3)))); $sharedTag1 = Tinebase_Tags::getInstance()->attachTagToMultipleRecords($contactFilter, $sharedTag1); $this->assertEquals(3, $sharedTag1->occurrence); $contactFilter = new Addressbook_Model_ContactFilter(array(array('field' => 'id', 'operator' => 'in', 'value' => array_slice($contactIds, 3, 3)))); $sharedTag2 = Tinebase_Tags::getInstance()->attachTagToMultipleRecords($contactFilter, $sharedTag2); $this->_instance->mergeDuplicateSharedTags('Addressbook_Model_Contact'); $sharedTag1AfterMerge = $this->_instance->get($sharedTag1); $this->assertEquals($sharedTag1->occurrence + 3, $sharedTag1AfterMerge->occurrence, 'occurrence should have been increased by three: ' . print_r($sharedTag1AfterMerge->toArray(), TRUE)); $this->setExpectedException('Tinebase_Exception_NotFound'); $this->_instance->get($sharedTag2); }