test will run sinc php 5.6

This commit is contained in:
uwetews
2016-11-11 23:03:46 +01:00
parent 9bfc85b045
commit b7f845f5a9

View File

@@ -2,166 +2,124 @@
//require_once '../../../../../vendor/autoload.php'; //require_once '../../../../../vendor/autoload.php';
class Base if (version_compare(phpversion(), '5.5.0', '>')) {
{
const TEMPLATE='034_parent.tpl';
public $id=null; class Base
{
const TEMPLATE = '034_parent.tpl';
public $id = null;
public function __construct($id) public function __construct($id)
{ {
$this->id=$id; $this->id = $id;
} }
public function getHTML() public function getHTML()
{ {
return static::class; return static::class;
} }
} }
class Child extends Base class Child extends Base
{ {
const TEMPLATE='034_child.tpl'; const TEMPLATE = '034_child.tpl';
public function getText() public function getText()
{ {
return $this->getHTML(); return $this->getHTML();
} }
} }
class BaseClone extends Base class BaseClone extends Base
{ {
} }
/*
/*
* @requires PHP 5.5 * @requires PHP 5.5
*/ */
class InheritanceTest extends PHPUnit_Framework_TestCase
{ class InheritanceTest extends PHPUnit_Framework_TestCase
{
protected $smarty; protected $smarty;
protected function setUp() protected function setUp()
{ {
chdir(dirname(__FILE__)); chdir(dirname(__FILE__));
$this->smarty=new Smarty(); $this->smarty = new Smarty();
$this->smarty->setTemplateDir('./templates'); $this->smarty->setTemplateDir('./templates');
$this->smarty->setCompileDir('./templates_c'); $this->smarty->setCompileDir('./templates_c');
$this->smarty->setCacheDir('./cache'); $this->smarty->setCacheDir('./cache');
$this->smarty->caching=false; $this->smarty->caching = false;
} }
/** /**
* @dataProvider providerInheritance * @dataProvider providerInheritance
* @requires PHP5.5
*/ */
public function testInheritance($elements, $assertions) public function testInheritance($elements, $assertions)
{ {
foreach ($elements as $nr=> $element) foreach ($elements as $nr => $element) {
{
$this->smarty->assign('e', $element); $this->smarty->assign('e', $element);
$this->assertSame($assertions[$nr], $this->smarty->fetch($element::TEMPLATE)); $this->assertSame($assertions[ $nr ], $this->smarty->fetch($element::TEMPLATE));
} }
} }
/** /**
* @dataProvider providerInheritance * @dataProvider providerInheritance
*/ */
public function testInheritanceCaching($elements, $assertions) public function testInheritanceCaching($elements, $assertions)
{ {
$this->smarty->caching = true; $this->smarty->caching = true;
foreach ($elements as $nr=> $element) foreach ($elements as $nr => $element) {
{
$this->smarty->assign('e', $element); $this->smarty->assign('e', $element);
$this->assertSame($assertions[$nr], $this->smarty->fetch($element::TEMPLATE)); $this->assertSame($assertions[ $nr ], $this->smarty->fetch($element::TEMPLATE));
} }
} }
/** /**
* @dataProvider providerInheritance * @dataProvider providerInheritance
*/ */
public function testInheritanceCaching1($elements, $assertions) public function testInheritanceCaching1($elements, $assertions)
{ {
$this->smarty->caching = true; $this->smarty->caching = true;
foreach ($elements as $nr=> $element) foreach ($elements as $nr => $element) {
{
$this->smarty->assign('e', $element); $this->smarty->assign('e', $element);
$stat = $this->smarty->isCached($element::TEMPLATE); $stat = $this->smarty->isCached($element::TEMPLATE);
$this->assertSame($assertions[$nr], $this->smarty->fetch($element::TEMPLATE)); $this->assertSame($assertions[ $nr ], $this->smarty->fetch($element::TEMPLATE));
$this->assertTrue($stat); $this->assertTrue($stat);
} }
} }
public function providerInheritance() public function providerInheritance()
{ {
return [ return [[//(#0) This test works as expected
[ [new Base(1), new Base(2), new BaseClone(3),], ['1 Base', '2 Base', '3 BaseClone',],],
//(#0) This test works as expected [//(#1) This test works as expected
[ [new Child(1), new BaseClone(2), //This output is right(!)
new Base(1), ], ['1 Child', '2 BaseClone',],], [//(#2) This test fails
new Base(2), [new Child(1), new Child(2), new BaseClone(3),],
new BaseClone(3), ['1 Child', '2 Child', '3 BaseClone',
], [ //Here the output is "2 Child"
'1 Base', ],], [//(#3) This test fails
'2 Base', [new Child(1), new BaseClone(2), new Child(3),],
'3 BaseClone', ['1 Child', '2 BaseClone', '3 Child',
], //Here the output is "2 Child"
], [ ],], [//(#4) This test fails
//(#1) This test works as expected [new Child(1), new Child(2), new BaseClone(3),
[ new Child(4),],
new Child(1), ['1 Child', '2 Child', '3 BaseClone',
new BaseClone(2), //This output is right(!) //Here the output is also "2 Child"
], [ '4 Child',],], [//(#5) This test fails
'1 Child', [new BaseClone(1), new Child(2),
'2 BaseClone', new Child(3), new BaseClone(4),],
], ['1 BaseClone',
], [ //This output is right(!)
//(#2) This test fails '2 Child', '3 Child',
[ '4 BaseClone',
new Child(1), //Here the output is "3 Child"
new Child(2), ],],];
new BaseClone(3), }
], [
'1 Child',
'2 Child',
'3 BaseClone', //Here the output is "2 Child"
],
], [
//(#3) This test fails
[
new Child(1),
new BaseClone(2),
new Child(3),
], [
'1 Child',
'2 BaseClone',
'3 Child', //Here the output is "2 Child"
],
], [
//(#4) This test fails
[
new Child(1),
new Child(2),
new BaseClone(3),
new Child(4),
], [
'1 Child',
'2 Child',
'3 BaseClone', //Here the output is also "2 Child"
'4 Child',
],
], [
//(#5) This test fails
[
new BaseClone(1),
new Child(2),
new Child(3),
new BaseClone(4),
], [
'1 BaseClone', //This output is right(!)
'2 Child',
'3 Child',
'4 BaseClone', //Here the output is "3 Child"
],
],
];
} }
} }