]> git.mxchange.org Git - friendica.git/blob - tests/src/Security/TwoFactor/Factory/TrustedBrowserTest.php
Add trusted browser classes
[friendica.git] / tests / src / Security / TwoFactor / Factory / TrustedBrowserTest.php
1 <?php
2
3 namespace Friendica\Test\src\Security\TwoFactor\Factory;
4
5 use Friendica\Security\TwoFactor\Factory\TrustedBrowser;
6 use Friendica\Util\DateTimeFormat;
7 use Friendica\Util\Logger\VoidLogger;
8 use Friendica\Util\Strings;
9
10 class TrustedBrowserTest extends \PHPUnit_Framework_TestCase
11 {
12         public function testCreateFromTableRowSuccess()
13         {
14                 $factory = new TrustedBrowser(new VoidLogger());
15
16                 $row = [
17                         'cookie_hash' => Strings::getRandomHex(),
18                         'uid' => 42,
19                         'user_agent' => 'PHPUnit',
20                         'created' => DateTimeFormat::utcNow(),
21                         'last_used' => null,
22                 ];
23
24                 $trustedBrowser = $factory->createFromTableRow($row);
25
26                 $this->assertEquals($row, $trustedBrowser->toArray());
27         }
28
29         public function testCreateFromTableRowMissingData()
30         {
31                 $this->expectException(\TypeError::class);
32
33                 $factory = new TrustedBrowser(new VoidLogger());
34
35                 $row = [
36                         'cookie_hash' => null,
37                         'uid' => null,
38                         'user_agent' => null,
39                         'created' => null,
40                         'last_used' => null,
41                 ];
42
43                 $trustedBrowser = $factory->createFromTableRow($row);
44
45                 $this->assertEquals($row, $trustedBrowser->toArray());
46         }
47
48         public function testCreateForUserWithUserAgent()
49         {
50                 $factory = new TrustedBrowser(new VoidLogger());
51
52                 $uid = 42;
53                 $userAgent = 'PHPUnit';
54
55                 $trustedBrowser = $factory->createForUserWithUserAgent($uid, $userAgent);
56
57                 $this->assertNotEmpty($trustedBrowser->cookie_hash);
58                 $this->assertEquals($uid, $trustedBrowser->uid);
59                 $this->assertEquals($userAgent, $trustedBrowser->user_agent);
60                 $this->assertNotEmpty($trustedBrowser->created);
61         }
62 }