/** * @param ObjectManager $manager */ public function load(ObjectManager $manager) { $owner = $this->getReference('simple_user'); $calendar = $manager->getRepository('Oro\\Bundle\\CalendarBundle\\Entity\\Calendar')->findOneBy([]); $event = new CalendarEvent(); $event->setTitle('test_title')->setCalendar($calendar)->setAllDay(true)->setStart(new \DateTime('now -2 days', new \DateTimeZone('UTC')))->setEnd(new \DateTime('now', new \DateTimeZone('UTC'))); $emailTemplate1 = new EmailTemplate('no_entity_name', 'test {{ system.appFullName }} etc'); $emailTemplate1->setOrganization($owner->getOrganization()); $emailTemplate2 = new EmailTemplate('test_template', 'test {{ system.appFullName }} etc'); $emailTemplate2->setEntityName('Oro\\Bundle\\CalendarBundle\\Entity\\CalendarEvent'); $emailTemplate2->setOrganization($owner->getOrganization()); $emailTemplate3 = new EmailTemplate('no_system', 'test {{ system.appFullName }} etc'); $emailTemplate3->setIsSystem(false); $emailTemplate3->setEntityName('Entity\\Name'); $emailTemplate3->setOrganization($owner->getOrganization()); $emailTemplate4 = new EmailTemplate('system', 'test {{ system.appFullName }} etc'); $emailTemplate4->setIsSystem(true); $emailTemplate4->setEntityName('Entity\\Name'); $emailTemplate4->setOrganization($owner->getOrganization()); $emailTemplate5 = new EmailTemplate('no_system_no_entity', 'test {{ system.appFullName }} etc'); $emailTemplate5->setIsSystem(false); $emailTemplate5->setOrganization($owner->getOrganization()); $manager->persist($event); $manager->persist($emailTemplate1); $manager->persist($emailTemplate2); $manager->persist($emailTemplate3); $manager->persist($emailTemplate4); $manager->persist($emailTemplate5); $manager->flush(); $this->setReference('emailTemplate1', $emailTemplate1); $this->setReference('emailTemplate2', $emailTemplate2); $this->setReference('emailTemplate3', $emailTemplate3); $this->setReference('emailTemplate4', $emailTemplate4); $this->setReference('emailTemplate5', $emailTemplate5); }
/** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('entityName', 'hidden', ['attr' => ['data-default-value' => Email::ENTITY_CLASS], 'constraints' => [new Assert\Choice(['choices' => ['', Email::ENTITY_CLASS]])]])->add('type', 'choice', ['label' => 'oro.email.emailtemplate.type.label', 'multiple' => false, 'expanded' => true, 'choices' => ['html' => 'oro.email.datagrid.emailtemplate.filter.type.html', 'txt' => 'oro.email.datagrid.emailtemplate.filter.type.txt'], 'required' => true])->add('translations', 'oro_email_emailtemplate_translatation', ['label' => 'oro.email.emailtemplate.translations.label', 'locales' => $this->getLanguages(), 'labels' => $this->getLocaleLabels(), 'content_options' => ['constraints' => [new Assert\NotBlank()], 'attr' => ['data-default-value' => $this->cm->get('oro_email.signature', '')]], 'subject_options' => ['constraints' => [new Assert\NotBlank()]]])->add('visible', 'checkbox', ['label' => 'oro.email.autoresponserule.form.template.visible.label', 'required' => false]); $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) { $form = $event->getForm(); if ($form->has('owner')) { $form->remove('owner'); } if (!$event->getData()) { $emailTemplate = new EmailTemplate(); $emailTemplate->setContent($this->cm->get('oro_email.signature', '')); $emailTemplate->setEntityName(Email::ENTITY_CLASS); $event->setData($emailTemplate); } }); $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) { $template = $event->getData(); if (!$template || $template->getName()) { return; } $proposedName = $template->getSubject(); while ($this->templateExists($proposedName)) { $proposedName .= rand(0, 10); } $template->setName($proposedName); }); }
public function testValidateNotErrors() { $this->template->setContent(self::TEST_CONTENT)->setSubject(self::TEST_SUBJECT); $this->template->setEntityName('Oro\\Bundle\\EmailBundle\\Tests\\Unit\\Fixtures\\Entity\\SomeEntity'); $phpUnit = $this; $user = $this->user; $callback = function ($template, $params) use($phpUnit, $user) { $phpUnit->assertInternalType('string', $template); $phpUnit->assertArrayHasKey('entity', $params); $phpUnit->assertArrayHasKey('user', $params); $phpUnit->assertInstanceOf('Oro\\Bundle\\EmailBundle\\Tests\\Unit\\Fixtures\\Entity\\SomeEntity', $params['entity']); $phpUnit->assertInstanceOf(get_class($user), $params['user']); }; $this->twig->expects($this->at(0))->method('render')->with(self::TEST_SUBJECT)->will($this->returnCallback($callback)); $this->twig->expects($this->at(1))->method('render')->with(self::TEST_CONTENT)->will($this->returnCallback($callback)); $this->context->expects($this->never())->method('addViolation'); $this->validator->validate($this->template, $this->variablesConstraint); }
/** * @param ObjectManager $manager */ public function load(ObjectManager $manager) { $calendar = $manager->getRepository('Oro\\Bundle\\CalendarBundle\\Entity\\Calendar')->findOneBy([]); $event = new CalendarEvent(); $event->setTitle('test_title')->setCalendar($calendar)->setAllDay(true)->setStart(new \DateTime('now -2 days', new \DateTimeZone('UTC')))->setEnd(new \DateTime('now', new \DateTimeZone('UTC'))); $emailTemplate1 = new EmailTemplate('no_entity_name', 'test {{ system.appFullName }} etc'); $emailTemplate2 = new EmailTemplate('test_template', 'test {{ system.appFullName }} etc'); $emailTemplate2->setEntityName('Oro\\Bundle\\CalendarBundle\\Entity\\CalendarEvent'); $manager->persist($event); $manager->persist($emailTemplate1); $manager->persist($emailTemplate2); $manager->flush(); }