Skip to content

Commit

Permalink
Translatable configurable metadata
Browse files Browse the repository at this point in the history
This is a continuation of #1103 where we made the Organization-data in metadata
configurable using the translations-files.

However, the result would be like this:

<md:OrganizationDisplayName lang="en">My fictional organization</md:OrganizationDisplayName>
<md:OrganizationDisplayName lang="nl">My fictional organization</md:OrganizationDisplayName>

Instead of:

<md:OrganizationDisplayName lang="en">My fictional organization</md:OrganizationDisplayName>
<md:OrganizationDisplayName lang="nl">Mijn fictieve organisatie</md:OrganizationDisplayName>

Everything was being translated using the default locale. This PR attempts to fix that.

See: #1292
See: #1103
  • Loading branch information
tvdijen authored and MKodde committed Aug 27, 2024
1 parent d27762c commit 0bb2a4e
Show file tree
Hide file tree
Showing 16 changed files with 114 additions and 123 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -126,10 +126,10 @@ public function hasCompleteOrganizationData(string $locale): bool
}

/**
* @param $locale
* @param string $locale
* @return Organization
*/
public function getOrganization($locale): ?Organization
public function getOrganization(string $locale): ?Organization
{
switch (true) {
case ($locale == 'nl'):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,10 +128,10 @@ public function hasCompleteOrganizationData(string $locale): bool
}

/**
* @param $locale
* @param string $locale
* @return Organization
*/
public function getOrganization($locale): ?Organization
public function getOrganization(string $locale): ?Organization
{
switch (true) {
case ($locale == 'nl'):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,10 @@ public function hasCompleteOrganizationData(string $locale): bool
}

/**
* @param $locale
* @param string $locale
* @return Organization|null
*/
public function getOrganization($locale): ?Organization
public function getOrganization(string $locale): ?Organization
{
return $this->entity->getOrganization($locale);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,10 @@ public function hasCompleteOrganizationData(string $locale): bool
}

/**
* @param $locale
* @param string $locale
* @return Organization|null
*/
public function getOrganization($locale): ?Organization
public function getOrganization(string $locale): ?Organization
{
return $this->entity->getOrganization($locale);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ public function getLogo(): ?Logo
return $this->engineBlockConfiguration->getLogo();
}

public function getOrganization($locale): ?Organization
public function getOrganization(string $locale): ?Organization
{
return $this->engineBlockConfiguration->getOrganization();
return $this->engineBlockConfiguration->getOrganization($locale);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ public function getLogo(): ?Logo
return $this->engineBlockConfiguration->getLogo();
}

public function getOrganization($locale): ?Organization
public function getOrganization(string $locale): ?Organization
{
return $this->engineBlockConfiguration->getOrganization();
return $this->engineBlockConfiguration->getOrganization($locale);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,10 @@ public function getLogo(): ?Logo;
public function hasCompleteOrganizationData(string $locale): bool;

/**
* @param $locale
* @param string $locale
* @return Organization|null
*/
public function getOrganization($locale): ?Organization;
public function getOrganization(string $locale): ?Organization;

/**
* @param $locale
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,10 @@ public function getLogo(): ?Logo;
public function hasCompleteOrganizationData(string $locale): bool;

/**
* @param $locale
* @param string $locale
* @return Organization|null
*/
public function getOrganization($locale): ?Organization;
public function getOrganization(string $locale): ?Organization;

/**
* @param $locale
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@
*/
class EngineBlockConfiguration
{
/**
* @var \Symfony\Component\Translation\TranslatorInterface
*/
private $translator;

/**
* @var string
*/
Expand Down Expand Up @@ -84,11 +89,12 @@ public function __construct(
int $logoWidth,
int $logoHeight
) {
$this->translator = $translator;
$this->suiteName = $translator->trans('suite_name');
$this->engineHostName = $engineHostName;
$this->organizationName = $translator->trans('metadata_organization_name');
$this->organizationDisplayName = $translator->trans('metadata_organization_displayname');
$this->organizationUrl = $translator->trans('metadata_organization_url');
$this->organizationName = 'metadata_organization_name';
$this->organizationDisplayName = 'metadata_organization_displayname';
$this->organizationUrl = 'metadata_organization_url';
$this->supportMail = $supportMail;
$this->description = $description;

Expand All @@ -101,9 +107,10 @@ public function __construct(
$this->logo->height = $logoHeight;

// Create the contact person data for the EB SP entity
$support = ContactPerson::from('support', $this->organizationName, 'Support', $this->supportMail);
$technical = ContactPerson::from('technical', $this->organizationName, 'Support', $this->supportMail);
$administrative = ContactPerson::from('administrative', $this->organizationName, 'Support', $this->supportMail);
$organizationName = $translator->trans('metadata_organization_name');
$support = ContactPerson::from('support', $organizationName, 'Support', $this->supportMail);
$technical = ContactPerson::from('technical', $organizationName, 'Support', $this->supportMail);
$administrative = ContactPerson::from('administrative', $organizationName, 'Support', $this->supportMail);

$this->contactPersons = [$support, $technical, $administrative];
}
Expand All @@ -118,9 +125,12 @@ public function getHostname(): string
return $this->engineHostName;
}

public function getOrganization() : Organization
public function getOrganization(string $locale) : Organization
{
return new Organization($this->organizationName, $this->organizationDisplayName, $this->organizationUrl);
$organizationName = $this->translator->trans($this->organizationName, [], null, $locale);
$organizationDisplayName = $this->translator->trans($this->organizationDisplayName, [], null, $locale);
$organizationUrl = $this->translator->trans($this->organizationUrl, [], null, $locale);
return new Organization($organizationName, $organizationDisplayName, $organizationUrl);
}

public function getLogo(): Logo
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
use OpenConext\EngineBlock\Metadata\Service;
use OpenConext\EngineBlock\Metadata\ShibMdScope;
use OpenConext\EngineBlock\Metadata\X509\X509Certificate;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use ReflectionClass;
use ReflectionProperty;
Expand Down Expand Up @@ -512,6 +513,64 @@ protected function getServiceProviderMockProperties()
];
}

protected function setTranslationExpectancies(MockObject $translator)
{
$translator->expects($this->at(0))
->method('trans')
->with('suite_name')
->willReturn('test-suite');

$translator->expects($this->at(1))
->method('trans')
->with('metadata_organization_name')
->willReturn('configuredOrganizationName');

$translator->expects($this->at(2))
->method('trans')
->with('metadata_organization_name', [], null, 'nl')
->willReturn('configuredOrganizationName');

$translator->expects($this->at(3))
->method('trans')
->with('metadata_organization_displayname', [], null, 'nl')
->willReturn('configuredOrganizationDisplayName');

$translator->expects($this->at(4))
->method('trans')
->with('metadata_organization_url', [], null, 'nl')
->willReturn('configuredOrganizationUrl');

$translator->expects($this->at(5))
->method('trans')
->with('metadata_organization_name', [], null, 'en')
->willReturn('configuredOrganizationName');

$translator->expects($this->at(6))
->method('trans')
->with('metadata_organization_displayname', [], null, 'en')
->willReturn('configuredOrganizationDisplayName');

$translator->expects($this->at(7))
->method('trans')
->with('metadata_organization_url', [], null, 'en')
->willReturn('configuredOrganizationUrl');

$translator->expects($this->at(8))
->method('trans')
->with('metadata_organization_name', [], null, 'pt')
->willReturn('configuredOrganizationName');

$translator->expects($this->at(9))
->method('trans')
->with('metadata_organization_displayname', [], null, 'pt')
->willReturn('configuredOrganizationDisplayName');

$translator->expects($this->at(10))
->method('trans')
->with('metadata_organization_url', [], null, 'pt')
->willReturn('configuredOrganizationUrl');
}

private function getParameters($className, $skipParameters = [])
{
$results = [];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,34 +31,17 @@ public function test_methods()
$adapter = $this->createIdentityProviderAdapter();

$translator = $this->createMock(TranslatorInterface::class);
$translator->expects($this->at(0))
->method('trans')
->with('suite_name')
->willReturn('test-suite');

$translator->expects($this->at(1))
->method('trans')
->with('metadata_organization_name')
->willReturn('configuredOrganizationName');

$translator->expects($this->at(2))
->method('trans')
->with('metadata_organization_displayname')
->willReturn('configuredOrganizationDisplayName');

$translator->expects($this->at(3))
->method('trans')
->with('metadata_organization_url')
->willReturn('configuredOrganizationUrl');
$this->setTranslationExpectancies($translator);

$configuration = new EngineBlockConfiguration(
$translator,
'configuredSupportMail',
'configuredDescription',
'example.org',
'/configuredLogoUrl',
1209,
1009
'configuredSupportMail',
'configuredDescription',
'example.org',
'/configuredLogoUrl',
1209,
1009
);

$decorator = new EngineBlockIdentityProviderInformation($adapter, $configuration);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,25 +32,8 @@ public function test_methods()
$adapter = $this->createServiceProviderAdapter();

$translator = $this->createMock(TranslatorInterface::class);
$translator->expects($this->at(0))
->method('trans')
->with('suite_name')
->willReturn('test-suite');

$translator->expects($this->at(1))
->method('trans')
->with('metadata_organization_name')
->willReturn('configuredOrganizationName');

$translator->expects($this->at(2))
->method('trans')
->with('metadata_organization_displayname')
->willReturn('configuredOrganizationDisplayName');

$translator->expects($this->at(3))
->method('trans')
->with('metadata_organization_url')
->willReturn('configuredOrganizationUrl');
$this->setTranslationExpectancies($translator);

$configuration = new EngineBlockConfiguration(
$translator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,16 +111,6 @@ private function createConfiguration(): EngineBlockConfiguration
->with('metadata_organization_name')
->willReturn('configuredOrganizationName');

$translator->expects($this->at(2))
->method('trans')
->with('metadata_organization_displayname')
->willReturn('configuredOrganizationDisplayName');

$translator->expects($this->at(3))
->method('trans')
->with('metadata_organization_url')
->willReturn('configuredOrganizationUrl');

$configuration = new EngineBlockConfiguration(
$translator,
'configuredSupportMail',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,16 +98,6 @@ public function test_create_idp_entity_from_entity_properties()
->with('metadata_organization_name')
->willReturn('configuredOrganizationName');

$this->translator->expects($this->at(2))
->method('trans')
->with('metadata_organization_displayname')
->willReturn('configuredOrganizationDisplayName');

$this->translator->expects($this->at(3))
->method('trans')
->with('metadata_organization_url')
->willReturn('configuredOrganizationUrl');

$this->configuration = new EngineBlockConfiguration(
$this->translator,
'configuredSupportMail',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,9 @@
namespace OpenConext\EngineBlock\Metadata\Factory\Factory;

use EngineBlock_Attributes_Metadata as AttributesMetadata;
use Mockery\Mock;
use OpenConext\EngineBlock\Exception\MissingParameterException;
use OpenConext\EngineBlock\Metadata\Coins;
use OpenConext\EngineBlock\Metadata\ContactPerson;
use OpenConext\EngineBlock\Metadata\Entity\ServiceProvider;
use OpenConext\EngineBlock\Metadata\Factory\AbstractEntityTest;
use OpenConext\EngineBlock\Metadata\Factory\ServiceProviderEntityInterface;
use OpenConext\EngineBlock\Metadata\Factory\ValueObject\EngineBlockConfiguration;
Expand Down Expand Up @@ -114,25 +112,7 @@ public function test_create_stepup_entity_from()

public function test_eb_properties()
{
$this->translator->expects($this->at(0))
->method('trans')
->with('suite_name')
->willReturn('test-suite');

$this->translator->expects($this->at(1))
->method('trans')
->with('metadata_organization_name')
->willReturn('configuredOrganizationName');

$this->translator->expects($this->at(2))
->method('trans')
->with('metadata_organization_displayname')
->willReturn('configuredOrganizationDisplayName');

$this->translator->expects($this->at(3))
->method('trans')
->with('metadata_organization_url')
->willReturn('configuredOrganizationUrl');
$this->setTranslationExpectancies($this->translator);

$this->configuration = new EngineBlockConfiguration(
$this->translator,
Expand Down Expand Up @@ -295,16 +275,6 @@ public function test_stepup_properties()
->with('metadata_organization_name')
->willReturn('configuredOrganizationName');

$this->translator->expects($this->at(2))
->method('trans')
->with('metadata_organization_displayname')
->willReturn('configuredOrganizationDisplayName');

$this->translator->expects($this->at(3))
->method('trans')
->with('metadata_organization_url')
->willReturn('configuredOrganizationUrl');

$this->configuration = new EngineBlockConfiguration(
$this->translator,
'configuredSupportMail',
Expand Down
Loading

0 comments on commit 0bb2a4e

Please sign in to comment.