2 /*********************************************************************************
3 * SugarCRM Community Edition is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2012 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 class Bug35014Test extends Sugar_PHPUnit_Framework_TestCase
42 public function setUp()
45 $this->markTestIncomplete('SugarTestCampaignUtilities does not exist');
46 $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
47 $campaign = SugarTestCampaignUtilities::createCampaign();
48 $this->campaign_id = $campaign->id;
51 public function tearDown()
53 //SugarTestCampaignUtilities::removeAllCreatedCampaigns();
54 SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
55 unset($GLOBALS['current_user']);
58 public function testLeadCaptureResponse()
60 // SET GLOBAL PHP VARIABLES
63 'first_name' => 'Sadek',
64 'last_name' => 'Baroudi',
65 'campaign_id' => $this->campaign_id,
66 'redirect_url' => 'http://www.sugarcrm.com/index.php',
67 'assigned_user_id' => 1,
69 'team_set_id' => 'Global',
70 'req_id' => 'last_name;',
75 foreach($_POST as $k => $v)
77 $postString .= "{$k}=".urlencode($v)."&";
79 $postString = rtrim($postString, "&");
81 $ch = curl_init("{$GLOBALS['sugar_config']['site_url']}/index.php?entryPoint=WebToLeadCapture");
82 curl_setopt($ch, CURLOPT_POST, count($_POST) + 1);
83 curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
84 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
85 curl_setopt($ch, CURLOPT_HEADER, 1);
87 $return = curl_exec($ch);
88 $output = ob_get_clean();
91 preg_match("/Location: .*/", $output, $matches);
92 $this->assertTrue(count($matches) > 0, "Could not get the header information for the response");
95 if(count($matches) > 0){
96 $location = str_replace("Location :", "", $matches[0]);
99 $query_string = substr($location, strpos($location, "?") + 1);
100 $query_string_array = explode("&", $query_string);
102 $post_compare_array = array();
103 $skipKeys = array('module', 'action', 'entryPoint', 'client_id_address');
104 foreach($query_string_array as $key_val)
106 $key_val_array = explode("=", $key_val);
107 if(in_array($key_val_array[0], $skipKeys))
109 $post_compare_array[$key_val_array[0]] = $key_val_array[1];
112 // the redirect_url doesn't get returned, so we unset it
113 unset($_POST['redirect_url']);
115 $this->assertEquals($_POST, $post_compare_array, "The returned get location doesn't match that of the post passed in");
118 // SET GLOBAL PHP VARIABLES
121 'first_name' => 'Sadek',
122 'last_name' => 'Baroudi',
123 'campaign_id' => $this->campaign_id,
124 'redirect_url' => 'http://www.sugarcrm.com/index.php',
125 'assigned_user_id' => 1,
127 'team_set_id' => 'Global',
128 'req_id' => 'last_name;',
130 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
131 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
132 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
133 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
134 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
135 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
136 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
137 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
138 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
139 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
140 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
141 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
142 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
143 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
144 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
145 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
146 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
147 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
148 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
149 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
150 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
151 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
152 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
153 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
154 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
155 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
156 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
157 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
158 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
159 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
160 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
161 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
162 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
163 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
164 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
165 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
166 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
167 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
168 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
169 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
170 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis'.
171 'PneumonoultramicroscopicsilicovolcanoconiosisPneumonoultramicroscopicsilicovolcanoconiosis',
177 foreach($_POST as $k => $v)
179 $postString .= "{$k}=".urlencode($v)."&";
181 $postString = rtrim($postString, "&");
183 $ch = curl_init("{$GLOBALS['sugar_config']['site_url']}/index.php?entryPoint=WebToLeadCapture");
184 curl_setopt($ch, CURLOPT_POST, count($_POST) + 1);
185 curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
186 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
187 curl_setopt($ch, CURLOPT_HEADER, 1);
189 $return = curl_exec($ch);
190 $output = ob_get_clean();
193 preg_match('/form name="redirect"/', $output, $matches);
194 $this->assertTrue(count($matches) > 0, "Should have output a form since we have a long get string");