Skip to content

Commit eda4f08

Browse files
committed
Fix broken tests for Windows due to mismatching newline characters
1 parent c50e309 commit eda4f08

File tree

5 files changed

+49
-29
lines changed

5 files changed

+49
-29
lines changed

lib/Cas/Protocol/Cas20.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ public function getProxyFailureResponse(string $errorCode, string $explanation):
244244
private function workAroundForBuggyJasigXmlParser(string $xmlString): string
245245
{
246246
// when will people stop hand coding xml handling....?
247-
return str_replace('><', '>' . PHP_EOL . '<', str_replace(PHP_EOL, '', $xmlString));
247+
return rtrim(str_replace('><', '>' . PHP_EOL . '<', str_replace(PHP_EOL, '', $xmlString)));
248248
}
249249

250250

tests/lib/Cas/Protocol/Cas20Test.php

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,29 @@
22

33
namespace Simplesamlphp\Casserver;
44

5+
use DOMDocument;
6+
use PHPUnit\Framework\TestCase;
7+
use SAML2\DOMDocumentFactory;
58
use SimpleSAML\Configuration;
69
use SimpleSAML\Module\casserver\Cas\Protocol\Cas20;
10+
//use SimpleSAML\XML\DOMDocumentFactory;
711

8-
class Cas20Test extends \PHPUnit\Framework\TestCase
12+
final class Cas20Test extends TestCase
913
{
14+
/** @var \DOMDocument */
15+
protected DOMDocument $document;
16+
17+
18+
/**
19+
*/
20+
protected function setUp(): void
21+
{
22+
$this->document = DOMDocumentFactory::fromFile(
23+
dirname(dirname(dirname(dirname(__FILE__)))) . '/resources/xml/testAttributeToXmlConversion.xml'
24+
);
25+
}
26+
27+
1028
/**
1129
*/
1230
public function testAttributeToXmlConversion(): void
@@ -35,22 +53,6 @@ public function testAttributeToXmlConversion(): void
3553

3654
$xml = $casProtocol->getValidateSuccessResponse('myUser');
3755

38-
$expectedXml = <<<'EOD'
39-
<?xml version="1.0"?>
40-
<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
41-
<cas:authenticationSuccess>
42-
<cas:user>myUser</cas:user>
43-
<cas:attributes>
44-
<cas:lastName>lasty</cas:lastName>
45-
<cas:valuesAreEscaped>&gt;abc&lt;blah&gt;</cas:valuesAreEscaped>
46-
<cas:urn_oid_0.9.2342.19200300.100.1.1>someValue</cas:urn_oid_0.9.2342.19200300.100.1.1>
47-
<cas:urn_oid_1.3.6.1.4.1.34199.1.7.1.5.2>CN=Some-Service,OU=Non-Privileged,OU=Groups,DC=exmple,DC=com</cas:urn_oid_1.3.6.1.4.1.34199.1.7.1.5.2>
48-
<cas:urn_oid_1.3.6.1.4.1.34199.1.7.1.5.2>CN=Other Servics,OU=Non-Privileged,OU=Groups,DC=example,DC=com</cas:urn_oid_1.3.6.1.4.1.34199.1.7.1.5.2>
49-
</cas:attributes>
50-
</cas:authenticationSuccess>
51-
</cas:serviceResponse>
52-
EOD;
53-
54-
$this->assertEquals($expectedXml, $xml);
56+
$this->assertEquals($this->document->saveXML(), $xml);
5557
}
5658
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
2+
<cas:authenticationSuccess>
3+
<cas:user>myUser</cas:user>
4+
<cas:attributes>
5+
<cas:lastName>lasty</cas:lastName>
6+
<cas:valuesAreEscaped>&gt;abc&lt;blah&gt;</cas:valuesAreEscaped>
7+
<cas:urn_oid_0.9.2342.19200300.100.1.1>someValue</cas:urn_oid_0.9.2342.19200300.100.1.1>
8+
<cas:urn_oid_1.3.6.1.4.1.34199.1.7.1.5.2>CN=Some-Service,OU=Non-Privileged,OU=Groups,DC=exmple,DC=com</cas:urn_oid_1.3.6.1.4.1.34199.1.7.1.5.2>
9+
<cas:urn_oid_1.3.6.1.4.1.34199.1.7.1.5.2>CN=Other Servics,OU=Non-Privileged,OU=Groups,DC=example,DC=com</cas:urn_oid_1.3.6.1.4.1.34199.1.7.1.5.2>
10+
</cas:attributes>
11+
</cas:authenticationSuccess>
12+
</cas:serviceResponse>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
2+
<cas:authenticationSuccess>
3+
<cas:user>[email protected]</cas:user>
4+
<cas:attributes>
5+
<cas:eduPersonPrincipalName>[email protected]</cas:eduPersonPrincipalName>
6+
<cas:base64Attributes>false</cas:base64Attributes>
7+
</cas:attributes>
8+
</cas:authenticationSuccess>
9+
</cas:serviceResponse>

tests/www/LoginIntegrationTest.php

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
use DOMDocument;
66
use PHPUnit\Framework\TestCase;
7+
use SAML2\DOMDocumentFactory;
78
use SimpleSAML\Logger;
89
use SimpleSAML\TestUtils\BuiltInServer;
10+
//use SimpleSAML\XML\DOMDocumentFactory;
911

1012
/**
1113
*
@@ -198,16 +200,11 @@ public function testValidServiceUrl(string $serviceParam, string $ticketParam)
198200
CURLOPT_COOKIEFILE => $this->cookies_file
199201
]
200202
);
201-
$expectedResponse = '<?xml version="1.0"?>
202-
<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
203-
<cas:authenticationSuccess>
204-
<cas:user>[email protected]</cas:user>
205-
<cas:attributes>
206-
<cas:eduPersonPrincipalName>[email protected]</cas:eduPersonPrincipalName>
207-
<cas:base64Attributes>false</cas:base64Attributes>
208-
</cas:attributes>
209-
</cas:authenticationSuccess>
210-
</cas:serviceResponse>';
203+
204+
$expectedResponse = DOMDocumentFactory::fromFile(
205+
dirname(dirname(__FILE__)) . '/resources/xml/testValidServiceUrl.xml'
206+
)->saveXML();
207+
211208
$this->assertEquals(200, $resp['code']);
212209
$this->assertEquals($expectedResponse, $resp['body']);
213210
}

0 commit comments

Comments
 (0)