Commit | Line | Data |
---|---|---|
639bc8b2 PC |
1 | <?php |
2 | // This file is part of Moodle - http://moodle.org/ | |
3 | // | |
4 | // Moodle is free software: you can redistribute it and/or modify | |
5 | // it under the terms of the GNU General Public License as published by | |
6 | // the Free Software Foundation, either version 3 of the License, or | |
7 | // (at your option) any later version. | |
8 | // | |
9 | // Moodle is distributed in the hope that it will be useful, | |
10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | // GNU General Public License for more details. | |
13 | // | |
14 | // You should have received a copy of the GNU General Public License | |
15 | // along with Moodle. If not, see <http://www.gnu.org/licenses/>. | |
16 | ||
17 | defined('MOODLE_INTERNAL') || die(); | |
18 | ||
19 | global $CFG; | |
498bc10c | 20 | require_once($CFG->dirroot . '/webservice/externallib.php'); |
639bc8b2 PC |
21 | require_once($CFG->dirroot . '/webservice/tests/helpers.php'); |
22 | ||
23 | /** | |
24 | * External course functions unit tests | |
25 | * | |
26 | * @package core_webservice | |
27 | * @category external | |
28 | * @copyright 2012 Paul Charsley | |
29 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | |
30 | */ | |
31 | class core_webservice_external_testcase extends externallib_advanced_testcase { | |
32 | ||
498bc10c EL |
33 | public function setUp() { |
34 | // Calling parent is good, always | |
35 | parent::setUp(); | |
36 | ||
37 | // We always need enabled WS for this testcase | |
639bc8b2 | 38 | set_config('enablewebservices', '1'); |
639bc8b2 PC |
39 | } |
40 | ||
41 | public function test_get_site_info() { | |
42 | global $DB, $USER, $CFG; | |
43 | ||
44 | $this->resetAfterTest(true); | |
498bc10c EL |
45 | |
46 | // This is the info we are going to check | |
47 | set_config('release', '2.4dev (Build: 20120823)'); | |
48 | set_config('version', '2012083100.00'); | |
49 | ||
50 | // Set current user | |
639bc8b2 PC |
51 | $user = array(); |
52 | $user['username'] = 'johnd'; | |
53 | $user['firstname'] = 'John'; | |
54 | $user['lastname'] = 'Doe'; | |
55 | self::setUser(self::getDataGenerator()->create_user($user)); | |
56 | ||
57 | // Add a web service and token. | |
58 | $webservice = new stdClass(); | |
59 | $webservice->name = 'Test web service'; | |
60 | $webservice->enabled = true; | |
61 | $webservice->restrictedusers = false; | |
62 | $webservice->component = 'moodle'; | |
63 | $webservice->timecreated = time(); | |
64 | $webservice->downloadfiles = true; | |
65 | $externalserviceid = $DB->insert_record('external_services', $webservice); | |
66 | ||
67 | $_POST['wstoken'] = 'testtoken'; | |
68 | $externaltoken = new stdClass(); | |
69 | $externaltoken->token = 'testtoken'; | |
70 | $externaltoken->tokentype = 0; | |
71 | $externaltoken->userid = $USER->id; | |
72 | $externaltoken->externalserviceid = $externalserviceid; | |
73 | $externaltoken->contextid = 1; | |
74 | $externaltoken->creatorid = $USER->id; | |
75 | $externaltoken->timecreated = time(); | |
76 | $DB->insert_record('external_tokens', $externaltoken); | |
77 | ||
78 | $siteinfo = core_webservice_external::get_site_info(); | |
79 | ||
80 | $this->assertEquals('johnd', $siteinfo['username']); | |
81 | $this->assertEquals('John', $siteinfo['firstname']); | |
82 | $this->assertEquals('Doe', $siteinfo['lastname']); | |
92fa81d3 | 83 | $this->assertEquals(current_language(), $siteinfo['lang']); |
639bc8b2 PC |
84 | $this->assertEquals($USER->id, $siteinfo['userid']); |
85 | $this->assertEquals(true, $siteinfo['downloadfiles']); | |
86 | $this->assertEquals($CFG->release, $siteinfo['release']); | |
87 | $this->assertEquals($CFG->version, $siteinfo['version']); | |
33af7882 | 88 | $this->assertEquals(get_config('admin', 'mobilecssurl'), $siteinfo['mobilecssurl']); |
639bc8b2 PC |
89 | } |
90 | ||
91 | } |