public function testSaveAndLoadCustomFieldData() { $values = array('Item 1', 'Item 2', 'Item 3'); $labels = array('fr' => 'Item 1 fr', 'fr' => 'Item 2 fr', 'fr' => 'Item 3 fr'); $customFieldData = CustomFieldData::getByName('Items'); $customFieldData->serializedData = serialize($values); $customFieldData->serializedLabels = serialize($labels); $this->assertTrue($customFieldData->save()); $id = $customFieldData->id; unset($customFieldData); $customFieldData = CustomFieldData::getById($id); $loadedValues = unserialize($customFieldData->serializedData); $loadedLabels = unserialize($customFieldData->serializedLabels); $this->assertEquals('Items', $customFieldData->name); $this->assertNull($customFieldData->defaultValue); $this->assertEquals($values, $loadedValues); $this->assertEquals($labels, $loadedLabels); $customFieldData->defaultValue = $values[2]; $this->assertTrue($customFieldData->save()); unset($customFieldData); $customFieldData = CustomFieldData::getById($id); $this->assertEquals('Items', $customFieldData->name); $this->assertEquals('Item 3', $customFieldData->defaultValue); $this->assertEquals($values, $loadedValues); }
public function testSetAndGetEmptyValueWhichShouldUtilizeFallBack() { $this->assertEquals('en', Yii::app()->language); $values = array('Item 1', 'Item 2', 'Item 3'); $labels = array('fr' => array('Item 1 fr', '', 'Item 3 fr')); $customFieldData = CustomFieldData::getByName('Items2'); $customFieldData->serializedData = serialize($values); $customFieldData->serializedLabels = serialize($labels); $this->assertTrue($customFieldData->save()); $id = $customFieldData->id; $customFieldData->forget(); unset($customFieldData); $customFieldData = CustomFieldData::getById($id); $dataAndLabels = CustomFieldDataUtil::getDataIndexedByDataAndTranslatedLabelsByLanguage($customFieldData, 'en'); $compareData = array('Item 1' => 'Item 1', 'Item 2' => 'Item 2', 'Item 3' => 'Item 3'); $this->assertEquals($compareData, $dataAndLabels); $dataAndLabels = CustomFieldDataUtil::getDataIndexedByDataAndTranslatedLabelsByLanguage($customFieldData, 'fr'); $compareData = array('Item 1' => 'Item 1 fr', 'Item 2' => 'Item 2', 'Item 3' => 'Item 3 fr'); $this->assertEquals($compareData, $dataAndLabels); }
public function testGetTranslatedLabelByValue() { $this->assertEquals('en', Yii::app()->language); $values = array('Item 1', 'Item 2', 'Item 3'); $labels = array('fr' => array('Item 1 fr', '', 'Item 3 fr')); $customFieldData = CustomFieldData::getByName('Items2'); $customFieldData->serializedData = serialize($values); $customFieldData->serializedLabels = serialize($labels); $this->assertTrue($customFieldData->save()); $id = $customFieldData->id; $customFieldData->forget(); unset($customFieldData); $customFieldData = CustomFieldData::getById($id); $value = CustomFieldDataUtil::getTranslatedLabelByValue($customFieldData, 'Item 1', 'en'); $this->assertEquals('Item 1', $value); $value = CustomFieldDataUtil::getTranslatedLabelByValue($customFieldData, 'Item 1', 'fr'); $this->assertEquals('Item 1 fr', $value); }