Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 25d3bb4

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /