3 namespace Friendica\Test\src\Security\TwoFactor\Factory;
5 use Friendica\Security\TwoFactor\Factory\TrustedBrowser;
6 use Friendica\Test\MockedTest;
7 use Friendica\Util\DateTimeFormat;
8 use Friendica\Util\Logger\VoidLogger;
9 use Friendica\Util\Strings;
11 class TrustedBrowserTest extends MockedTest
13 public function testCreateFromTableRowSuccess()
15 $factory = new TrustedBrowser(new VoidLogger());
18 'cookie_hash' => Strings::getRandomHex(),
20 'user_agent' => 'PHPUnit',
21 'created' => DateTimeFormat::utcNow(),
25 $trustedBrowser = $factory->createFromTableRow($row);
27 $this->assertEquals($row, $trustedBrowser->toArray());
30 public function testCreateFromTableRowMissingData()
32 $this->expectException(\TypeError::class);
34 $factory = new TrustedBrowser(new VoidLogger());
37 'cookie_hash' => null,
44 $trustedBrowser = $factory->createFromTableRow($row);
46 $this->assertEquals($row, $trustedBrowser->toArray());
49 public function testCreateForUserWithUserAgent()
51 $factory = new TrustedBrowser(new VoidLogger());
54 $userAgent = 'PHPUnit';
56 $trustedBrowser = $factory->createForUserWithUserAgent($uid, $userAgent);
58 $this->assertNotEmpty($trustedBrowser->cookie_hash);
59 $this->assertEquals($uid, $trustedBrowser->uid);
60 $this->assertEquals($userAgent, $trustedBrowser->user_agent);
61 $this->assertNotEmpty($trustedBrowser->created);