Skip to content

Commit 25d3bb4

Browse files
committed
solid-octo-chainsaw
1 parent 3f0aa79 commit 25d3bb4

27 files changed

+201
-216
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
/**
3+
*
4+
* @filesource HTML5TestBase.php
5+
* @created 04.03.2016
6+
* @package chillerlan\BBCodeTest\normal\Modules\HTML5
7+
* @author Smiley <smiley@chillerlan.net>
8+
* @copyright 2015 Smiley
9+
* @license MIT
10+
*/
11+
12+
namespace chillerlan\BBCodeTest\Includes\Modules;
13+
14+
use chillerlan\bbcode\Modules\Html5\Html5BaseModule;
15+
16+
/**
17+
* Class HTML5TestBase
18+
*/
19+
class HTML5TestBase extends ModuleTestBase{
20+
21+
protected $baseModule = Html5BaseModule::class;
22+
23+
}

tests/normal/Modules/Markdown/MarkdownTestBase.php renamed to tests/Includes/Modules/MarkdownTestBase.php

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,15 @@
99
* @license MIT
1010
*/
1111

12-
namespace chillerlan\BBCodeTest\normal\Modules\Markdown;
12+
namespace chillerlan\BBCodeTest\Includes\Modules;
1313

1414
use chillerlan\bbcode\Modules\Markdown\MarkdownBaseModule;
15-
use chillerlan\bbcode\Parser;
16-
use chillerlan\bbcode\ParserOptions;
17-
use chillerlan\BBCodeTest\normal\Modules\ModuleTestBase;
1815

