diff options
author | Andreas Gohr <andi@splitbrain.org> | 2018-05-20 12:14:50 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2018-05-20 12:14:50 +0200 |
commit | 98a151bacda13410294dc25f5881614c1d228099 (patch) | |
tree | 46618557753e349ba36933971545adb9e8b0c388 /lib/plugins/config/_test | |
parent | af40dea121421dcea1b700a4fdbd5032abe60a9d (diff) | |
download | dokuwiki-98a151bacda13410294dc25f5881614c1d228099.tar.gz dokuwiki-98a151bacda13410294dc25f5881614c1d228099.zip |
Some first Setting class tests
Diffstat (limited to 'lib/plugins/config/_test')
-rw-r--r-- | lib/plugins/config/_test/ConfigParserTest.php (renamed from lib/plugins/config/_test/ConfigParser.test.php) | 0 | ||||
-rw-r--r-- | lib/plugins/config/_test/Setting/AbstractSettingTest.php | 99 | ||||
-rw-r--r-- | lib/plugins/config/_test/Setting/SettingStringTest.php | 13 | ||||
-rw-r--r-- | lib/plugins/config/_test/Setting/SettingTest.php | 42 | ||||
-rw-r--r-- | lib/plugins/config/_test/WriterTest.php (renamed from lib/plugins/config/_test/Writer.test.php) | 0 |
5 files changed, 154 insertions, 0 deletions
diff --git a/lib/plugins/config/_test/ConfigParser.test.php b/lib/plugins/config/_test/ConfigParserTest.php index b7e33a539..b7e33a539 100644 --- a/lib/plugins/config/_test/ConfigParser.test.php +++ b/lib/plugins/config/_test/ConfigParserTest.php diff --git a/lib/plugins/config/_test/Setting/AbstractSettingTest.php b/lib/plugins/config/_test/Setting/AbstractSettingTest.php new file mode 100644 index 000000000..3b24efc37 --- /dev/null +++ b/lib/plugins/config/_test/Setting/AbstractSettingTest.php @@ -0,0 +1,99 @@ +<?php + +namespace dokuwiki\plugin\config\test\Setting; + +use dokuwiki\plugin\config\core\Setting\Setting; + +class AbstractSettingTest extends \DokuWikiTest { + + /** @var string the class to test */ + protected $class; + + /** + * Sets up the proper class to test based on the test's class name + * @throws \Exception + */ + public function setUp() { + parent::setUp(); + $class = get_class($this); + $class = substr($class, strrpos($class, '\\') + 1, -4); + $class = 'dokuwiki\\plugin\\config\\core\\Setting\\' . $class; + $this->class = $class; + } + + public function testInitialBasics() { + /** @var Setting $setting */ + $setting = new $this->class('test'); + $this->assertEquals('test', $setting->getKey()); + $this->assertSame(false, $setting->isProtected()); + $this->assertSame(true, $setting->isDefault()); + $this->assertSame(false, $setting->hasError()); + $this->assertSame(false, $setting->shouldBeSaved()); + } + + public function testShouldHaveDefault() { + /** @var Setting $setting */ + $setting = new $this->class('test'); + $this->assertSame(true, $setting->shouldHaveDefault()); + } + + public function testPrettyKey() { + /** @var Setting $setting */ + $setting = new $this->class('test'); + $this->assertEquals('test', $setting->getPrettyKey(false)); + + $setting = new $this->class('test____foo'); + $this->assertEquals('test»foo', $setting->getPrettyKey(false)); + + $setting = new $this->class('test'); + $this->assertEquals( + '<a href="http://www.dokuwiki.org/config:test">test</a>', + $setting->getPrettyKey(true) + ); + + $setting = new $this->class('test____foo'); + $this->assertEquals('test»foo', $setting->getPrettyKey(true)); + + $setting = new $this->class('start'); + $this->assertEquals( + '<a href="http://www.dokuwiki.org/config:startpage">start</a>', + $setting->getPrettyKey(true) + ); + } + + public function testType() { + /** @var Setting $setting */ + $setting = new $this->class('test'); + $this->assertEquals('conf', $setting->getType()); + + $setting = new $this->class('test_foo'); + $this->assertEquals('conf', $setting->getType()); + + $setting = new $this->class('plugin____test'); + $this->assertEquals('plugin', $setting->getType()); + + $setting = new $this->class('tpl____test'); + $this->assertEquals('template', $setting->getType()); + } + + public function testCaution() { + /** @var Setting $setting */ + $setting = new $this->class('test'); + $this->assertEquals(false, $setting->caution()); + + $setting = new $this->class('test', ['_caution' => 'warning']); + $this->assertEquals('warning', $setting->caution()); + + $setting = new $this->class('test', ['_caution' => 'danger']); + $this->assertEquals('danger', $setting->caution()); + + $setting = new $this->class('test', ['_caution' => 'security']); + $this->assertEquals('security', $setting->caution()); + + $setting = new $this->class('test', ['_caution' => 'flargh']); + $this->expectException(\RuntimeException::class); + $setting->caution(); + } + + +} diff --git a/lib/plugins/config/_test/Setting/SettingStringTest.php b/lib/plugins/config/_test/Setting/SettingStringTest.php new file mode 100644 index 000000000..3d6a71c9d --- /dev/null +++ b/lib/plugins/config/_test/Setting/SettingStringTest.php @@ -0,0 +1,13 @@ +<?php + +namespace dokuwiki\plugin\config\test\Setting; + +/** + * @group plugin_config + * @group admin_plugins + * @group plugins + * @group bundled_plugins + */ +class SettingStringTest extends SettingTest { + +} diff --git a/lib/plugins/config/_test/Setting/SettingTest.php b/lib/plugins/config/_test/Setting/SettingTest.php new file mode 100644 index 000000000..ffd74496f --- /dev/null +++ b/lib/plugins/config/_test/Setting/SettingTest.php @@ -0,0 +1,42 @@ +<?php + +namespace dokuwiki\plugin\config\test\Setting; + +use dokuwiki\plugin\config\core\Setting\Setting; + +/** + * @group plugin_config + * @group admin_plugins + * @group plugins + * @group bundled_plugins + */ +class SettingTest extends AbstractSettingTest { + + /** + * Dataprovider for test out + * + * @return array + */ + public function dataOut() { + return [ + ['bar', "\$conf['test'] = 'bar';\n"], + ["foo'bar", "\$conf['test'] = 'foo\\'bar';\n"], + ]; + } + + /** + * Check the output + * + * @param mixed $in The value to initialize the setting with + * @param string $out The expected output (for conf[test]) + * @dataProvider dataOut + */ + public function testOut($in, $out) { + /** @var Setting $setting */ + #$setting = new $this->class('test'); + $setting = new Setting('test'); + $setting->initialize('ignore', $in); + + $this->assertEquals($out, $setting->out('conf')); + } +} diff --git a/lib/plugins/config/_test/Writer.test.php b/lib/plugins/config/_test/WriterTest.php index 62e4a56d5..62e4a56d5 100644 --- a/lib/plugins/config/_test/Writer.test.php +++ b/lib/plugins/config/_test/WriterTest.php |