. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace tests\integration\Espo\Tools\App; use Espo\Core\Utils\Metadata; use Espo\Tools\App\MetadataService; use tests\integration\Core\BaseTestCase; class MetadataTest extends BaseTestCase { public function testAclDependency(): void { $metadata = $this->getContainer()->getByClass(Metadata::class); $metadata->set('app', 'metadata', [ 'aclDependencies' => [ 'entityDefs.Campaign' => [ 'anyScopeList' => ['Opportunity'], ], ], ]); $metadata->save(); $this->reCreateApplication(); $this->createUser('tester', [ 'data' => [ 'Lead' => false, 'Opportunity' => [ 'create' => 'no', 'read' => 'own', 'edit' => 'no', 'delete' => 'no', 'stream' => 'no', ], ] ]); $this->auth('tester'); $this->setApplication($this->createApplication()); $data = $this->getInjectableFactory()->create(MetadataService::class)->getDataForFrontend(); $this->assertIsArray($data?->entityDefs?->Lead?->fields?->source?->options); $this->assertNull($data->entityDefs->Lead->fields->name ?? null); $this->assertNotNull($data?->entityDefs->Campaign ?? null); } }