public function getValue($row, $ddList) { $value = ""; switch ($this->type) { case self::FIELD_TYPE_DIRECT: if (isset($row[$this->name])) { $valueFromDb = $row[$this->name]; $value = CSVField::escape($valueFromDb); } break; case self::FIELD_TYPE_DATE: if (isset($row[$this->name])) { $valueFromDb = $row[$this->name]; $value = CSVField::escape(LocaleUtil::getInstance()->formatDate($valueFromDb)); } break; case self::FIELD_TYPE_FROMMAP: if (isset($row[$this->name])) { $valueFromDb = $row[$this->name]; $value = CSVField::escape(CSVField::getValueFromMap($this->map, $valueFromDb)); } break; case self::FIELD_TYPE_DIRECT_DEBIT: $value = CSVField::escape($this->_getDDValue($row, $ddList)); break; } return $value; }
/** Test escape() method */ public function testEscape() { // no escape needed: $this->assertEquals('test value', CSVField::escape('test value')); $this->assertEquals('name', CSVField::escape('name')); // escape comma $this->assertEquals('"name, aaa"', CSVField::escape('name, aaa')); $this->assertEquals('",name aaa"', CSVField::escape(',name aaa')); $this->assertEquals('"name aaa,"', CSVField::escape('name aaa,')); // escape quotes $this->assertEquals('"""Hello"""', CSVField::escape('"Hello"')); $this->assertEquals('"Hello"" how"', CSVField::escape('Hello" how')); // both $this->assertEquals('"Hello"", how"', CSVField::escape('Hello", how')); }