File: EnigmaEngine.php

package info (click to toggle)
roundcube 1.6.11%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 44,868 kB
  • sloc: javascript: 195,588; php: 76,818; sql: 3,150; sh: 2,882; pascal: 1,079; makefile: 234; xml: 93; perl: 73; ansic: 48; python: 21
file content (42 lines) | stat: -rw-r--r-- 1,108 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php

namespace Roundcube\Plugins\Tests;

use PHPUnit\Framework\TestCase;

class Tests_EnigmaEngine extends TestCase
{
    static function setUpBeforeClass(): void
    {
        include_once INSTALL_PATH . 'plugins/enigma/enigma.php';
        include_once INSTALL_PATH . 'plugins/enigma/lib/enigma_engine.php';
    }

    /**
     * Test password_handler()
     */
    function test_password_handler()
    {
        $rcube  = \rcube::get_instance();
        $plugin = new \enigma($rcube->plugins);
        $engine = new \enigma_engine($plugin);

        unset($_SESSION['enigma_pass']);

        $engine->password_handler();

        $this->assertTrue(!array_key_exists('enigma_pass', $_SESSION));
        $this->assertSame([], $engine->get_passwords());

        $_POST = ['_keyid' => 'abc', '_passwd' => '123<a>456'];

        $time = time();
        $engine->password_handler();

        $store = unserialize($rcube->decrypt($_SESSION['enigma_pass']));

        $this->assertSame(['123<a>456', $time], $store['ABC']);
        $this->assertSame(['ABC' => '123<a>456'], $engine->get_passwords());
    }
}