1<?php
2
3/**
4 * Tests how the XML_RPC server handles parameters with empty values.
5 *
6 * PHP versions 4 and 5
7 *
8 * @category   Web Services
9 * @package    XML_RPC
10 * @author     Daniel Convissor <danielc@php.net>
11 * @copyright  2005-2010 The PHP Group
12 * @license    http://www.php.net/license/3_01.txt  PHP License
13 * @version    SVN: $Id: extra-lines.php 300958 2010-07-02 23:58:51Z danielc $
14 * @link       http://pear.php.net/package/XML_RPC
15 * @since      File available since Release 1.4.4
16 */
17
18/*
19 * If the package version number is found in the left hand
20 * portion of the if() expression below, that means this file has
21 * come from the PEAR installer.  Therefore, let's test the
22 * installed version of XML_RPC which should be in the include path.
23 *
24 * If the version has not been substituted in the if() expression,
25 * this file has likely come from a SVN checkout or a .tar file.
26 * Therefore, we'll assume the tests should use the version of
27 * XML_RPC that has come from there as well.
28 */
29if ('1.5.5' == '@'.'package_version'.'@') {
30    ini_set('include_path', '../'
31            . PATH_SEPARATOR . '.' . PATH_SEPARATOR
32            . ini_get('include_path')
33    );
34}
35require_once 'XML/RPC.php';
36
37
38$input = "First lfs\n\nSecond crlfs\r\n\r\nThird crs\r\rFourth line";
39
40$expect_removed = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<methodCall>\r\n<methodName>nada</methodName>\r\n<params>\r\n<param>\r\n<value><string>First lfs\r\nSecond crlfs\r\nThird crs\r\nFourth line</string></value>\r\n</param>\r\n</params>\r\n</methodCall>\r\n";
41
42$expect_not_removed = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<methodCall>\r\n<methodName>nada</methodName>\r\n<params>\r\n<param>\r\n<value><string>First lfs\r\n\r\nSecond crlfs\r\n\r\nThird crs\r\n\r\nFourth line</string></value>\r\n</param>\r\n</params>\r\n</methodCall>\r\n";
43
44$msg = new XML_RPC_Message('nada', array(XML_RPC_encode($input)));
45$msg->createPayload();
46if ($msg->payload == $expect_removed) {
47    echo "passed\n";
48} else {
49    echo "PROBLEM\n";
50}
51
52$msg = new XML_RPC_Message('nada', array(XML_RPC_encode($input)));
53$msg->remove_extra_lines = false;
54$msg->createPayload();
55if ($msg->payload == $expect_not_removed) {
56    echo "passed\n";
57} else {
58    echo "PROBLEM\n";
59}
60