Add test & update documentation

This commit is contained in:
troosan 2017-07-01 22:51:53 +02:00
parent d5dbfb98b0
commit 0f649f3f37
3 changed files with 44 additions and 24 deletions

View File

@ -77,6 +77,7 @@ See ``\PhpOffice\PhpWord\SimpleType\Jc`` class for the details.
- ``spaceAfter``. Space after paragraph. - ``spaceAfter``. Space after paragraph.
- ``tabs``. Set of custom tab stops. - ``tabs``. Set of custom tab stops.
- ``widowControl``. Allow first/last line to display on a separate page, *true* or *false*. - ``widowControl``. Allow first/last line to display on a separate page, *true* or *false*.
- ``contextualSpacing``. Ignore Spacing Above and Below When Using Identical Styles, *true* or *false*.
.. _table-style: .. _table-style:

View File

@ -159,11 +159,11 @@ class Paragraph extends Border
private $shading; private $shading;
/** /**
* Do not add an interval between paragraphs of the same style * Ignore Spacing Above and Below When Using Identical Styles
* *
* @var bool * @var bool
*/ */
private $contextualSpacing = true; private $contextualSpacing = false;
/** /**
* Set Style value * Set Style value
@ -215,7 +215,7 @@ class Paragraph extends Border
), ),
'tabs' => $this->getTabs(), 'tabs' => $this->getTabs(),
'shading' => $this->getShading(), 'shading' => $this->getShading(),
'contextualSpacing' => $this->getContextualSpacing(), 'contextualSpacing' => $this->hasContextualSpacing(),
); );
return $styles; return $styles;
@ -741,15 +741,20 @@ class Paragraph extends Border
} }
/** /**
* Get contextualSpacing
*
* @return bool * @return bool
*/ */
public function getContextualSpacing() public function hasContextualSpacing()
{ {
return $this->contextualSpacing; return $this->contextualSpacing;
} }
/** /**
* Set contextualSpacing
*
* @param bool $contextualSpacing * @param bool $contextualSpacing
* @return self
*/ */
public function setContextualSpacing($contextualSpacing) public function setContextualSpacing($contextualSpacing)
{ {

View File

@ -43,13 +43,14 @@ class ParagraphTest extends \PHPUnit_Framework_TestCase
$object = new Paragraph(); $object = new Paragraph();
$attributes = array( $attributes = array(
'widowControl' => true, 'widowControl' => true,
'keepNext' => false, 'keepNext' => false,
'keepLines' => false, 'keepLines' => false,
'pageBreakBefore' => false, 'pageBreakBefore' => false,
'contextualSpacing' => false,
); );
foreach ($attributes as $key => $default) { foreach ($attributes as $key => $default) {
$get = "get{$key}"; $get = $this->findGetter($key, $default, $object);
$object->setStyleValue($key, null); $object->setStyleValue($key, null);
$this->assertEquals($default, $object->$get()); $this->assertEquals($default, $object->$get());
$object->setStyleValue($key, ''); $object->setStyleValue($key, '');
@ -65,22 +66,23 @@ class ParagraphTest extends \PHPUnit_Framework_TestCase
$object = new Paragraph(); $object = new Paragraph();
$attributes = array( $attributes = array(
'spaceAfter' => 240, 'spaceAfter' => 240,
'spaceBefore' => 240, 'spaceBefore' => 240,
'indent' => 1, 'indent' => 1,
'hanging' => 1, 'hanging' => 1,
'spacing' => 120, 'spacing' => 120,
'basedOn' => 'Normal', 'basedOn' => 'Normal',
'next' => 'Normal', 'next' => 'Normal',
'numStyle' => 'numStyle', 'numStyle' => 'numStyle',
'numLevel' => 1, 'numLevel' => 1,
'widowControl' => false, 'widowControl' => false,
'keepNext' => true, 'keepNext' => true,
'keepLines' => true, 'keepLines' => true,
'pageBreakBefore' => true, 'pageBreakBefore' => true,
'contextualSpacing' => true,
); );
foreach ($attributes as $key => $value) { foreach ($attributes as $key => $value) {
$get = "get{$key}"; $get = $this->findGetter($key, $value, $object);
$object->setStyleValue("$key", $value); $object->setStyleValue("$key", $value);
if ('indent' == $key || 'hanging' == $key) { if ('indent' == $key || 'hanging' == $key) {
$value = $value * 720; $value = $value * 720;
@ -91,6 +93,18 @@ class ParagraphTest extends \PHPUnit_Framework_TestCase
} }
} }
private function findGetter($key, $value, $object)
{
if (is_bool($value)) {
if (method_exists($object, "is{$key}")) {
return "is{$key}";
} else if (method_exists($object, "has{$key}")) {
return "has{$key}";
}
}
return "get{$key}";
}
/** /**
* Test get null style value * Test get null style value
*/ */
@ -100,7 +114,7 @@ class ParagraphTest extends \PHPUnit_Framework_TestCase
$attributes = array('spacing', 'indent', 'hanging', 'spaceBefore', 'spaceAfter'); $attributes = array('spacing', 'indent', 'hanging', 'spaceBefore', 'spaceAfter');
foreach ($attributes as $key) { foreach ($attributes as $key) {
$get = "get{$key}"; $get = $this->findGetter($key, null, $object);
$this->assertNull($object->$get()); $this->assertNull($object->$get());
} }
} }