mirror of
https://github.com/parsecsv/parsecsv-for-php.git
synced 2026-02-19 08:36:39 +00:00
- https://svn.apache.org/repos/asf/shindig/attic/php/docs/style-guide.html: "Acryonyms are treated as normal words." - https://softwareengineering.stackexchange.com/a/149321/80632 Overview of class naming conventions of PHP frameworks - https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md No .lib allowed: "The class name corresponds to a file name ending in .php" See issue #50
66 lines
1.9 KiB
PHP
66 lines
1.9 KiB
PHP
<?php
|
|
|
|
class SaveTest extends PHPUnit\Framework\TestCase {
|
|
|
|
/** @var ParseCsvForPhp */
|
|
private $csv;
|
|
|
|
private $temp_filename;
|
|
|
|
/**
|
|
* Setup our test environment objects; will be called before each test.
|
|
*/
|
|
public function setUp() {
|
|
$this->csv = new ParseCsvForPhp();
|
|
$this->csv->auto(__DIR__ . '/../example_files/single_column.csv');
|
|
|
|
// Remove last 2 lines to simplify comparison
|
|
unset($this->csv->data[2], $this->csv->data[3]);
|
|
|
|
$temp_dir = str_replace("\\", '/', sys_get_temp_dir());
|
|
if (substr($temp_dir, -1) != '/') {
|
|
// From the PHP.net documentation:
|
|
// This function does not always add trailing slash. This behaviour
|
|
// is inconsistent across systems.
|
|
$temp_dir .= '/';
|
|
}
|
|
$this->temp_filename = $temp_dir . 'parsecsv_test_file.csv';
|
|
}
|
|
|
|
public function testSaveWithDefaultSettings() {
|
|
$expected = "SMS\r0444\r5555\r";
|
|
$this->saveAndCompare($expected);
|
|
}
|
|
|
|
public function testSaveWithDosLineEnding() {
|
|
$this->csv->linefeed = "\r\n";
|
|
$expected = "SMS\r\n0444\r\n5555\r\n";
|
|
$this->saveAndCompare($expected);
|
|
}
|
|
|
|
public function testSaveWithUnixLineEnding() {
|
|
$this->csv->linefeed = "\n";
|
|
$expected = "SMS\n0444\n5555\n";
|
|
$this->saveAndCompare($expected);
|
|
}
|
|
|
|
public function testSaveWithoutHeader() {
|
|
$this->csv->linefeed = "\n";
|
|
$this->csv->heading = false;
|
|
$expected = "0444\n5555\n";
|
|
$this->saveAndCompare($expected);
|
|
}
|
|
|
|
public function testAllQuotes() {
|
|
$this->csv->enclose_all = true;
|
|
$expected = "\"SMS\"\r\"0444\"\r\"5555\"\r";
|
|
$this->saveAndCompare($expected);
|
|
}
|
|
|
|
private function saveAndCompare($expected) {
|
|
$this->csv->save($this->temp_filename);
|
|
$content = file_get_contents($this->temp_filename);
|
|
$this->assertEquals($expected, $content);
|
|
}
|
|
}
|