1916
/**
2017
* Class MarkdownTestBase
2118
*/
2219
class MarkdownTestBase extends ModuleTestBase{
2320

24-
protected function setUp(){
25-
$options = new ParserOptions;
26-
$options->baseModuleInterface = MarkdownBaseModule::class ;
27-
$options->allow_all = true;
28-
$this->parser = new Parser($options);
29-
}
21+
protected $baseModule = MarkdownBaseModule::class;
3022

3123
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
/**
3+
*
4+
* @filesource ModuleTestBase.php
5+
* @created 04.03.2016
6+
* @package chillerlan\BBCodeTest\normal\Modules
7+
* @author Smiley <smiley@chillerlan.net>
8+
* @copyright 2015 Smiley
9+
* @license MIT
10+
*/
11+
12+
namespace chillerlan\BBCodeTest\Includes\Modules;
13+
14+
use chillerlan\bbcode\Parser;
15+
use chillerlan\bbcode\ParserOptions;
16+
17+
class ModuleTestBase extends \PHPUnit_Framework_TestCase{
18+
19+
/**
20+
* @todo TRAVIS REMINDER!
21+
* @link https://docs.travis-ci.com/user/encrypting-files/
22+
*/
23+
const DOTENV = '.env_example';
24+
const TESTDIR = __DIR__.'/../../';
25+
26+
protected $baseModule;
27+
/**
28+
* @var \chillerlan\bbcode\Parser
29+
*/
30+
protected $parser;
31+
32+
protected function setUp(){
33+
34+
$options = new ParserOptions;
35+
$options->ca_info = self::TESTDIR.'test-cacert.pem';
36+
$options->baseModuleInterface = $this->baseModule;
37+
$options->allow_all = true;
38+
39+
$this->parser = new Parser($options);
40+
}
41+
42+
public function emptyTagDataProvider($tag){
43+
$this->setUp();
44+
45+
return array_map(function($v){
46+
return [$v];
47+
}, array_keys($this->parser->getTagmap()));
48+
}
49+
50+
}

tests/critical/Modules/HTML5ModuleTestCritical.php

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,8 @@
1212
namespace chillerlan\BBCodeTest\critical\Modules;
1313

1414
use chillerlan\bbcode\Modules\Html5\Code;
15-
use chillerlan\bbcode\Modules\Html5\Containers;
16-
use chillerlan\bbcode\Modules\Html5\Html5BaseModule;
17-
use chillerlan\bbcode\Modules\Html5\Singletags;
18-
use chillerlan\bbcode\Parser;
1915
use chillerlan\bbcode\ParserOptions;
16+
use chillerlan\BBCodeTest\Includes\Modules\HTML5TestBase;
2017

2118
/**
2219
* Class HTML5ModuleTestCritical
@@ -28,18 +25,7 @@
2825
* @link https://github.com/travis-ci/travis-ci/issues/5323
2926
* @link https://github.com/travis-ci/travis-ci/issues/5332
3027
*/
31-
class HTML5ModuleTestCritical extends \PHPUnit_Framework_TestCase{
32-
33-
/**
34-
* @var \chillerlan\bbcode\Parser
35-
*/
36-
protected $parser;
37-
38-
protected function setUp(){
39-
$options = new ParserOptions;
40-
$options->allow_all = true;
41-
$this->parser = new Parser($options);
42-
}
28+
class HTML5ModuleTestCritical extends HTML5TestBase{
4329

4430
public function bbcodeDataProvider(){
4531
return [
@@ -99,7 +85,7 @@ public function testNesting($limit, $resultfile){
9985

10086
public function codeSampleDataProvider(){
10187
$this->setUp();
102-
88+
10389
return array_map(function($v){
10490
return [$v];
10591
}, array_keys($this->parser->getTagmap(), Code::class));

tests/critical/Modules/MarkdownModuleTestCritical.php

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,30 +12,16 @@
1212
namespace chillerlan\BBCodeTest\critical\Modules;
1313

1414
use chillerlan\bbcode\Modules\Markdown\Code;
15-
use chillerlan\bbcode\Modules\Markdown\MarkdownBaseModule;
16-
use chillerlan\bbcode\Parser;
17-
use chillerlan\bbcode\ParserOptions;
15+
use chillerlan\BBCodeTest\Includes\Modules\MarkdownTestBase;
1816

19-
class MarkdownModuleTestCritical extends \PHPUnit_Framework_TestCase{
17+
class MarkdownModuleTestCritical extends MarkdownTestBase{
2018

21-
/**
22-
* @var \chillerlan\bbcode\Parser
23-
*/
24-
protected $parser;
25-
26-
protected function setUp(){
27-
$options = new ParserOptions;
28-
$options->baseModuleInterface = MarkdownBaseModule::class ;
29-
$options->allow_all = true;
30-
$this->parser = new Parser($options);
31-
}
32-
3319
public function codeSampleDataProvider(){
3420
$this->setUp();
35-
3621
return array_map(function($v){
3722
return [$v];
3823
}, array_keys($this->parser->getTagmap(), Code::class));
24+
3925
}
4026

4127
/**

tests/normal/Modules/BaseModuleTest.php

Lines changed: 38 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
namespace chillerlan\BBCodeTest\normal\Modules;
1313

14-
use chillerlan\bbcode\BBTemp;
1514
use chillerlan\bbcode\Modules\BaseModuleInfo;
1615
use chillerlan\bbcode\Modules\BaseModuleInterface;
1716
use chillerlan\bbcode\Modules\DB\DBBaseModule;
@@ -21,45 +20,32 @@
2120
use chillerlan\bbcode\Modules\Mediawiki\MediawikiBaseModule;
2221
use chillerlan\bbcode\Modules\ModuleInterface;
2322
use chillerlan\bbcode\Modules\Text\TextBaseModule;
24-
use ReflectionClass;
23+
use chillerlan\bbcode\Parser;
24+
use chillerlan\bbcode\ParserOptions;
2525

2626
class BaseModuleTest extends \PHPUnit_Framework_TestCase{
2727

28-
/**
29-
* @var \chillerlan\bbcode\BBTemp
30-
*/
31-
protected $BBTemp;
32-
3328
/**
3429
* @var \chillerlan\bbcode\Modules\BaseModuleInterface
3530
*/
3631
protected $baseModule;
3732

38-
/**
39-
* @var \chillerlan\bbcode\Modules\BaseModuleInfo
40-
*/
41-
protected $moduleInfo;
42-
4333
/**
4434
* Holds the current encoder module
4535
*
4636
* @var \chillerlan\bbcode\Modules\ModuleInterface
4737
*/
4838
protected $module;
4939

50-
protected function setUp(){
51-
$this->BBTemp = new BBTemp;
52-
}
53-
5440
public function baseModuleDataProvider(){
5541
// @todo
5642
return [
57-
[DBBaseModule::class, ['', 'test']],
58-
[Html5BaseModule::class, ['__', '__test__']],
59-
[MarkupBaseModule::class, ['', 'test']],
60-
[MarkdownBaseModule::class, ['', 'test']],
61-
[MediawikiBaseModule::class, ['', 'test']],
62-
[TextBaseModule::class, ['', 'test']],
43+
[DBBaseModule::class, ],
44+
[Html5BaseModule::class, ],
45+
[MarkupBaseModule::class, ],
46+
[MarkdownBaseModule::class, ],
47+
[MediawikiBaseModule::class, ],
48+
[TextBaseModule::class, ],
6349
];
6450

6551
}
@@ -68,46 +54,47 @@ public function baseModuleDataProvider(){
6854
* @dataProvider baseModuleDataProvider
6955
*/
7056
public function testBaseModules($base_module){
71-
$baseModuleReflection = new ReflectionClass($base_module);
72-
$this->assertEquals(BaseModuleInterface::class, $baseModuleReflection->getInterfaceNames()[0]);
73-
74-
$this->baseModule = $baseModuleReflection->newInstance();
75-
$this->moduleInfo = $baseModuleReflection->getMethod('getInfo')->invoke($this->baseModule);
76-
$this->assertInstanceOf(BaseModuleInfo::class, $this->moduleInfo);
77-
$moduleInfoReflection = new ReflectionClass($this->moduleInfo);
78-
79-
// mimicking Parser::setOptions() here
80-
$tagmap = [];
81-
foreach($moduleInfoReflection->getProperty('modules')->getValue($this->moduleInfo) as $module){
82-
$moduleReflection = new ReflectionClass($module);
83-
$this->assertEquals(ModuleInterface::class, $moduleReflection->getInterfaceNames()[1]);
84-
85-
$this->module = $moduleReflection->newInstanceArgs([$this->BBTemp]);
86-
$tagmapArray = $moduleReflection->getMethod('getTags')->invoke($this->module);
87-
88-
foreach($tagmapArray->tags as $tag){
89-
$tagmap[$tag] = $module;
90-
}
91-
}
92-
# var_dump($tagmap);
57+
$this->baseModule = new $base_module;
58+
$this->assertInstanceOf(BaseModuleInterface::class, $this->baseModule);
59+
$this->assertInstanceOf(BaseModuleInfo::class, $this->baseModule->getInfo());
60+
// wrap coverage
61+
$this->assertEquals('__test__', $this->baseModule->wrap('test', '__'));
9362
}
9463

9564
/**
9665
* @dataProvider baseModuleDataProvider
66+
* @expectedException \chillerlan\BBCode\BBCodeException
67+
* @expectedExceptionMessage tag [] not supported.
9768
*/
98-
public function testWrapCoverage($base_module, $data){
99-
$this->baseModule = new $base_module;
100-
$this->assertEquals($data[1], $this->baseModule->wrap('test', $data[0]));
69+
public function testCheckTagException($base_module){
70+
$this->baseModule = new $base_module;
71+
$this->baseModule->checkTag();
10172
}
10273

10374
/**
10475
* @dataProvider baseModuleDataProvider
105-
* @expectedException \chillerlan\BBCode\BBCodeException
106-
* @expectedExceptionMessage tag [] not supported.
10776
*/
108-
public function testCheckTagException($base_module){
77+
public function testMimickParserSetoptions($base_module){
78+
79+
$options = new ParserOptions;
80+
$options->ca_info = __DIR__.'/../../test-cacert.pem';
81+
$options->baseModuleInterface = $base_module;
82+
$options->allow_all = true;
83+
84+
$tags = (new Parser($options))->getAllowed();
85+
86+
// mimicking Parser::setOptions() here
10987
$this->baseModule = new $base_module;
110-
$this->baseModule->checkTag();
88+
89+
foreach($this->baseModule->getInfo()->modules as $module){
90+
$this->module = new $module;
91+
$this->assertInstanceOf(ModuleInterface::class, $this->module);
92+
93+
foreach($this->module->getTags()->tags as $tag){
94+
$this->assertContains($tag, $tags);
95+
}
96+
}
97+
11198
}
11299

113100
}

tests/normal/Modules/DBModuleTest.php renamed to tests/normal/Modules/DB/DBModuleTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* @license MIT
1010
*/
1111

12-
namespace chillerlan\BBCodeTest\normal\Modules;
12+
namespace chillerlan\BBCodeTest\normal\Modules\DB;
1313

1414
use chillerlan\bbcode\Modules\DB\DBBaseModule;
1515
use chillerlan\bbcode\Parser;

tests/normal/Modules/HTML5/ContainerTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
namespace chillerlan\BBCodeTest\normal\Modules\HTML5;
1313

14+
use chillerlan\BBCodeTest\Includes\Modules\HTML5TestBase;
15+
1416
class ContainerTest extends HTML5TestBase{
1517

1618
public function containerDataProvider(){

tests/normal/Modules/HTML5/ExpanderTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
namespace chillerlan\BBCodeTest\normal\Modules\HTML5;
1313

14+
use chillerlan\BBCodeTest\Includes\Modules\HTML5TestBase;
15+
1416
/**
1517
* Class ExpanderTest
1618
*/

tests/normal/Modules/HTML5/HTML5ModuleTest.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,19 @@
1111

1212
namespace chillerlan\BBCodeTest\normal\Modules\HTML5;
1313

14-
use chillerlan\bbcode\Modules\Html5\Simpletext;
14+
use chillerlan\BBCodeTest\Includes\Modules\HTML5TestBase;
1515

1616
/**
17-
* Class HTML5ModuleTestCritical
17+
* Class HTML5ModuleTest
1818
*/
1919
class HTML5ModuleTest extends HTML5TestBase{
2020

2121
public function testSanitizeCoverage(){
2222
$this->assertEquals('<span class="bb-text bold">&amp;</span>', $this->parser->parse('[b]&[/b]'));
2323
}
2424

25-
public function emptyTagDataProvider($tag){
26-
$this->setUp();
27-
return [array_keys($this->parser->getTagmap())];
25+
public function testNoparseCoverage(){
26+
$this->assertEquals('<pre class="bbcode noparse">[b]&amp;[/b]</pre>', $this->parser->parse('[noparse][b]&[/b][/noparse]'));
2827
}
2928

3029
/**

0 commit comments

Comments
 (0)