Skip to content

Commit 6d5bde9

Browse files
committed
Add test
1 parent f669fef commit 6d5bde9

File tree

2 files changed

+70
-0
lines changed

2 files changed

+70
-0
lines changed

tests/data/issue/242/spec.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"openapi": "3.0.0",
3+
"info": {
4+
"title": "My API",
5+
"version": "1, 2"
6+
},
7+
"paths": {
8+
"/v1/users/profile": {
9+
"get": {
10+
"operationId": "V1GetUserProfile",
11+
"summary": "Returns the user profile",
12+
"responses": {
13+
"200": {
14+
"description": "dummy"
15+
}
16+
},
17+
"security": [
18+
{
19+
"test_test": ["test:scope:foo"]
20+
}
21+
]
22+
}
23+
}
24+
},
25+
"components": {
26+
"securitySchemes": {
27+
"test_test": {
28+
"type": "oauth2",
29+
"flows": {
30+
"authorizationCode": {
31+
"authorizationUrl": "https://example.com/openid-connect/auth",
32+
"tokenUrl": "https://example.com/openid-connect/token",
33+
"scopes": {
34+
"test:scope:foo": "test_scope"
35+
}
36+
}
37+
}
38+
}
39+
}
40+
}
41+
}

tests/issues/242/Issue242Test.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
use cebe\openapi\Reader;
4+
use cebe\openapi\spec\OpenApi;
5+
use cebe\openapi\spec\SecurityRequirements;
6+
use cebe\openapi\Writer;
7+
8+
// https://github.com/cebe/php-openapi/issues/242
9+
class Issue242Test extends \PHPUnit\Framework\TestCase
10+
{
11+
public function test242CliCallToOpenapiSpecWithSecurityInPathFails()
12+
{
13+
$openapi = Reader::readFromJsonFile(dirname(__DIR__, 2) . '/data/issue/242/spec.json');
14+
$this->assertInstanceOf(\cebe\openapi\SpecObjectInterface::class, $openapi);
15+
16+
$file = dirname(__DIR__, 2) . '/data/issue/242/spec.json';
17+
$dirSep = DIRECTORY_SEPARATOR;
18+
$cmd = 'php ' . dirname(__DIR__, 3) . "{$dirSep}bin{$dirSep}php-openapi validate " . $file . " 2>&1";
19+
exec($cmd, $op, $ec);
20+
$this->assertSame($this->removeCliFormatting($op[0]), 'The supplied API Description validates against the OpenAPI v3.0 schema.');
21+
$this->assertSame(0, $ec);
22+
}
23+
24+
private function removeCliFormatting($string)
25+
{
26+
// Regex to remove ANSI escape codes
27+
return preg_replace('/\e\[[0-9;]*m/', '', $string);
28+
}
29+
}

0 commit comments

Comments
 (0)