/**
  * {@inheritdoc}
  */
 protected function createGuesser()
 {
     $seoMetadata = new SeoMetadata();
     $seoMetadata->setTitle('Symfony CMF');
     $seoPresentation = $this->getMockBuilder('Symfony\\Cmf\\Bundle\\SeoBundle\\SeoPresentation')->disableOriginalConstructor()->getMock();
     $seoPresentation->expects($this->any())->method('getSeoMetadata')->with($this)->will($this->returnValue($seoMetadata));
     return new SeoMetadataTitleGuesser($seoPresentation);
 }
Ejemplo n.º 2
0
 public function testSeoMetadata()
 {
     $content = new SeoAwareOrmContent();
     $content->setTitle('Seo Aware test')->setBody('Content for SeoAware Test');
     $seoMetadata = new SeoMetadata();
     $seoMetadata->setTitle('Seo Title')->setMetaDescription('Seo Description')->setMetaKeywords('Seo, Keys')->setOriginalUrl('/test')->setExtraProperties(array('og:title' => 'Extra title'))->setExtraNames(array('robots' => 'index, follow'))->setExtraHttp(array('content-type' => 'text/html'));
     $content->setSeoMetadata($seoMetadata);
     $this->getEm()->persist($content);
     $this->getEm()->flush();
     $this->getEm()->clear();
     $content = $this->getEm()->getRepository('Symfony\\Cmf\\Bundle\\SeoBundle\\Tests\\Resources\\Entity\\SeoAwareOrmContent')->findOneByTitle('Seo Aware test');
     $this->assertNotNull($content);
     $persistedSeoMetadata = $content->getSeoMetadata();
     $this->assertEquals($seoMetadata, $persistedSeoMetadata);
 }
 public function testValidSeoChannelContent()
 {
     $title = 'Title';
     $description = 'Lorem ipsum dolor sit amet..';
     $url = 'http://lorem.ipsum';
     $seoMetadata = new SeoMetadata();
     $seoMetadata->setTitle($title);
     $seoMetadata->setMetaDescription($description);
     $seoMetadata->setOriginalUrl($url);
     $seoAware = $this->getMock('Symfony\\Cmf\\Bundle\\SeoBundle\\SeoAwareInterface');
     $seoAware->expects($this->once())->method('getSeoMetadata')->will($this->returnValue($seoMetadata));
     $this->assertTrue($this->extractor->supports($seoAware));
     $channel = new Channel();
     $this->extractor->updateMetadata($seoAware, $channel);
     $this->assertSame($title, $channel->getTitle());
     $this->assertSame($description, $channel->getDescription());
     $this->assertSame($url, $channel->getLink());
 }
Ejemplo n.º 4
0
 public function testDataClassCreationForNonPhpcr()
 {
     $this->validator->expects($this->any())->method('validate')->will($this->returnValue(array()));
     $formData = array('title' => 'Title', 'originalUrl' => 'original/url', 'extraProperties' => array(), 'extraNames' => array(), 'extraHttp' => array());
     $form = $this->factory->create(SeoMetadataTypeTest_OrmType::class);
     $this->assertFalse($form->getConfig()->getByReference());
     $object = new SeoMetadataModel();
     $object->setTitle($formData['title']);
     $object->setOriginalUrl($formData['originalUrl']);
     $object->setExtraNames($formData['extraNames']);
     $object->setExtraHttp($formData['extraHttp']);
     $object->setExtraProperties($formData['extraProperties']);
     // submit the data to the form directly
     $form->submit($formData);
     $this->assertTrue($form->isSynchronized());
     $this->assertEquals($object, $form->getData());
 }
Ejemplo n.º 5
0
 /**
  * Copy the metadata object to sanitize it and remove doctrine traces.
  *
  * @param SeoMetadataInterface $contentSeoMetadata
  *
  * @return SeoMetadata
  */
 private function copyMetadata(SeoMetadataInterface $contentSeoMetadata)
 {
     $metadata = new SeoMetadata();
     return $metadata->setTitle($contentSeoMetadata->getTitle())->setMetaKeywords($contentSeoMetadata->getMetaKeywords())->setMetaDescription($contentSeoMetadata->getMetaDescription())->setOriginalUrl($contentSeoMetadata->getOriginalUrl())->setExtraProperties($contentSeoMetadata->getExtraProperties() ?: array())->setExtraNames($contentSeoMetadata->getExtraNames() ?: array())->setExtraHttp($contentSeoMetadata->getExtraHttp() ?: array());
 }