Merge pull request #95 from gabrielbull/develop

Removed fake namespacing from tests and reformatted code to PSR-2 coding standards
This commit is contained in:
Progi1984 2014-03-09 19:34:16 +01:00
commit 88836672c3
18 changed files with 320 additions and 246 deletions

View File

@ -0,0 +1,15 @@
<?php
namespace PHPWord\Exceptions;
use InvalidArgumentException;
/**
* InvalidStyleException
*
* Exception used for when a style value is invalid
*
* @package PHPWord
*/
class InvalidStyleException extends InvalidArgumentException
{
}

View File

@ -48,7 +48,7 @@ class PHPWord_Section_Text
/**
* Paragraph style
*
* @var PHPWord_Style_Font
* @var \PHPWord_Style_Paragraph
*/
private $_styleParagraph;
@ -116,7 +116,9 @@ class PHPWord_Section_Text
/**
* Set Paragraph style
*
* @return PHPWord_Style_Paragraph
* @param array|\PHPWord_Style_Paragraph $styleParagraph
* @return \PHPWord_Style_Paragraph
* @throws \Exception
*/
public function setParagraphStyle($styleParagraph)
{
@ -124,14 +126,19 @@ class PHPWord_Section_Text
$this->_styleParagraph = new PHPWord_Style_Paragraph();
foreach ($styleParagraph as $key => $value) {
if (substr($key, 0, 1) != '_') {
if ($key === 'line-height') {
null;
} elseif (substr($key, 0, 1) != '_') {
$key = '_' . $key;
}
$this->_styleParagraph->setStyleValue($key, $value);
}
} else {
} elseif ($styleParagraph instanceof PHPWord_Style_Paragraph) {
$this->_styleParagraph = $styleParagraph;
} else {
throw new Exception('Expected array or PHPWord_Style_Paragraph');
}
return $this->_styleParagraph;
}
/**

View File

@ -30,7 +30,6 @@
*/
class PHPWord_Style_Font
{
const UNDERLINE_NONE = 'none';
const UNDERLINE_DASH = 'dash';
const UNDERLINE_DASHHEAVY = 'dashHeavy';

View File

@ -25,11 +25,21 @@
* @version 0.7.0
*/
use PHPWord\Exceptions\InvalidStyleException;
/**
* PHPWord_Style_Paragraph
*/
class PHPWord_Style_Paragraph
{
const LINE_HEIGHT = 240;
/*
* Text line height
*
* @var int
*/
private $lineHeight;
/**
* Paragraph alignment
@ -85,7 +95,7 @@ class PHPWord_Style_Paragraph
*
* @var string
*/
private $_basedOn;
private $_basedOn = 'Normal';
/**
* Style for next paragraph
@ -99,48 +109,28 @@ class PHPWord_Style_Paragraph
*
* @var bool
*/
private $_widowControl;
private $_widowControl = true;
/**
* Keep paragraph with next paragraph
*
* @var bool
*/
private $_keepNext;
private $_keepNext = false;
/**
* Keep all lines on one page
*
* @var bool
*/
private $_keepLines;
private $_keepLines = false;
/**
* Start paragraph on next page
*
* @var bool
*/
private $_pageBreakBefore;
/**
* New Paragraph Style
*/
public function __construct()
{
$this->_align = null;
$this->_spaceBefore = null;
$this->_spaceAfter = null;
$this->_spacing = null;
$this->_tabs = null;
$this->_indent = null;
$this->_hanging = null;
$this->_basedOn = 'Normal';
$this->_next = null;
$this->_widowControl = true;
$this->_keepNext = false;
$this->_keepLines = false;
$this->_pageBreakBefore = false;
}
private $_pageBreakBefore = false;
/**
* Set Style value
@ -152,10 +142,13 @@ class PHPWord_Style_Paragraph
{
if ($key == '_indent' || $key == '_hanging') {
$value = $value * 720;
}
if ($key == '_spacing') {
} elseif ($key == '_spacing') {
$value += 240; // because line height of 1 matches 240 twips
} elseif ($key === 'line-height') {
$this->setLineHeight($value);
return;
}
$this->$key = $value;
$method = 'set' . substr($key, 1);
if (method_exists($this, $method)) {
$this->$method($value);
@ -466,4 +459,33 @@ class PHPWord_Style_Paragraph
return $this;
}
/**
* Set the line height
*
* @param int|float|string $lineHeight
* @return $this
* @throws \PHPWord\Exceptions\InvalidStyleException
*/
public function setLineHeight($lineHeight)
{
if (is_string($lineHeight)) {
$lineHeight = floatval(preg_replace('/[^0-9\.\,]/', '', $lineHeight));
}
if ((!is_integer($lineHeight) && !is_float($lineHeight)) || !$lineHeight) {
throw new InvalidStyleException('Line height must be a valid number');
}
$this->lineHeight = $lineHeight;
$this->setSpacing($lineHeight * self::LINE_HEIGHT);
return $this;
}
/**
* @return int
*/
public function getLineHeight()
{
return $this->lineHeight;
}
}

View File

@ -5,22 +5,24 @@ use PHPUnit_Framework_TestCase;
use PHPWord;
use PHPWord_IOFactory;
use PHPWord_Writer_Word2007;
use Exception;
/**
* Class PHPWord_IOFactoryTest
* Class IOFactoryTest
* @package PHPWord\Tests
* @runTestsInSeparateProcesses
*/
class PHPWord_IOFactoryTest extends \PHPUnit_Framework_TestCase {
class IOFactoryTest extends \PHPUnit_Framework_TestCase
{
public function testGetSearchLocations()
{
$this->assertAttributeEquals(PHPWord_IOFactory::getSearchLocations(), '_searchLocations','PHPWord_IOFactory');
$this->assertAttributeEquals(PHPWord_IOFactory::getSearchLocations(), '_searchLocations', 'PHPWord_IOFactory');
}
public function testSetSearchLocationsWithArray()
{
PHPWord_IOFactory::setSearchLocations(array());
$this->assertAttributeEquals(array(), '_searchLocations','PHPWord_IOFactory');
$this->assertAttributeEquals(array(), '_searchLocations', 'PHPWord_IOFactory');
}
/**
@ -36,24 +38,25 @@ class PHPWord_IOFactoryTest extends \PHPUnit_Framework_TestCase {
{
PHPWord_IOFactory::setSearchLocations(array());
PHPWord_IOFactory::addSearchLocation('type', 'location', 'classname');
$this->assertAttributeEquals(array(array('type' => 'type', 'path' => 'location', 'class' => 'classname')), '_searchLocations','PHPWord_IOFactory');
$this->assertAttributeEquals(array(array('type' => 'type', 'path' => 'location', 'class' => 'classname')), '_searchLocations', 'PHPWord_IOFactory');
}
/**
* @expectedException Exception
* @expectedExceptionMessage No IWriter found for type
*/
public function testCreateWriterException(){
public function testCreateWriterException()
{
$oPHPWord = new PHPWord();
PHPWord_IOFactory::setSearchLocations(array());
PHPWord_IOFactory::createWriter($oPHPWord);
}
public function testCreateWriter(){
public function testCreateWriter()
{
$oPHPWord = new PHPWord();
$this->assertEquals(PHPWord_IOFactory::createWriter($oPHPWord, 'Word2007'), new PHPWord_Writer_Word2007($oPHPWord));
}
}

View File

@ -4,8 +4,8 @@ namespace PHPWord\Tests;
use PHPUnit_Framework_TestCase;
use PHPWord_Media;
class PHPWord_MediaTest extends \PHPUnit_Framework_TestCase {
class MediaTest extends \PHPUnit_Framework_TestCase
{
public function testGetSectionMediaElementsWithNull()
{
$this->assertEquals(PHPWord_Media::getSectionMediaElements(), array());
@ -18,12 +18,11 @@ class PHPWord_MediaTest extends \PHPUnit_Framework_TestCase {
public function testGetHeaderMediaElements()
{
$this->assertAttributeEquals(PHPWord_Media::getHeaderMediaElements(), '_headerMedia','PHPWord_Media');
$this->assertAttributeEquals(PHPWord_Media::getHeaderMediaElements(), '_headerMedia', 'PHPWord_Media');
}
public function testGetFooterMediaElements()
{
$this->assertAttributeEquals(PHPWord_Media::getFooterMediaElements(), '_footerMedia','PHPWord_Media');
$this->assertAttributeEquals(PHPWord_Media::getFooterMediaElements(), '_footerMedia', 'PHPWord_Media');
}
}

View File

@ -4,7 +4,8 @@ namespace PHPWord\Tests;
use PHPUnit_Framework_TestCase;
use PHPWord_Section;
class PHPWord_SectionTest extends \PHPUnit_Framework_TestCase {
class SectionTest extends \PHPUnit_Framework_TestCase
{
public function testGetSettings()
{
$oSection = new PHPWord_Section(0);
@ -14,25 +15,24 @@ class PHPWord_SectionTest extends \PHPUnit_Framework_TestCase {
public function testGetElementss()
{
$oSection = new PHPWord_Section(0);
$this->assertAttributeEquals($oSection->getElements(), '_elementCollection',new PHPWord_Section(0));
$this->assertAttributeEquals($oSection->getElements(), '_elementCollection', new PHPWord_Section(0));
}
public function testGetFooter()
{
$oSection = new PHPWord_Section(0);
$this->assertAttributeEquals($oSection->getFooter(), '_footer',new PHPWord_Section(0));
$this->assertAttributeEquals($oSection->getFooter(), '_footer', new PHPWord_Section(0));
}
public function testGetHeaders()
{
$oSection = new PHPWord_Section(0);
$this->assertAttributeEquals($oSection->getHeaders(), '_headers',new PHPWord_Section(0));
$this->assertAttributeEquals($oSection->getHeaders(), '_headers', new PHPWord_Section(0));
}
public function testGetElements()
{
$oSection = new PHPWord_Section(0);
$this->assertAttributeEquals($oSection->getElements(), '_elementCollection',new PHPWord_Section(0));
$this->assertAttributeEquals($oSection->getElements(), '_elementCollection', new PHPWord_Section(0));
}
}

View File

@ -1,19 +1,18 @@
<?php
namespace PHPWord\Tests;
namespace PHPWord\Tests\Shared;
use PHPUnit_Framework_TestCase;
use PHPWord;
use PHPWord_Shared_Font;
/**
* Class PHPWord_Writer_Shared_FontTest
* Class FontTest
*
* @package PHPWord\Tests
* @runTestsInSeparateProcesses
*/
class PHPWord_Writer_Shared_FontTest extends \PHPUnit_Framework_TestCase
class FontTest extends \PHPUnit_Framework_TestCase
{
/**
* Test various conversions
*/
@ -44,5 +43,4 @@ class PHPWord_Writer_Shared_FontTest extends \PHPUnit_Framework_TestCase
$result = PHPWord_Shared_Font::pointSizeToTwips($original);
$this->assertEquals($original * 20, $result);
}
}

View File

@ -1,18 +1,17 @@
<?php
namespace PHPWord\Tests;
namespace PHPWord\Tests\Style;
use PHPUnit_Framework_TestCase;
use PHPWord_Style_Cell;
/**
* Class PHPWord_Style_CellTest
* Class CellTest
*
* @package PHPWord\Tests
* @runTestsInSeparateProcesses
*/
class PHPWord_Style_CellTest extends \PHPUnit_Framework_TestCase
class CellTest extends \PHPUnit_Framework_TestCase
{
/**
* Test setting style with normal value
*/
@ -76,5 +75,4 @@ class PHPWord_Style_CellTest extends \PHPUnit_Framework_TestCase
$object->setStyleValue('_borderSize', $value);
$this->assertEquals($expected, $object->getBorderSize());
}
}

View File

@ -1,19 +1,18 @@
<?php
namespace PHPWord\Tests;
namespace PHPWord\Tests\Style;
use PHPUnit_Framework_TestCase;
use PHPWord;
use PHPWord_Style_Font;
/**
* Class PHPWord_Style_FontTest
* Class FontTest
*
* @package PHPWord\Tests
* @runTestsInSeparateProcesses
*/
class PHPWord_Style_FontTest extends \PHPUnit_Framework_TestCase
class FontTest extends \PHPUnit_Framework_TestCase
{
/**
* Test initiation for style type and paragraph style
*/
@ -78,5 +77,4 @@ class PHPWord_Style_FontTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($value, $object->$get());
}
}
}

View File

@ -1,18 +1,24 @@
<?php
namespace PHPWord\Tests;
namespace PHPWord\Tests\Style;
use PHPUnit_Framework_TestCase;
use PHPWord;
use PHPWord_Style_Paragraph;
use PHPWord_Style_Tab;
use PHPWord\Tests\TestHelperDOCX;
/**
* Class PHPWord_Style_ParagraphTest
* Class ParagraphTest
*
* @package PHPWord\Tests
* @runTestsInSeparateProcesses
*/
class PHPWord_Style_ParagraphTest extends \PHPUnit_Framework_TestCase
class ParagraphTest extends \PHPUnit_Framework_TestCase
{
public function tearDown()
{
TestHelperDOCX::clear();
}
/**
* Test setting style values with null or empty value
@ -87,4 +93,34 @@ class PHPWord_Style_ParagraphTest extends \PHPUnit_Framework_TestCase
$this->assertInstanceOf('PHPWord_Style_Tabs', $object->getTabs());
}
public function testLineHeight()
{
$PHPWord = new PHPWord();
$section = $PHPWord->createSection();
// Test style array
$text = $section->addText('This is a test', array(), array(
'line-height' => 2.0
));
$doc = TestHelperDOCX::getDocument($PHPWord);
$element = $doc->getElement('/w:document/w:body/w:p/w:pPr/w:spacing');
$lineHeight = $element->getAttribute('w:line');
$lineRule = $element->getAttribute('w:lineRule');
$this->assertEquals(480, $lineHeight);
$this->assertEquals('auto', $lineRule);
// Test setter
$text->getParagraphStyle()->setLineHeight(3.0);
$doc = TestHelperDOCX::getDocument($PHPWord);
$element = $doc->getElement('/w:document/w:body/w:p/w:pPr/w:spacing');
$lineHeight = $element->getAttribute('w:line');
$lineRule = $element->getAttribute('w:lineRule');
$this->assertEquals(720, $lineHeight);
$this->assertEquals('auto', $lineRule);
}
}

View File

@ -6,7 +6,7 @@ use PHPWord_Template;
/**
* @coversDefaultClass PHPWord_Template
*/
class PHPWord_TemplateTest extends \PHPUnit_Framework_TestCase
class TemplateTest extends \PHPUnit_Framework_TestCase
{
/**
* @covers ::applyXslStyleSheet

View File

@ -1,17 +1,17 @@
<?php
namespace PHPWord\Tests;
namespace PHPWord\Tests\Writer\Word2007;
use PHPUnit_Framework_TestCase;
use PHPWord;
use PHPWord_Writer_Word2007;
use PHPWord_Writer_Word2007_Base;
use PHPWord\Tests\TestHelperDOCX;
/**
* Class PHPWord_Writer_Word2007_BaseTest
* Class BaseTest
* @package PHPWord\Tests
* @runTestsInSeparateProcesses
*/
class PHPWord_Writer_Word2007_BaseTest extends \PHPUnit_Framework_TestCase {
class BaseTest extends \PHPUnit_Framework_TestCase
{
/**
* Executed before each method of the class
*/
@ -108,5 +108,4 @@ class PHPWord_Writer_Word2007_BaseTest extends \PHPUnit_Framework_TestCase {
$this->assertEquals($expected, $element->getAttribute('w:val'));
}
}
}

View File

@ -1,17 +1,19 @@
<?php
namespace PHPWord\Tests;
namespace PHPWord\Tests\Writer\Word2007;
use PHPUnit_Framework_TestCase;
use PHPWord;
use PHPWord_Writer_Word2007;
use PHPWord_Writer_Word2007_Document;
use PHPWord\Tests\TestHelperDOCX;
/**
* Class PHPWord_Writer_Word2007_DocumentTest
* Class DocumentTest
* @package PHPWord\Tests
* @runTestsInSeparateProcesses
*/
class PHPWord_Writer_Word2007_DocumentTest extends \PHPUnit_Framework_TestCase {
class DocumentTest extends \PHPUnit_Framework_TestCase
{
/**
* Executed before each method of the class
*/
@ -32,4 +34,3 @@ class PHPWord_Writer_Word2007_DocumentTest extends \PHPUnit_Framework_TestCase {
$this->assertEquals(2, $element->getAttribute('w:start'));
}
}

View File

@ -1,16 +1,16 @@
<?php
namespace PHPWord\Tests;
namespace PHPWord\Tests\Writer\Word2007;
use PHPUnit_Framework_TestCase;
use PHPWord;
use PHPWord_Writer_Word2007_Styles;
use PHPWord\Tests\TestHelperDOCX;
/**
* Class PHPWord_Writer_Word2007_StylesTest
* @package PHPWord\Tests
* @runTestsInSeparateProcesses
*/
class PHPWord_Writer_Word2007_StylesTest extends \PHPUnit_Framework_TestCase
class StylesTest extends \PHPUnit_Framework_TestCase
{
/**
* Executed before each method of the class
@ -51,5 +51,4 @@ class PHPWord_Writer_Word2007_StylesTest extends \PHPUnit_Framework_TestCase
$element = $doc->getElement($path, $file);
$this->assertEquals('Normal', $element->getAttribute('w:val'));
}
}

View File

@ -25,7 +25,7 @@ class TestHelperDOCX
$zip = new \ZipArchive;
$res = $zip->open(self::$file);
if ($res === true) {
$zip->extractTo(sys_get_temp_dir().'/PHPWord_Unit_Test/');
$zip->extractTo(sys_get_temp_dir() . '/PHPWord_Unit_Test/');
$zip->close();
}

View File

@ -3,7 +3,7 @@
date_default_timezone_set('UTC');
// Constantes
if(!defined('PHPWORD_TESTS_DIR_ROOT')){
if (!defined('PHPWORD_TESTS_DIR_ROOT')) {
define('PHPWORD_TESTS_DIR_ROOT', __DIR__);
}

View File

@ -29,7 +29,7 @@ Changes in branch for release 0.7.1 :
- Bugfix: (Progi1984) GH-89 - Example in README.md is broken
- Feature: (RomanSyroeshko) GH-56 GH-57 - Template : Permit to save a template generated as a file (PHPWord_Template::saveAs())
- Feature: (gabrielbull) - Word2007 : Support sections page numbering
- Feature: (gabrielbull) - Word2007 : Added support for line height
- Feature: (gabrielbull) - Word2007 : Added line height methods to mirror the line height settings in Word in the paragraph styling
- Feature: (JillElaine) GH-5 - Word2007 : Added support for page header & page footer height
- Feature: (bskrtich) GH-6 GH-66 GH-84 - General : Add ability to manage line breaks after image insertion
- Feature: (RomanSyroeshko) GH-52 GH-53 GH-85 - Template : Ability to limit number of replacements performed by setValue() method of Template class