]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/service/Bug51723Test.php
Release 6.5.1
[Github/sugarcrm.git] / tests / service / Bug51723Test.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2012 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/nusoap/nusoap.php');
39 require_once 'tests/service/SOAPTestCase.php';
40
41 /**
42  * Bug 51723
43  *  SOAP::get_entries() call fails to export portal_name field
44  * @ticket 51723
45  * @author arymarchik@sugarcrm.com
46  */
47 class Bug51723Test extends SOAPTestCase
48 {
49     private $_contact;
50     private $_opt = null;
51
52     public function setUp()
53     {
54         $this->markTestIncomplete("Test breaking on CI, working with dev to fix");
55         $administration = new Administration();
56         $administration->retrieveSettings();
57         if(isset($administration->settings['portal_on']))
58         {
59             $this->_opt = $administration->settings['portal_on'];
60         }
61         $administration->saveSetting('portal', 'on',  1);
62
63         $this->_soapURL = $GLOBALS['sugar_config']['site_url'].'/soap.php?wsdl';
64         parent::setUp();
65         $this->_login();
66         $GLOBALS['app_strings'] = return_application_language($GLOBALS['current_language']);
67         $GLOBALS['app_list_strings'] = return_app_list_strings_language($GLOBALS['current_language']);
68
69         $this->_contact = new Contact();
70         $this->_contact->last_name = "Contact #bug51723";
71         $this->_contact->id = create_guid();
72         $this->_contact->new_with_id = true;
73         $this->_contact->team_id = 1;
74         $this->_contact->save();
75     }
76
77     public function tearDown()
78     {
79         //$this->_contact->mark_deleted($this->_contact->id);
80         parent::tearDown();
81
82         $administration = new Administration();
83         $administration->retrieveSettings();
84         if($this->_opt === null)
85         {
86             if(isset($administration->settings['portal_on']))
87             {
88                 $administration->saveSetting('portal', 'on', 0);
89             }
90         }
91         else
92         {
93             $administration->saveSetting('portal', 'on',  $this->_opt);
94         }
95     }
96
97     /**
98      * Testing SOAP method get_entries for existing "portal_name" field
99      * @group 51723
100      */
101     public function testPortalNameInGetEntries()
102     {
103         $fields = array('portal_name', 'first_name', 'last_name');
104         $result = $this->_soapClient->call(
105             'get_entries',
106             array('session' => $this->_sessionId,
107                 'module_name' => 'Contacts',
108                 'ids' => array($this->_contact->id),
109                 'select_fields' => $fields
110             )
111         );
112         // replacement of $this->assertCount()
113         if(count($result['entry_list']) != 1)
114         {
115             $this->fail('Can\'t get entry list');
116         }
117
118         foreach ($result['entry_list'][0]['name_value_list'] as $key => &$value)
119         {
120             if(($index = array_search($value['name'], $fields, true)) !== false)
121             {
122                 unset($fields[$index]);
123             }
124             else
125             {
126                 $this->fail('Wrong field in selected fields:' . $value['name']);
127             }
128         }
129         if(count($fields) != 0)
130         {
131             $this->fail('Can\'t get expected values:' . implode(',', $fields));
132         }
133     }
134
135 }