Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
PostUtilTest.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo 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 ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo 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
16  * details.
17  *
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
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified 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.
29  *
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 Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
37  class PostUtilTest extends BaseTest
38  {
39  public static function setUpBeforeClass()
40  {
41  parent::setUpBeforeClass();
42  SecurityTestHelper::createSuperAdmin();
43  $super = User::getByUsername('super');
44  Yii::app()->user->userModel = $super;
45  }
46 
47  public function testSanitizePostByDesignerTypeForSavingModel()
48  {
49  $language = Yii::app()->getLanguage();
50  $this->assertEquals($language, 'en');
51  $postData = array(
52  'aDate' => '5/4/2011',
53  'aDateTime' => '5/4/2011 5:45 PM'
54  );
55  $sanitizedPostData = PostUtil::sanitizePostByDesignerTypeForSavingModel(new DateDateTime(), $postData);
56  $compareData = array(
57  'aDate' => '2011-05-04',
59  );
60  $this->assertEquals($compareData, $sanitizedPostData);
61  $this->assertTrue(is_string($compareData['aDateTime']));
62 
63  //now do German (de) to check a different locale.
64  Yii::app()->setLanguage('de');
65  $postData = array(
66  'aDate' => '04.05.2011',
67  'aDateTime' => '04.05.2011 17:45'
68  );
69  $sanitizedPostData = PostUtil::sanitizePostByDesignerTypeForSavingModel(new DateDateTime(), $postData);
70  $compareData = array(
71  'aDate' => '2011-05-04',
73  );
74  $this->assertEquals($compareData, $sanitizedPostData);
75  $this->assertTrue(is_string($compareData['aDateTime']));
76 
77  //reset language back to english
78  Yii::app()->setLanguage('en');
79 
80  //test sanitizing a bad datetime
82  array('aDateTime' => 'wang chung'));
83  $this->assertNull($sanitizedPostData['aDateTime']);
84  //sanitize an empty datetime
86  array('aDateTime' => ''));
87  $this->assertEmpty($sanitizedPostData['aDateTime']);
88  }
89 
94  {
96  array('tagCloud' =>
97  array('values' => 'abc,def'))); // Not Coding Standard
98  $this->assertEquals(array('abc', 'def'), $sanitizedPostData['tagCloud']['values']);
99 
101  array('tagCloud' =>
102  array('values' => '')));
103  $this->assertEquals(array(), $sanitizedPostData['tagCloud']['values']);
104 
106  array('tagCloud' =>
107  array('values' => array('gg', 'hh'))));
108  $this->assertEquals(array('gg', 'hh'), $sanitizedPostData['tagCloud']['values']);
109  }
110 
115  {
116  $super = User::getByUsername('super');
117  Yii::app()->user->userModel = $super;
118  $language = Yii::app()->getLanguage();
119  $this->assertEquals($language, 'en');
120 
121  //test sanitizing a SearchForm date attribute and a SearchForm dateTime attribute
123  $postData = array( 'date__Date' =>
124  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER,
125  'firstDate' => '3/25/2011'),
126  'date2__Date' =>
127  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_BETWEEN,
128  'firstDate' => '5/25/2011',
129  'secondDate' => '6/25/2011'),
130  'dateTime__DateTime' =>
131  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER,
132  'firstDate' => '3/26/2011'));
133  $sanitizedPostData = PostUtil::sanitizePostByDesignerTypeForSavingModel($searchForm, $postData);
134  $compareData = array( 'date__Date' =>
135  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER,
136  'firstDate' => '2011-03-25'),
137  'date2__Date' =>
138  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_BETWEEN,
139  'firstDate' => '2011-05-25',
140  'secondDate' => '2011-06-25'),
141  'dateTime__DateTime' =>
142  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER,
143  'firstDate' => '2011-03-26'));
144  $this->assertEquals($compareData, $sanitizedPostData);
145  }
146 
151  {
152  $super = User::getByUsername('super');
153  Yii::app()->user->userModel = $super;
154  $language = Yii::app()->getLanguage();
155  $this->assertEquals($language, 'en');
156 
157  //test sanitizing a SearchForm date attribute and a SearchForm dateTime attribute
159  $postData = array( 'dateDateTimeADate__Date' =>
160  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER,
161  'firstDate' => '3/25/2011'),
162  'dateDateTimeADate__Date' =>
163  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_BETWEEN,
164  'firstDate' => '5/25/2011',
165  'secondDate' => '6/25/2011'),
166  'dateDateTimeADateTime__DateTime' =>
167  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER,
168  'firstDate' => '3/26/2011'));
169  $sanitizedPostData = PostUtil::sanitizePostByDesignerTypeForSavingModel($searchForm, $postData);
170  $compareData = array( 'dateDateTimeADate__Date' =>
171  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER,
172  'firstDate' => '2011-03-25'),
173  'dateDateTimeADate__Date' =>
174  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_BETWEEN,
175  'firstDate' => '2011-05-25',
176  'secondDate' => '2011-06-25'),
177  'dateDateTimeADateTime__DateTime' =>
178  array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER,
179  'firstDate' => '2011-03-26'));
180  $this->assertEquals($compareData, $sanitizedPostData);
181  }
182 
183  public function testSanitizePostDataToJustHavingElementForSavingModel()
184  {
185  $data = array('a' => 'aaa', 'b' => 'bbb', 'c' => 'ccc');
187  $this->assertNull($newData);
189  $this->assertEquals(array('b' => 'bbb'), $newData);
190  }
191 
192  public function testRemoveElementFromPostDataForSavingModel()
193  {
194  $data = array('a' => 'aaa', 'b' => 'bbb', 'c' => 'ccc');
195  $newData = PostUtil::removeElementFromPostDataForSavingModel($data, 'doesntexist');
196  $this->assertEquals($data, $newData);
198  $this->assertEquals(array('a' => 'aaa', 'c' => 'ccc'), $newData);
199  }
200  }
201 ?>
static getByUsername($username)
Definition: User.php:49
testSanitizePostByDesignerTypeForSavingModelForTagCloud()
static convertDateTimeLocaleFormattedDisplayToDbFormattedDateTimeWithSecondsAsZero($localeFormattedDateTime)
testSanitizeSearchFormAttributes()
testSanitizeSearchFormAttributesThatAreOnARelatedModel()
static removeElementFromPostDataForSavingModel($sanitizedPostData, $elementName)
Definition: PostUtil.php:116
static sanitizePostDataToJustHavingElementForSavingModel($sanitizedPostData, $elementName)
Definition: PostUtil.php:106
static sanitizePostByDesignerTypeForSavingModel($model, $postData)
Definition: PostUtil.php:94
Generated on Tue Jul 7 2020 07:10:29
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.