Updates to 3rd party libraries

Add Dockerfile and specific docker-php.ini
This commit is contained in:
2018-08-28 21:27:13 -04:00
parent 9edd6c1c35
commit d52454d1bb
511 changed files with 45960 additions and 2739 deletions

View File

@ -0,0 +1,73 @@
<?php
namespace PhpOffice\PhpSpreadsheetTests\Style;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Color;
use PHPUnit\Framework\TestCase;
class BorderRangeTest extends TestCase
{
public function testBorderRangeInAction()
{
// testcase for the initial bug problem: setting border+color fails
// set red borders aroundlA1:B3 square. Verify that the borders set are actually correct
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$argb = 'FFFF0000';
$color = new Color($argb);
$sheet->getStyle('A1:C1')->getBorders()->getTop()->setBorderStyle(Border::BORDER_THIN)->setColor($color);
$sheet->getStyle('A1:A3')->getBorders()->getLeft()->setBorderStyle(Border::BORDER_THIN)->setColor($color);
$sheet->getStyle('C1:C3')->getBorders()->getRight()->setBorderStyle(Border::BORDER_THIN)->setColor($color);
$sheet->getStyle('A3:C3')->getBorders()->getBottom()->setBorderStyle(Border::BORDER_THIN)->setColor($color);
// upper row
$expectations = [
// cell => Left/Right/Top/Bottom
'A1' => 'LT',
'B1' => 'T',
'C1' => 'RT',
'A2' => 'L',
'B2' => '',
'C2' => 'R',
'A3' => 'LB',
'B3' => 'B',
'C3' => 'RB',
];
$sides = [
'L' => 'Left',
'R' => 'Right',
'T' => 'Top',
'B' => 'Bottom',
];
foreach ($expectations as $cell => $borders) {
$bs = $sheet->getStyle($cell)->getBorders();
foreach ($sides as $sidekey => $side) {
$assertion = "setBorderStyle on a range of cells, $cell $side";
$func = "get$side";
$b = $bs->$func(); // boo
if (strpos($borders, $sidekey) === false) {
self::assertSame(Border::BORDER_NONE, $b->getBorderStyle(), $assertion);
} else {
self::assertSame(Border::BORDER_THIN, $b->getBorderStyle(), $assertion);
self::assertSame($argb, $b->getColor()->getARGB(), $assertion);
}
}
}
}
public function testBorderRangeDirectly()
{
// testcase for the underlying problem directly
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$style = $sheet->getStyle('A1:C1')->getBorders()->getTop()->setBorderStyle(Border::BORDER_THIN);
self::assertSame('A1:C1', $style->getSelectedCells(), 'getSelectedCells should not change after a style operation on a border range');
}
}

View File

@ -0,0 +1,26 @@
<?php
namespace PhpOffice\PhpSpreadsheetTests\Style;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PHPUnit\Framework\TestCase;
class BorderTest extends TestCase
{
public function testCase()
{
$spreadsheet = new Spreadsheet();
$borders = $spreadsheet->getActiveSheet()->getStyle('A1')->getBorders();
$allBorders = $borders->getAllBorders();
$bottom = $borders->getBottom();
$actual = $bottom->getBorderStyle();
self::assertSame(Border::BORDER_NONE, $actual, 'should default to none');
$allBorders->setBorderStyle(Border::BORDER_THIN);
$actual = $bottom->getBorderStyle();
self::assertSame(Border::BORDER_THIN, $actual, 'should have been set via allBorders');
}
}

View File

@ -0,0 +1,73 @@
<?php
namespace PhpOffice\PhpSpreadsheetTests\Style;
use PhpOffice\PhpSpreadsheet\Style\Color;
use PHPUnit\Framework\TestCase;
class ColorTest extends TestCase
{
/**
* @dataProvider providerColorGetRed
*
* @param mixed $expectedResult
*/
public function testGetRed($expectedResult, ...$args)
{
$result = Color::getRed(...$args);
self::assertEquals($expectedResult, $result);
}
public function providerColorGetRed()
{
return require 'data/Style/ColorGetRed.php';
}
/**
* @dataProvider providerColorGetGreen
*
* @param mixed $expectedResult
*/
public function testGetGreen($expectedResult, ...$args)
{
$result = Color::getGreen(...$args);
self::assertEquals($expectedResult, $result);
}
public function providerColorGetGreen()
{
return require 'data/Style/ColorGetGreen.php';
}
/**
* @dataProvider providerColorGetBlue
*
* @param mixed $expectedResult
*/
public function testGetBlue($expectedResult, ...$args)
{
$result = Color::getBlue(...$args);
self::assertEquals($expectedResult, $result);
}
public function providerColorGetBlue()
{
return require 'data/Style/ColorGetBlue.php';
}
/**
* @dataProvider providerColorChangeBrightness
*
* @param mixed $expectedResult
*/
public function testChangeBrightness($expectedResult, ...$args)
{
$result = Color::changeBrightness(...$args);
self::assertEquals($expectedResult, $result);
}
public function providerColorChangeBrightness()
{
return require 'data/Style/ColorChangeBrightness.php';
}
}

View File

@ -0,0 +1,48 @@
<?php
namespace PhpOffice\PhpSpreadsheetTests\Style;
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use PHPUnit\Framework\TestCase;
class NumberFormatTest extends TestCase
{
public function setUp()
{
StringHelper::setDecimalSeparator('.');
StringHelper::setThousandsSeparator(',');
}
/**
* @dataProvider providerNumberFormat
*
* @param mixed $expectedResult
*/
public function testFormatValueWithMask($expectedResult, ...$args)
{
$result = NumberFormat::toFormattedString(...$args);
self::assertEquals($expectedResult, $result);
}
public function providerNumberFormat()
{
return require 'data/Style/NumberFormat.php';
}
/**
* @dataProvider providerNumberFormatDates
*
* @param mixed $expectedResult
*/
public function testFormatValueWithMaskDate($expectedResult, ...$args)
{
$result = NumberFormat::toFormattedString(...$args);
self::assertEquals($expectedResult, $result);
}
public function providerNumberFormatDates()
{
return require 'data/Style/NumberFormatDates.php';
}
}