diff options
author | Ignace Nyamagana Butera <nyamsprod@gmail.com> | 2015-04-21 09:06:11 +0200 |
---|---|---|
committer | Ignace Nyamagana Butera <nyamsprod@gmail.com> | 2015-04-22 11:30:11 +0200 |
commit | 23b43fc9386bf007ca28d6e361e8d265647b35c9 (patch) | |
tree | 61bab2bf7bcf71ea7ddc34999eb5052a8b8b45d1 /test | |
parent | 6b385a6513d3018814ff4bdd036c4453a3613419 (diff) | |
download | csv-23b43fc9386bf007ca28d6e361e8d265647b35c9.zip csv-23b43fc9386bf007ca28d6e361e8d265647b35c9.tar.gz csv-23b43fc9386bf007ca28d6e361e8d265647b35c9.tar.bz2 |
adding QueryFilter::stripBom method
Diffstat (limited to 'test')
-rw-r--r-- | test/ReaderTest.php | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/test/ReaderTest.php b/test/ReaderTest.php index 6d0ed4a..e9efb83 100644 --- a/test/ReaderTest.php +++ b/test/ReaderTest.php @@ -193,7 +193,62 @@ class ReaderTest extends PHPUnit_Framework_TestCase } /** - * @expectedException InvalidArgumentException + * @param $expected + * @dataProvider validBOMSequences + */ + public function testStripBOM($expected, $res) + { + $tmpFile = new SplTempFileObject(); + foreach ($expected as $row) { + $tmpFile->fputcsv($row); + } + $csv = Reader::createFromFileObject($tmpFile); + $csv->setFlags(SplFileObject::READ_AHEAD|SplFileObject::SKIP_EMPTY); + $csv->stripBom(true); + + $this->assertSame($res, $csv->fetchAll()[0][0]); + } + + public function validBOMSequences() + { + return [ + 'withBOM' => [[ + [Reader::BOM_UTF16_LE.'john', 'doe', 'john.doe@example.com', ], + ['jane', 'doe', 'jane.doe@example.com', ], + ], 'john'], + 'withDoubleBOM' => [[ + [Reader::BOM_UTF16_LE.Reader::BOM_UTF16_LE.'john', 'doe', 'john.doe@example.com', ], + ['jane', 'doe', 'jane.doe@example.com', ], + ], Reader::BOM_UTF16_LE.'john'], + 'withoutBOM' => [[ + ['john', 'doe', 'john.doe@example.com', ], + ['jane', 'doe', 'jane.doe@example.com', ], + ], 'john'], + ]; + } + + public function testStripBOMWithFetchAssoc() + { + $tmpFile = new SplTempFileObject(); + $expected = [ + [Reader::BOM_UTF16_LE.'john', 'doe', 'john.doe@example.com', ], + ['jane', 'doe', 'jane.doe@example.com', ], + ]; + + $tmpFile = new SplTempFileObject(); + foreach ($expected as $row) { + $tmpFile->fputcsv($row); + } + $csv = Reader::createFromFileObject($tmpFile); + $csv->setFlags(SplFileObject::READ_AHEAD|SplFileObject::SKIP_EMPTY); + $csv->stripBom(true); + $res = array_keys($csv->fetchAssoc()[0]); + + $this->assertSame('john', $res[0]); + } + + /** + * @expectedException \InvalidArgumentException * @expectedExceptionMessage Use a flat non empty array with unique string values */ public function testFetchAssocKeyFailure() |