]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/service/SOAPTestCase.php
Release 6.2.0
[Github/sugarcrm.git] / tests / service / SOAPTestCase.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2011 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
40 abstract class SOAPTestCase extends Sugar_PHPUnit_Framework_TestCase
41 {
42         public $_user = null;
43         public $_soapClient = null;
44         public $_session = null;
45         public $_sessionId = '';
46     public $_soapURL = '';
47
48     /**
49      * Create test user
50      *
51      */
52         public function setUp()
53     {
54         $beanList = array();
55                 $beanFiles = array();
56                 require('include/modules.php');
57                 $GLOBALS['beanList'] = $beanList;
58                 $GLOBALS['beanFiles'] = $beanFiles;
59                 
60         $this->_soapClient = new nusoapclient($this->_soapURL,false,false,false,false,false,600,600);
61         $this->_setupTestUser();
62         parent::setUp();
63     }
64
65     /**
66      * Remove anything that was used during this test
67      *
68      */
69     public function tearDown()
70     {
71         $this->_tearDownTestUser();
72         $this->_user = null;
73         $this->_sessionId = '';
74         
75                 unset($GLOBALS['beanList']);
76                 unset($GLOBALS['beanFiles']);
77                 
78         SugarTestAccountUtilities::removeAllCreatedAccounts();
79         SugarTestContactUtilities::removeAllCreatedContacts();
80     }
81
82     protected function _login()
83     {
84         $result = $this->_soapClient->call('login',
85             array('user_auth' =>
86                 array('user_name' => $this->_user->user_name,
87                     'password' => $this->_user->user_hash,
88                     'version' => '.01'),
89                 'application_name' => 'SoapTest')
90             );
91         $this->_sessionId = $result['id'];
92                 return $result;
93     }
94
95     /**
96      * Create a test user
97      *
98      */
99         public function _setupTestUser() {
100         $this->_user = SugarTestUserUtilities::createAnonymousUser();
101         $this->_user->status = 'Active';
102         $this->_user->is_admin = 1;
103         $this->_user->save();
104         $GLOBALS['current_user'] = $this->_user;
105     }
106
107     /**
108      * Remove user created for test
109      *
110      */
111         public function _tearDownTestUser() {
112        SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
113        unset($GLOBALS['current_user']);
114     }
115
116 }