]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/include/ListView/Bug58890Test.php
Release 6.5.11
[Github/sugarcrm.git] / tests / include / ListView / Bug58890Test.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
5  * 
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.
12  * 
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
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 SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
24  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
25  * 
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.
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 "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  ********************************************************************************/
36
37
38 require_once('include/ListView/ListViewData.php');
39
40 /**
41  * Bug #58890
42  * ListView Does Not Retain Sort Order
43  *
44  * @author mgusev@sugarcrm.com
45  * @ticked 58890
46  */
47 class Bug58890Test extends Sugar_PHPUnit_Framework_TestCase
48 {
49     public function setUp()
50     {
51         SugarTestHelper::setUp('beanFiles');
52         SugarTestHelper::setUp('beanList');
53         SugarTestHelper::setUp('current_user');
54     }
55
56     public function tearDown()
57     {
58         SugarTestHelper::tearDown();
59     }
60
61     /**
62      * Test asserts order by value
63      *
64      * @group 58890
65      * @return void
66      */
67     public function testOrderBy()
68     {
69         $bean = new SugarBean58890();
70         $listViewData = new ListViewData();
71         $listViewData->listviewName = $bean->module_name;
72         $listViewData->setVariableName($bean->object_name, '', $listViewData->listviewName);
73         if (!empty($listViewData->var_order_by) && !empty($_SESSION[$listViewData->var_order_by])) {
74             unset($_SESSION[$listViewData->var_order_by]);
75         }
76
77         $listViewData->getListViewData($bean, '', -1, -1, array('name' => array()));
78         $this->assertEquals('date_entered DESC', $bean->orderByString58890, 'Order by date_entered DESC should be used');
79
80         $GLOBALS['current_user']->setPreference('listviewOrder', array(
81             'orderBy' => 'name',
82             'sortOrder' => 'ASC'
83         ), 0, $listViewData->var_name);
84
85         $listViewData->getListViewData($bean, '', -1, -1, array('name' => array()));
86         $this->assertEquals('name ASC', $bean->orderByString58890, 'User\'s preference should be used');
87     }
88 }
89
90 class SugarBean58890 extends Account
91 {
92     /**
93      * @var string
94      */
95     public $orderByString58890 = '';
96
97     public function create_new_list_query($order_by, $where, $filter = array(), $params = array(), $show_deleted = 0, $join_type = '', $return_array = false, $parentbean = null, $singleSelect = false, $ifListForExport = false)
98     {
99         $this->orderByString58890 = $order_by;
100         return parent::create_new_list_query($order_by, $where, $filter, $params, $show_deleted, $join_type, $return_array, $parentbean, $singleSelect, $ifListForExport);
101     }
102 }