PHPWord/tests/PhpWordTests/StyleTest.php

108 lines
3.2 KiB
PHP

<?php
/**
* This file is part of PHPWord - A pure PHP library for reading and writing
* word processing documents.
*
* PHPWord is free software distributed under the terms of the GNU Lesser
* General Public License version 3 as published by the Free Software Foundation.
*
* For the full copyright and license information, please read the LICENSE
* file that was distributed with this source code. For the full list of
* contributors, visit https://github.com/PHPOffice/PHPWord/contributors.
*
* @see https://github.com/PHPOffice/PHPWord
*
* @license http://www.gnu.org/licenses/lgpl.txt LGPL version 3
*/
namespace PhpOffice\PhpWordTests;
use PhpOffice\PhpWord\SimpleType\Jc;
use PhpOffice\PhpWord\Style;
/**
* Test class for PhpOffice\PhpWord\Style.
*
* @coversDefaultClass \PhpOffice\PhpWord\Style
*
* @runTestsInSeparateProcesses
*/
class StyleTest extends \PHPUnit\Framework\TestCase
{
/**
* Add and get paragraph, font, link, title, and table styles.
*
* @covers ::addFontStyle
* @covers ::addLinkStyle
* @covers ::addNumberingStyle
* @covers ::addParagraphStyle
* @covers ::addTableStyle
* @covers ::addTitleStyle
* @covers ::countStyles
* @covers ::getStyle
* @covers ::getStyles
* @covers ::resetStyles
* @covers ::setDefaultParagraphStyle
*/
public function testStyles(): void
{
$paragraph = ['alignment' => Jc::CENTER];
$font = ['italic' => true, '_bold' => true];
$table = ['bgColor' => 'CCCCCC'];
$numbering = [
'type' => 'multilevel',
'levels' => [
[
'start' => 1,
'format' => 'decimal',
'restart' => 1,
'suffix' => 'space',
'text' => '%1.',
'alignment' => Jc::START,
],
],
];
$styles = [
'Paragraph' => 'Paragraph',
'Font' => 'Font',
'Link' => 'Font',
'Table' => 'Table',
'Heading_1' => 'Font',
'Normal' => 'Paragraph',
'Numbering' => 'Numbering',
];
Style::addParagraphStyle('Paragraph', $paragraph);
Style::addFontStyle('Font', $font);
Style::addLinkStyle('Link', $font);
Style::addNumberingStyle('Numbering', $numbering);
Style::addTitleStyle(1, $font);
Style::addTableStyle('Table', $table);
Style::setDefaultParagraphStyle($paragraph);
self::assertCount(count($styles), Style::getStyles());
foreach ($styles as $name => $style) {
self::assertInstanceOf("PhpOffice\\PhpWord\\Style\\{$style}", Style::getStyle($name));
}
self::assertNull(Style::getStyle('Unknown'));
Style::resetStyles();
self::assertCount(0, Style::getStyles());
}
/**
* Test default paragraph style.
*
* @covers ::setDefaultParagraphStyle
*/
public function testDefaultParagraphStyle(): void
{
$paragraph = ['alignment' => Jc::CENTER];
Style::setDefaultParagraphStyle($paragraph);
self::assertInstanceOf('PhpOffice\\PhpWord\\Style\\Paragraph', Style::getStyle('Normal'));
}
}