summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorIgnace Nyamagana Butera <nyamsprod@gmail.com>2015-04-21 09:06:11 +0200
committerIgnace Nyamagana Butera <nyamsprod@gmail.com>2015-04-22 11:30:11 +0200
commit23b43fc9386bf007ca28d6e361e8d265647b35c9 (patch)
tree61bab2bf7bcf71ea7ddc34999eb5052a8b8b45d1 /test
parent6b385a6513d3018814ff4bdd036c4453a3613419 (diff)
downloadcsv-23b43fc9386bf007ca28d6e361e8d265647b35c9.zip
csv-23b43fc9386bf007ca28d6e361e8d265647b35c9.tar.gz
csv-23b43fc9386bf007ca28d6e361e8d265647b35c9.tar.bz2
adding QueryFilter::stripBom method
Diffstat (limited to 'test')
-rw-r--r--test/ReaderTest.php57
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()