Proyectos de Subversion Moodle

Rev

Rev 1 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 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
namespace mod_lti;
18
 
19
defined('MOODLE_INTERNAL') || die();
20
 
21
global $CFG;
22
 
23
require_once($CFG->dirroot.'/mod/lti/servicelib.php');
24
 
25
/**
26
 * Tests for servicelib.php
27
 *
28
 * @package   mod_lti
29
 * @copyright Copyright (c) 2015 Moodlerooms Inc. (http://www.moodlerooms.com)
30
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
31
 */
32
class servicelib_test extends \basic_testcase {
33
    /**
34
     * Test that lti_parse_message_id never fails with good and bad XML.
35
     *
36
     * @dataProvider message_id_provider
37
     * @param mixed $expected Expected message ID.
38
     * @param string $xml XML to parse.
39
     */
11 efrain 40
    public function test_lti_parse_message_id($expected, $xml): void {
1 efrain 41
        $xml = simplexml_load_string($xml);
42
        $this->assertEquals($expected, lti_parse_message_id($xml));
43
    }
44
 
45
    /**
46
     * Test data provider for testing lti_parse_message_id
47
     *
48
     * @return array
49
     */
50
    public function message_id_provider() {
51
        $valid = <<<XML
52
<?xml version="1.0" encoding="UTF-8"?>
53
<imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
54
    <imsx_POXHeader>
55
        <imsx_POXRequestHeaderInfo>
56
            <imsx_version>V1.0</imsx_version>
57
            <imsx_messageIdentifier>9999</imsx_messageIdentifier>
58
        </imsx_POXRequestHeaderInfo>
59
    </imsx_POXHeader>
60
    <imsx_POXBody/>
61
</imsx_POXEnvelopeRequest>
62
XML;
63
 
64
        $noheader = <<<XML
65
<?xml version="1.0" encoding="UTF-8"?>
66
<imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
67
    <badXmlHere>
68
        <imsx_POXRequestHeaderInfo>
69
            <imsx_version>V1.0</imsx_version>
70
            <imsx_messageIdentifier>9999</imsx_messageIdentifier>
71
        </imsx_POXRequestHeaderInfo>
72
    </badXmlHere>
73
    <imsx_POXBody/>
74
</imsx_POXEnvelopeRequest>
75
XML;
76
 
77
        $noinfo = <<<XML
78
<?xml version="1.0" encoding="UTF-8"?>
79
<imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
80
    <imsx_POXHeader>
81
        <badXmlHere>
82
            <imsx_version>V1.0</imsx_version>
83
            <imsx_messageIdentifier>9999</imsx_messageIdentifier>
84
        </badXmlHere>
85
    </imsx_POXHeader>
86
    <imsx_POXBody/>
87
</imsx_POXEnvelopeRequest>
88
XML;
89
 
90
        $noidentifier = <<<XML
91
<?xml version="1.0" encoding="UTF-8"?>
92
<imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
93
    <imsx_POXHeader>
94
        <imsx_POXRequestHeaderInfo>
95
            <imsx_version>V1.0</imsx_version>
96
        </imsx_POXRequestHeaderInfo>
97
    </imsx_POXHeader>
98
    <imsx_POXBody/>
99
</imsx_POXEnvelopeRequest>
100
XML;
101
 
102
        return array(
103
            array(9999, $valid),
104
            array('', $noheader),
105
            array('', $noinfo),
106
            array('', $noidentifier),
107
        );
108
    }
109
}