2 /*********************************************************************************
3 * SugarCRM Community Edition is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
6 * This program is free software; you can redistribute it and/or modify it under
7 * the terms of the GNU Affero General Public License version 3 as published by the
8 * Free Software Foundation with the addition of the following permission added
9 * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10 * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
11 * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
13 * This program is distributed in the hope that it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
18 * You should have received a copy of the GNU Affero General Public License along with
19 * this program; if not, see http://www.gnu.org/licenses or write to the Free
20 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
24 * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
26 * The interactive user interfaces in modified source and object code versions
27 * of this program must display Appropriate Legal Notices, as required under
28 * Section 5 of the GNU Affero General Public License version 3.
30 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31 * these Appropriate Legal Notices must retain the display of the "Powered by
32 * SugarCRM" logo. If the display of the logo is not reasonably feasible for
33 * technical reasons, the Appropriate Legal Notices must display the words
34 * "Powered by SugarCRM".
35 ********************************************************************************/
38 require_once 'modules/iCals/iCal.php';
40 class iCalTest extends Sugar_PHPUnit_Framework_TestCase
45 public function setUp()
47 $this->timedate = new TimeDate();
49 $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
51 $meeting = SugarTestMeetingUtilities::createMeeting();
52 $meeting->name = "VeryImportantMeeting";
53 $meeting->date_start = $this->timedate->to_display_date_time(gmdate("Y-m-d H:i:s", mktime(12, 30, 00, date("m"), date("d")+1, date("Y"))));
55 $GLOBALS['db']->query(sprintf("INSERT INTO meetings_users (id, meeting_id, user_id, required, accept_status, date_modified, deleted) VALUES ('%s', '%s', '%s', '1', 'none', NULL, '0')", create_guid(), $meeting->id, $GLOBALS['current_user']->id));
57 $task = SugarTestTaskUtilities::createTask();
58 $task->assigned_user_id = $GLOBALS['current_user']->id;
59 $task->name = "VeryImportantTask";
62 $this->project = SugarTestProjectUtilities::createProject();
63 $projectId = $this->project->id;
64 $projectTaskData = array (
65 'project_id' => $projectId,
66 'parent_task_id' => '',
67 'project_task_id' => 1,
68 'percent_complete' => 50,
69 'name' => 'VeryImportantProjectTask'
71 $projectTask = SugarTestProjectTaskUtilities::createProjectTask($projectTaskData);
72 $projectTask->assigned_user_id = $GLOBALS['current_user']->id;
77 public function tearDown()
79 SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
80 SugarTestMeetingUtilities::removeMeetingUsers();
81 SugarTestMeetingUtilities::removeAllCreatedMeetings();
82 SugarTestTaskUtilities::removeAllCreatedTasks();
83 SugarTestProjectUtilities::removeAllCreatedProjects();
84 SugarTestProjectTaskUtilities::removeAllCreatedProjectTasks();
85 unset($this->timedate);
86 unset($this->project);
87 unset($GLOBALS['current_user']);
90 public function testGetVcalIcal()
93 $iCalString = $iCal->getVcalIcal($GLOBALS['current_user'], null);
95 // echo "***********BEGIN iCalString*************\n".$iCalString."***********END iCalString***************\n";
97 $this->assertContains("VeryImportantMeeting", $iCalString, "Cannot find VEVENT: VeryImportantMeeting");
98 $this->assertContains("VeryImportantTask", $iCalString, "Cannot find VTODO: VeryImportantTask");
99 $this->assertContains("VeryImportantProjectTask", $iCalString, "Cannot find VTODO: VeryImportantProjectTask");