Procházet zdrojové kódy

added incorrectly ignored unit test file, correcting ignore

El RIDO před 10 roky
rodič
revize
5a9879623f
2 změnil soubory, kde provedl 139 přidání a 1 odebrání
  1. 1 1
      tst/.gitignore
  2. 138 0
      tst/configuration.php

+ 1 - 1
tst/.gitignore

@@ -1 +1 @@
-/configuration.php
+/configurationCombinations.php

+ 138 - 0
tst/configuration.php

@@ -0,0 +1,138 @@
+<?php
+class configurationTest extends PHPUnit_Framework_TestCase
+{
+    private $_options = array(
+        'main' => array(
+            'discussion' => true,
+            'opendiscussion' => false,
+            'password' => true,
+            'fileupload' => false,
+            'burnafterreadingselected' => false,
+            'defaultformatter' => 'plaintext',
+            'syntaxhighlightingtheme' => null,
+            'sizelimit' => 2097152,
+            'template' => 'bootstrap',
+            'notice' => '',
+            'base64version' => '2.1.9',
+            'languageselection' => false,
+            'languagedefault' => '',
+        ),
+        'expire' => array(
+            'default' => '1week',
+            'clone' => true,
+        ),
+        'expire_options' => array(
+            '5min' => 300,
+            '10min' => 600,
+            '1hour' => 3600,
+            '1day' => 86400,
+            '1week' => 604800,
+            '1month' => 2592000,
+            '1year' => 31536000,
+            'never' => 0,
+        ),
+        'formatter_options' => array(
+            'plaintext' => 'Plain Text',
+            'syntaxhighlighting' => 'Source Code',
+            'markdown' => 'Markdown',
+        ),
+        'traffic' => array(
+            'limit' => 10,
+            'header' => null,
+            'dir' => '../data',
+        ),
+        'model' => array(
+            'class' => 'zerobin_data',
+        ),
+        'model_options' => array(
+            'dir' => '../data',
+        ),
+    );
+
+    public function setUp()
+    {
+        /* Setup Routine */
+        helper::confBackup();
+    }
+
+    public function tearDown()
+    {
+        /* Tear Down Routine */
+        helper::confRestore();
+    }
+
+    public function testDefaultConfigFile()
+    {
+        $this->assertTrue(copy(CONF . '.bak', CONF), 'copy default configuration file');
+        $conf = new configuration;
+        $this->assertEquals($this->_options, $conf->get(), 'default configuration is correct');
+    }
+
+    public function testHandleFreshConfigFile()
+    {
+        helper::createIniFile(CONF, $this->_options);
+        $conf = new configuration;
+        $this->assertEquals($this->_options, $conf->get(), 'newly generated configuration is correct');
+    }
+
+    /**
+     * @expectedException Exception
+     * @expectedExceptionCode 2
+     */
+    public function testHandleBlankConfigFile()
+    {
+        file_put_contents(CONF, '');
+        $conf = new configuration;
+    }
+
+    public function testHandleMinimalConfigFile()
+    {
+        file_put_contents(CONF, '[main]' . PHP_EOL . '[model]');
+        $conf = new configuration;
+        $this->assertEquals($this->_options, $conf->get(), 'returns correct defaults on empty file');
+    }
+
+    /**
+     * @expectedException Exception
+     * @expectedExceptionCode 3
+     */
+    public function testHandleInvalidSection()
+    {
+        file_put_contents(CONF, '[main]' . PHP_EOL . '[model]');
+        $conf = new configuration;
+        $conf->getKey('foo', 'bar');
+    }
+
+    /**
+     * @expectedException Exception
+     * @expectedExceptionCode 4
+     */
+    public function testHandleInvalidKey()
+    {
+        file_put_contents(CONF, '[main]' . PHP_EOL . '[model]');
+        $conf = new configuration;
+        $conf->getKey('foo');
+    }
+
+    public function testHandleGetKey()
+    {
+        file_put_contents(CONF, '[main]' . PHP_EOL . '[model]');
+        $conf = new configuration;
+        $this->assertEquals($this->_options['main']['sizelimit'], $conf->getKey('sizelimit'), 'get default size');
+    }
+
+    public function testHandleWrongTypes()
+    {
+        $this->_options['main']['syntaxhighlightingtheme'] = 'foo';
+        $options = $this->_options;
+        $options['main']['discussion'] = 'true';
+        $options['main']['opendiscussion'] = 0;
+        $options['main']['password'] = -1; // evaluates to TRUE
+        $options['main']['fileupload'] = 'false';
+        $options['expire_options']['foo'] = 'bar';
+        $options['formatter_options'][] = 'foo';
+        helper::createIniFile(CONF, $options);
+        $conf = new configuration;
+        $this->assertEquals($this->_options, $conf->get(), 'incorrect types are corrected');
+    }
+}