コード例 #1
0
 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);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
 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);
 }