forked from fa/breadcrumb-the-shire
Cover Settings gateways (Session, LoginPersistence, SystemAudit, Smtp, FrontendTelemetry, Metadata, App), Auth gateways (ExternalIdentity, Tenant), DirectorySettings, UserSettings, and HotkeyService. Gateway test coverage rises from 25% to 52%, overall service/gateway coverage from 58.6% to 70.7%. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
84 lines
2.5 KiB
PHP
84 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace MintyPHP\Tests\Service\Ui;
|
|
|
|
use MintyPHP\Service\Ui\HotkeyService;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class HotkeyServiceTest extends TestCase
|
|
{
|
|
public function testListReturnsNonEmptyArray(): void
|
|
{
|
|
$result = HotkeyService::list();
|
|
|
|
$this->assertIsArray($result);
|
|
$this->assertNotEmpty($result);
|
|
}
|
|
|
|
public function testListEntriesHaveRequiredKeys(): void
|
|
{
|
|
$result = HotkeyService::list();
|
|
|
|
foreach ($result as $index => $entry) {
|
|
$this->assertArrayHasKey('action_key', $entry, "Entry #{$index} is missing 'action_key'");
|
|
$this->assertArrayHasKey('mac', $entry, "Entry #{$index} is missing 'mac'");
|
|
$this->assertArrayHasKey('win', $entry, "Entry #{$index} is missing 'win'");
|
|
$this->assertNotEmpty($entry['action_key'], "Entry #{$index} has empty 'action_key'");
|
|
$this->assertNotEmpty($entry['mac'], "Entry #{$index} has empty 'mac'");
|
|
$this->assertNotEmpty($entry['win'], "Entry #{$index} has empty 'win'");
|
|
}
|
|
}
|
|
|
|
public function testListEntriesHaveExactlyThreeKeys(): void
|
|
{
|
|
$result = HotkeyService::list();
|
|
|
|
foreach ($result as $index => $entry) {
|
|
$this->assertCount(3, $entry, "Entry #{$index} should have exactly 3 keys");
|
|
}
|
|
}
|
|
|
|
public function testSearchKeywordsReturnsNonEmptyArray(): void
|
|
{
|
|
$result = HotkeyService::searchKeywords();
|
|
|
|
$this->assertIsArray($result);
|
|
$this->assertNotEmpty($result);
|
|
}
|
|
|
|
public function testSearchKeywordsContainsExpectedTerms(): void
|
|
{
|
|
$result = HotkeyService::searchKeywords();
|
|
|
|
$this->assertContains('hotkey', $result);
|
|
$this->assertContains('shortcut', $result);
|
|
$this->assertContains('keyboard', $result);
|
|
}
|
|
|
|
public function testSearchKeywordsAreAllStrings(): void
|
|
{
|
|
$result = HotkeyService::searchKeywords();
|
|
|
|
foreach ($result as $keyword) {
|
|
$this->assertIsString($keyword);
|
|
$this->assertNotEmpty($keyword);
|
|
}
|
|
}
|
|
|
|
public function testListReturnsDeterministicResult(): void
|
|
{
|
|
$first = HotkeyService::list();
|
|
$second = HotkeyService::list();
|
|
|
|
$this->assertSame($first, $second);
|
|
}
|
|
|
|
public function testSearchKeywordsReturnsDeterministicResult(): void
|
|
{
|
|
$first = HotkeyService::searchKeywords();
|
|
$second = HotkeyService::searchKeywords();
|
|
|
|
$this->assertSame($first, $second);
|
|
}
|
|
}
|