/** * Ensure that \ElggBatch doesn't go into infinite loop when disabling annotations recursively when show hidden is enabled. * * https://github.com/Elgg/Elgg/issues/5952 */ public function test_disabling_annotations_infinite_loop() { //let's have some entity $group = new \ElggGroup(); $group->name = 'test_group'; $group->access_id = ACCESS_PUBLIC; $this->assertTrue($group->save() !== false); $total = 51; //add some annotations for ($cnt = 0; $cnt < $total; $cnt++) { $group->annotate('test_annotation', 'value_' . $total); } //disable them $show_hidden = access_get_show_hidden_status(); access_show_hidden_entities(true); $options = array('guid' => $group->guid, 'limit' => $total); elgg_disable_annotations($options); access_show_hidden_entities($show_hidden); //confirm all being disabled $annotations = $group->getAnnotations(array('limit' => $total)); foreach ($annotations as $annotation) { $this->assertTrue($annotation->enabled == 'no'); } //delete group and annotations $group->delete(); }