/**
  * Checks if a given field is considered empty.
  * This method accepts field as Objects or by identifiers.
  *
  * @param \eZ\Publish\API\Repository\Values\Content\Content $content
  * @param \eZ\Publish\API\Repository\Values\Content\Field|string $fieldDefIdentifier Field or Field Identifier to
  *                                                                                   get the value from.
  * @param string $forcedLanguage Locale we want the content name translation in (e.g. "fre-FR").
  *                               Null by default (takes current locale).
  *
  * @return bool
  */
 public function isFieldEmpty(Content $content, $fieldDefIdentifier, $forcedLanguage = null)
 {
     if ($fieldDefIdentifier instanceof Field) {
         $fieldDefIdentifier = $fieldDefIdentifier->fieldDefIdentifier;
     }
     return $this->fieldHelper->isFieldEmpty($content, $fieldDefIdentifier, $forcedLanguage);
 }
 public function testIsFieldNotEmpty()
 {
     $contentTypeId = 123;
     $contentInfo = new ContentInfo(array('contentTypeId' => $contentTypeId));
     $content = $this->getMock('eZ\\Publish\\API\\Repository\\Values\\Content\\Content');
     $content->expects($this->any())->method('__get')->with('contentInfo')->will($this->returnValue($contentInfo));
     $fieldDefIdentifier = 'my_field_definition';
     $textLineFT = new TextLineType();
     $nonEmptyValue = new Value('Vive le sucre !!!');
     $emptyField = new Field(array('fieldDefIdentifier' => 'ezstring', 'value' => $nonEmptyValue));
     $contentType = $this->getMockForAbstractClass('eZ\\Publish\\API\\Repository\\Values\\ContentType\\ContentType');
     $fieldDefinition = $this->getMockBuilder('eZ\\Publish\\API\\Repository\\Values\\ContentType\\FieldDefinition')->setConstructorArgs(array(array('fieldTypeIdentifier' => 'ezstring')))->getMockForAbstractClass();
     $contentType->expects($this->once())->method('getFieldDefinition')->with($fieldDefIdentifier)->will($this->returnValue($fieldDefinition));
     $this->contentTypeServiceMock->expects($this->once())->method('loadContentType')->with($contentTypeId)->will($this->returnValue($contentType));
     $this->translationHelper->expects($this->once())->method('getTranslatedField')->with($content, $fieldDefIdentifier)->will($this->returnValue($emptyField));
     $this->fieldTypeServiceMock->expects($this->any())->method('getFieldType')->with('ezstring')->will($this->returnValue($textLineFT));
     $this->assertFalse($this->fieldHelper->isFieldEmpty($content, $fieldDefIdentifier));
 }
 public function getFirstFilledImageFieldIdentifier(Content $content)
 {
     foreach ($content->getFieldsByLanguage() as $field) {
         $fieldTypeIdentifier = $this->fieldHelper->getFieldDefinition($content->contentInfo, $field->fieldDefIdentifier)->fieldTypeIdentifier;
         if ($fieldTypeIdentifier !== 'ezimage') {
             continue;
         }
         if ($this->fieldHelper->isFieldEmpty($content, $field->fieldDefIdentifier)) {
             continue;
         }
         return $field->fieldDefIdentifier;
     }
     return null;
 }