Completed
Push — master ( bab30e...5d9c47 )
by Stefan
18s queued 14s
created

ntroller/RegProcessTest.php$0   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 3
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SimpleSAML\Test\Module\webauthn\Controller;
6
7
use PHPUnit\Framework\TestCase;
8
use SimpleSAML\Auth\State;
9
use SimpleSAML\Configuration;
10
use SimpleSAML\Error;
11
use SimpleSAML\HTTP\RunnableResponse;
12
use SimpleSAML\Logger;
13
use SimpleSAML\Module\webauthn\Controller;
14
use SimpleSAML\Session;
15
use SimpleSAML\Utils;
16
use SimpleSAML\XHTML\Template;
17
use Symfony\Component\HttpFoundation\Request;
18
19
/**
20
 * Set of tests for the controllers in the "webauthn" module.
21
 *
22
 * @package SimpleSAML\Test
23
 */
24
class RegProcessTest extends TestCase
25
{
26
    /** @var \SimpleSAML\Configuration */
27
    protected $config;
28
29
    /** @var \SimpleSAML\Logger */
30
    protected $logger;
31
32
    /** @var \SimpleSAML\Session */
33
    protected $session;
34
35
36
    /**
37
     * Set up for each test.
38
     * @return void
39
     */
40
    protected function setUp(): void
41
    {
42
        parent::setUp();
43
44
        $this->config = Configuration::loadFromArray(
45
            [
46
                'module.enable' => ['webauthn' => true],
47
                'secretsalt' => 'abc123',
48
                'enable.saml20-idp' => true,
49
            ],
50
            '[ARRAY]',
51
            'simplesaml'
52
        );
53
54
        $this->session = Session::getSessionFromRequest();
55
56
        $this->logger = new class () extends Logger {
57
            public static function info(string $str): void
58
            {
59
                // do nothing
60
            }
61
        };
62
    }
63
64
65
    /**
66
     * @return void
67
     */
68
    public function testRegProcess(): void
69
    {
70
        $this->markTestSkipped('Breaks testsuite');
71
72
        $_SERVER['REQUEST_URI'] = '/module.php/webauthn/regprocess';
73
        $request = Request::create(
74
            '/regprocess',
75
            'POST',
76
            [
77
                'StateId' => 'someStateId',
78
                'attestation_object' => 'some object',
79
                'type' => 'public-key',
80
                'response_id' => 'abc123',
81
                'attestation_client_data_json' => 'test',
82
            ]
83
        );
84
85
86
        $c = new Controller\RegProcess($this->config, $this->session);
87
        $c->setLogger($this->logger);
88
        $c->setAuthState(new class () extends State {
89
            public static function loadState(string $id, string $stage, bool $allowMissing = false): ?array
90
            {
91
                return [
92
                    'FIDO2Scope' => 'Ducktown',
93
                    'FIDO2Tokens' => [0 => 'A1B2C3', 1 => 'D4E5F6'],
94
                    'FIDO2SignupChallenge' => 'abc123',
95
                    'FIDO2AuthSuccessful' => true,
96
                    'IdPMetadata' => [
97
                        'entityid' => 'https://idp.example.com',
98
                    ],
99
                ];
100
            }
101
        });
102
103
        $response = $c->main($request);
104
105
        $this->assertTrue($response->isSuccessful());
106
    }
107
}
108