mirror of
https://github.com/e107inc/e107.git
synced 2025-08-29 09:10:23 +02:00
Preparation for merge with e107 repository
Moved all test files to e107_tests subdirectory
This commit is contained in:
100
e107_tests/tests/unit/ConstantsTest.php
Normal file
100
e107_tests/tests/unit/ConstantsTest.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e107ConstantsTest extends \Codeception\Test\Unit
|
||||
{
|
||||
public function testVerifyE_BASE()
|
||||
{
|
||||
|
||||
$res = defined('e_BASE');
|
||||
$this->assertTrue($res);
|
||||
}
|
||||
|
||||
public function testVerifyE_SYSTEM_BASE()
|
||||
{
|
||||
$res = true;
|
||||
|
||||
if(!defined('e_SYSTEM'))
|
||||
{
|
||||
$res = false;
|
||||
}
|
||||
elseif(!defined('e_SYSTEM_BASE'))
|
||||
{
|
||||
$res = false;
|
||||
}
|
||||
elseif(e_SYSTEM_BASE === e_SYSTEM)
|
||||
{
|
||||
$res = false;
|
||||
}
|
||||
|
||||
$this->assertTrue($res);
|
||||
}
|
||||
|
||||
public function testVerifyE_MEDIA_BASE()
|
||||
{
|
||||
$res = true;
|
||||
|
||||
if(!defined('e_MEDIA'))
|
||||
{
|
||||
$res = false;
|
||||
}
|
||||
elseif(!defined('e_MEDIA_BASE'))
|
||||
{
|
||||
$res = false;
|
||||
}
|
||||
elseif(e_MEDIA_BASE === e_MEDIA)
|
||||
{
|
||||
$res = false;
|
||||
}
|
||||
|
||||
$this->assertTrue($res);
|
||||
}
|
||||
|
||||
public function testVerifyE107_INIT()
|
||||
{
|
||||
$res = true;
|
||||
|
||||
if(!defined('e107_INIT'))
|
||||
{
|
||||
$res = false;
|
||||
}
|
||||
|
||||
$this->assertTrue($res);
|
||||
}
|
||||
|
||||
|
||||
public function testVerifyUSERCLASS_LIST()
|
||||
{
|
||||
$res = true;
|
||||
|
||||
if(!defined('USERCLASS_LIST'))
|
||||
{
|
||||
$res = false;
|
||||
}
|
||||
|
||||
$this->assertTrue($res);
|
||||
}
|
||||
|
||||
|
||||
public function testVerifye_ROOT()
|
||||
{
|
||||
$res = true;
|
||||
|
||||
if(!defined('e_ROOT'))
|
||||
{
|
||||
$res = false;
|
||||
}
|
||||
|
||||
$this->assertTrue($res);
|
||||
|
||||
|
||||
}
|
||||
}
|
22
e107_tests/tests/unit/PathsTest.php
Normal file
22
e107_tests/tests/unit/PathsTest.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class e107PathsTest extends TestCase
|
||||
{
|
||||
public function testPathToClass2()
|
||||
{
|
||||
$res = file_exists(APP_PATH."/class2.php");
|
||||
|
||||
$this->assertTrue($res);
|
||||
|
||||
}
|
||||
}
|
477
e107_tests/tests/unit/TreeModelTest.php
Normal file
477
e107_tests/tests/unit/TreeModelTest.php
Normal file
@@ -0,0 +1,477 @@
|
||||
<?php
|
||||
|
||||
class TreeModelTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/**
|
||||
* @var \UnitTester
|
||||
*/
|
||||
protected $tester;
|
||||
|
||||
protected $sample_key = 'link_id';
|
||||
protected $sample_parent_key = 'link_parent';
|
||||
protected $tree;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
$class = new \ReflectionClass('e_tree_model');
|
||||
|
||||
$method = $class->getMethod('arrayToTree');
|
||||
$method->setAccessible(true);
|
||||
$this->tree = $method->invoke(null, $this->sample_rows, $this->sample_key, $this->sample_parent_key);
|
||||
}
|
||||
|
||||
protected function _after()
|
||||
{
|
||||
}
|
||||
|
||||
// tests
|
||||
public function testTreeIsAnArray()
|
||||
{
|
||||
$this->assertTrue(is_array($this->tree));
|
||||
}
|
||||
|
||||
public function testTreeRootNodeIsTheOnlyRootNode()
|
||||
{
|
||||
$this->assertEquals(count($this->tree), 1);
|
||||
}
|
||||
|
||||
public function testTreeRootNodeHasCorrectKeyValuePair()
|
||||
{
|
||||
$key = $this->sample_key;
|
||||
$this->assertArrayHasKey($key, $this->tree[0]);
|
||||
$this->assertEquals($this->tree[0][$key], 0);
|
||||
}
|
||||
|
||||
public function testTreeRootNodeHasChildren()
|
||||
{
|
||||
$this->assertArrayHasKey('_children', $this->tree[0]);
|
||||
$this->assertTrue(is_array($this->tree[0]['_children']));
|
||||
}
|
||||
|
||||
public function testTreeParentsAreAssignedCorrectly()
|
||||
{
|
||||
$key = $this->sample_key;
|
||||
$parent_key = $this->sample_parent_key;
|
||||
$l0_id = $this->tree[1][$key];
|
||||
$l1_id = $this->tree[1]['_children'][0][$key];
|
||||
$l1_parent = $this->tree[1]['_children'][0][$parent_key];
|
||||
$l2_id = $this->tree[1]['_children'][0]['_children'][0][$key];
|
||||
$l2_parent = $this->tree[1]['_children'][0]['_children'][0][$parent_key];
|
||||
|
||||
$this->assertEquals($l0_id, $l1_parent);
|
||||
$this->assertEquals($l1_id, $l2_parent);
|
||||
}
|
||||
|
||||
public function testTreeValuesAreFlattenedInExpectedOrder()
|
||||
{
|
||||
$class = new \ReflectionClass('e_tree_model');
|
||||
|
||||
$method = $class->getMethod('flattenTree');
|
||||
$method->setAccessible(true);
|
||||
$rows = $method->invoke(null, $this->tree, 'link_order', 1);
|
||||
|
||||
$expected = ['General', 'Home', 'Downloads', 'Members', 'Online Users',
|
||||
'Site Stats', 'Submit News', 'Newsfeeds', 'About Us',
|
||||
'Contact Us', 'Nodes', 'Main Website', 'My Deltik',
|
||||
'x10Deltik', 'Deltik Docs', 'Legacy Deltik Products',
|
||||
'Deltik Minecraft Server', 'Register'];
|
||||
|
||||
foreach($expected as $key => $value)
|
||||
{
|
||||
$this->assertEquals($value, $rows[$key]['link_name']);
|
||||
}
|
||||
|
||||
$this->assertEquals(count($expected), count($rows));
|
||||
}
|
||||
|
||||
public function testPrepareSimulatedPaginationProcessesCountOnly()
|
||||
{
|
||||
$tree_model = $this->make('e_tree_model');
|
||||
$tree_model->setParam('db_query', 'ORDER BY n.news_sticky DESC, n.news_datestamp DESC LIMIT 4');
|
||||
|
||||
$class = new \ReflectionClass(get_class($tree_model));
|
||||
$method = $class->getMethod('prepareSimulatedPagination');
|
||||
$method->setAccessible(true);
|
||||
$method->invoke($tree_model);
|
||||
|
||||
$this->assertEquals('ORDER BY n.news_sticky DESC, n.news_datestamp DESC', trim($tree_model->getParam('db_query')));
|
||||
$this->assertEquals('4', $tree_model->getParam('db_limit_count'));
|
||||
$this->assertEmpty($tree_model->getParam('db_limit_offset'));
|
||||
}
|
||||
|
||||
public function testPrepareSimulatedPaginationProcessesOffsetAndCount()
|
||||
{
|
||||
$tree_model = $this->make('e_tree_model');
|
||||
$tree_model->setParam('db_query', 'ORDER BY n.news_sticky DESC, n.news_datestamp DESC LIMIT 79,163');
|
||||
|
||||
$class = new \ReflectionClass(get_class($tree_model));
|
||||
$method = $class->getMethod('prepareSimulatedPagination');
|
||||
$method->setAccessible(true);
|
||||
$method->invoke($tree_model);
|
||||
|
||||
$this->assertEquals('ORDER BY n.news_sticky DESC, n.news_datestamp DESC', trim($tree_model->getParam('db_query')));
|
||||
$this->assertEquals('163', $tree_model->getParam('db_limit_count'));
|
||||
$this->assertEquals('79', $tree_model->getParam('db_limit_offset'));
|
||||
}
|
||||
|
||||
public function testMultiFieldCompareWithSortFieldsReturnsExpectedValues()
|
||||
{
|
||||
$tree_model = $this->make('e_tree_model');
|
||||
$class = new \ReflectionClass(get_class($tree_model));
|
||||
$method = $class->getMethod('multiFieldCmp');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$row1 = array(
|
||||
'field1' => '0',
|
||||
'field2' => '-1',
|
||||
);
|
||||
$row2 = array(
|
||||
'field1' => '0',
|
||||
'field2' => '1',
|
||||
);
|
||||
$sort_fields = ['field1', 'field2'];
|
||||
|
||||
$result = $method->invoke(null, $row1, $row2, $sort_fields, 1);
|
||||
$this->assertEquals(-1, $result);
|
||||
|
||||
$row1['field2'] = 1;
|
||||
$result = $method->invoke(null, $row1, $row2, $sort_fields, 1);
|
||||
$this->assertEquals(0, $result);
|
||||
|
||||
$row1['field2'] = 2;
|
||||
$result = $method->invoke(null, $row1, $row2, $sort_fields, 1);
|
||||
$this->assertEquals(1, $result);
|
||||
|
||||
$row1['field1'] = -1;
|
||||
$result = $method->invoke(null, $row1, $row2, $sort_fields, 1);
|
||||
$this->assertEquals(-1, $result);
|
||||
|
||||
$row1['field1'] = 1;
|
||||
$result = $method->invoke(null, $row1, $row2, $sort_fields, 1);
|
||||
$this->assertEquals(1, $result);
|
||||
}
|
||||
|
||||
public function testMultiFieldCompareWithSortFieldReturnsExpectedValues()
|
||||
{
|
||||
$tree_model = $this->make('e_tree_model');
|
||||
$class = new \ReflectionClass(get_class($tree_model));
|
||||
$method = $class->getMethod('multiFieldCmp');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$row1 = array(
|
||||
'field1' => '0',
|
||||
'field2' => '-1',
|
||||
);
|
||||
$row2 = array(
|
||||
'field1' => '0',
|
||||
'field2' => '1',
|
||||
);
|
||||
$sort_field = 'field1';
|
||||
|
||||
$result = $method->invoke(null, $row1, $row2, $sort_field, 1);
|
||||
$this->assertEquals(0, $result);
|
||||
|
||||
$row1['field1'] = -1;
|
||||
$result = $method->invoke(null, $row1, $row2, $sort_field, 1);
|
||||
$this->assertEquals(-1, $result);
|
||||
|
||||
$row1['field1'] = 1;
|
||||
$result = $method->invoke(null, $row1, $row2, $sort_field, 1);
|
||||
$this->assertEquals(1, $result);
|
||||
|
||||
$row1['field2'] = 1337;
|
||||
$this->assertEquals(1, $result);
|
||||
}
|
||||
|
||||
protected $sample_rows =
|
||||
array(
|
||||
0 =>
|
||||
array (
|
||||
'link_id' => '1',
|
||||
'link_name' => 'General',
|
||||
'link_url' => '/index.php',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/icon2.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '1',
|
||||
'link_parent' => '0',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'link_id' => '99',
|
||||
'link_name' => 'Nodes',
|
||||
'link_url' => '',
|
||||
'link_description' => '',
|
||||
'link_button' => 'icon14.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '2',
|
||||
'link_parent' => '0',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'link_id' => '8',
|
||||
'link_name' => 'Register',
|
||||
'link_url' => '/signup.php',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/deltik-favicon.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '3',
|
||||
'link_parent' => '0',
|
||||
'link_open' => '0',
|
||||
'link_class' => '252',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'link_id' => '6',
|
||||
'link_name' => 'Home',
|
||||
'link_url' => '/index.php',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/icon18.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '1',
|
||||
'link_parent' => '1',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'link_id' => '18',
|
||||
'link_name' => 'About Us',
|
||||
'link_url' => '/page.php?4',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/deltik-favicon.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '8',
|
||||
'link_parent' => '1',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
5 =>
|
||||
array (
|
||||
'link_id' => '17',
|
||||
'link_name' => 'Newsfeeds',
|
||||
'link_url' => '/{e_PLUGIN}newsfeed/newsfeed.php',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/html.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '7',
|
||||
'link_parent' => '1',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
6 =>
|
||||
array (
|
||||
'link_id' => '4',
|
||||
'link_name' => 'Submit News',
|
||||
'link_url' => '/submitnews.php',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/icon26.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '6',
|
||||
'link_parent' => '1',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
7 =>
|
||||
array (
|
||||
'link_id' => '16',
|
||||
'link_name' => 'Site Stats',
|
||||
'link_url' => '/{e_PLUGIN}log/stats.php?1',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/icon11.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '5',
|
||||
'link_parent' => '1',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
8 =>
|
||||
array (
|
||||
'link_id' => '7',
|
||||
'link_name' => 'Online Users',
|
||||
'link_url' => '/online.php',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/icon22.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '4',
|
||||
'link_parent' => '1',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
9 =>
|
||||
array (
|
||||
'link_id' => '2',
|
||||
'link_name' => 'Downloads',
|
||||
'link_url' => '/download.php',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/download_32.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '2',
|
||||
'link_parent' => '1',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
10 =>
|
||||
array (
|
||||
'link_id' => '3',
|
||||
'link_name' => 'Members',
|
||||
'link_url' => '/user.php',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/icon20.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '3',
|
||||
'link_parent' => '1',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
11 =>
|
||||
array (
|
||||
'link_id' => '5',
|
||||
'link_name' => 'Contact Us',
|
||||
'link_url' => '/contact.php',
|
||||
'link_description' => '',
|
||||
'link_button' => '{e_IMAGE}icons/icon19.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '9',
|
||||
'link_parent' => '1',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
12 =>
|
||||
array (
|
||||
'link_id' => '12',
|
||||
'link_name' => 'x10Deltik',
|
||||
'link_url' => 'https://x10.deltik.org/',
|
||||
'link_description' => 'Deltik Additional Resources Website',
|
||||
'link_button' => 'deltik_x10-favicon.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '3',
|
||||
'link_parent' => '99',
|
||||
'link_open' => '0',
|
||||
'link_class' => '255',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
13 =>
|
||||
array (
|
||||
'link_id' => '15',
|
||||
'link_name' => 'Deltik Docs',
|
||||
'link_url' => 'https://man.deltik.org/',
|
||||
'link_description' => 'Manual Pages of Deltik',
|
||||
'link_button' => 'deltik_docs-favicon.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '4',
|
||||
'link_parent' => '99',
|
||||
'link_open' => '0',
|
||||
'link_class' => '255',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
14 =>
|
||||
array (
|
||||
'link_id' => '14',
|
||||
'link_name' => 'Legacy Deltik Products',
|
||||
'link_url' => 'https://products.deltik.org/',
|
||||
'link_description' => 'Legacy Deltik Products',
|
||||
'link_button' => 'deltik_products-favicon.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '5',
|
||||
'link_parent' => '99',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
15 =>
|
||||
array (
|
||||
'link_id' => '11',
|
||||
'link_name' => 'My Deltik',
|
||||
'link_url' => 'https://my.deltik.org/',
|
||||
'link_description' => 'User Control Panel for all of Deltik's Features',
|
||||
'link_button' => 'deltik_my-favicon.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '2',
|
||||
'link_parent' => '99',
|
||||
'link_open' => '0',
|
||||
'link_class' => '255',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
16 =>
|
||||
array (
|
||||
'link_id' => '13',
|
||||
'link_name' => 'Deltik Minecraft Server',
|
||||
'link_url' => 'https://mc.deltik.org/',
|
||||
'link_description' => 'Deltik Minecraft Server',
|
||||
'link_button' => 'deltik_mc-favicon.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '6',
|
||||
'link_parent' => '99',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
17 =>
|
||||
array (
|
||||
'link_id' => '10',
|
||||
'link_name' => 'Main Website',
|
||||
'link_url' => 'https://www.deltik.org/',
|
||||
'link_description' => 'The Official Deltik Website',
|
||||
'link_button' => 'deltik-favicon.png',
|
||||
'link_category' => '1',
|
||||
'link_order' => '1',
|
||||
'link_parent' => '99',
|
||||
'link_open' => '0',
|
||||
'link_class' => '0',
|
||||
'link_function' => '',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => '',
|
||||
),
|
||||
);
|
||||
}
|
155
e107_tests/tests/unit/UserHandlerTest.php
Normal file
155
e107_tests/tests/unit/UserHandlerTest.php
Normal file
@@ -0,0 +1,155 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class UserHandlerTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var UserHandler */
|
||||
protected $usr;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$this->usr = $this->make('UserHandler');
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load UserHandler object");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
public function testCheckPassword()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDeleteExpired()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsPasswordRequired()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddCommonClasses()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test__construct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testResetPassword()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMakeUserCookie()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUserValidation()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testConvertPassword()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHasReadonlyField()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRehashPassword()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testNeedEmailPassword()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHashPassword()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCanConvert()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckCHAP()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUserClassUpdate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetHashType()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGenerateUserLogin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGenerateRandomString()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetDefaultHashType()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPasswordAPIExists()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddNonDefaulted()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetNiceNames()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUserStatusUpdate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
}
|
1
e107_tests/tests/unit/_bootstrap.php
Normal file
1
e107_tests/tests/unit/_bootstrap.php
Normal file
@@ -0,0 +1 @@
|
||||
<?php
|
87
e107_tests/tests/unit/class2Test.php
Normal file
87
e107_tests/tests/unit/class2Test.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class class2Test extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var ${TESTED_NAME} */
|
||||
protected $ep;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
/*try
|
||||
{
|
||||
$this->ep = $this->make('${TESTED_NAME}');
|
||||
} catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load ${TESTED_NAME} object");
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
function testGetPerms()
|
||||
{
|
||||
|
||||
$result = getperms('N', '0');
|
||||
$this->assertTrue($result);
|
||||
|
||||
$result = getperms('N', '0.');
|
||||
$this->assertTrue($result);
|
||||
|
||||
$result = getperms('U1|U2', '0.');
|
||||
$this->assertTrue($result);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function testCheckClass()
|
||||
{
|
||||
|
||||
$result = check_class(0, "253,254,250,251,0");
|
||||
$this->assertTrue($result);
|
||||
|
||||
$result = check_class(254, "253,254,250,251,0");
|
||||
$this->assertTrue($result);
|
||||
|
||||
$result = check_class('0', "253,254,250,251,0");
|
||||
$this->assertTrue($result);
|
||||
|
||||
$result = check_class(null, "253,254,250,251,0");
|
||||
$this->assertFalse($result);
|
||||
|
||||
$result = check_class(e_UC_NOBODY, "253,254,250,251,0");
|
||||
$this->assertFalse($result);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function testCheckEmail()
|
||||
{
|
||||
$result = check_email("test@somewhere.com"); // good email.
|
||||
$this->assertEquals('test@somewhere.com', $result);
|
||||
|
||||
$result = check_email("test@somewherecom"); // Missing .
|
||||
$this->assertFalse($result);
|
||||
|
||||
$result = check_email("test@somewhere.technology"); // New TLDs
|
||||
$this->assertEquals('test@somewhere.technology',$result);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
56
e107_tests/tests/unit/core_functionsTest.php
Normal file
56
e107_tests/tests/unit/core_functionsTest.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class core_functionsTest extends \Codeception\Test\Unit
|
||||
{
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function testAsortbyindex()
|
||||
{
|
||||
$array = array(
|
||||
1 => array ( 0 => '/e107v2/e107_admin/banlist.php', 1 => 'Banlist', 2 => 'Ban visitors' ),
|
||||
2 => array ( 0 => '/e107v2/e107_admin/updateadmin.php', 1 => 'Admin password', 2 => 'Change your password' ),
|
||||
3 => array ( 0 => '/e107v2/e107_admin/administrator.php', 1 => 'Administrators', 2 => 'Add/delete site administrators' ),
|
||||
4 => array ( 0 => '/e107v2/e107_admin/cache.php', 1 => 'Cache', 2 => 'Set cache status')
|
||||
);
|
||||
|
||||
$expected = array (
|
||||
0 => array ( 0 => '/e107v2/e107_admin/updateadmin.php', 1 => 'Admin password', 2 => 'Change your password'),
|
||||
1 => array ( 0 => '/e107v2/e107_admin/administrator.php', 1 => 'Administrators', 2 => 'Add/delete site administrators'),
|
||||
2 => array ( 0 => '/e107v2/e107_admin/banlist.php', 1 => 'Banlist', 2 => 'Ban visitors' ),
|
||||
3 => array ( 0 => '/e107v2/e107_admin/cache.php', 1 => 'Cache', 2 => 'Set cache status' ),
|
||||
);
|
||||
|
||||
$result = asortbyindex($array,1);
|
||||
|
||||
$this->assertEquals($expected,$result);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
890
e107_tests/tests/unit/db_verifyTest.php
Normal file
890
e107_tests/tests/unit/db_verifyTest.php
Normal file
@@ -0,0 +1,890 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class db_verifyTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var db_verify */
|
||||
private $dbv;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
require_once(e_HANDLER."db_verify_class.php");
|
||||
try
|
||||
{
|
||||
$this->dbv = $this->make('db_verify');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->fail("Couldn't load db_verify object");
|
||||
}
|
||||
|
||||
$this->dbv->__construct();
|
||||
}
|
||||
|
||||
public function testGetFields()
|
||||
{
|
||||
$data = "table_id int(10) unsigned NOT NULL auto_increment,
|
||||
table_name varchar(100) NOT NULL default '',
|
||||
table_email varchar(100) NOT NULL default '',
|
||||
table_user int(10) unsigned NOT NULL default '0',
|
||||
table_title varchar(200) NOT NULL default '',
|
||||
table_category tinyint(3) unsigned NOT NULL default '0',
|
||||
table_json JSON NOT NULL,
|
||||
table_item text NOT NULL,
|
||||
table_datestamp int(10) unsigned NOT NULL default '0',
|
||||
table_ip varchar(45) NOT NULL default '',
|
||||
table_auth tinyint(3) unsigned NOT NULL default '0',
|
||||
table_file text NOT NULL,
|
||||
table_keywords varchar(255) NOT NULL default '',
|
||||
table_description text,
|
||||
table_summary text,
|
||||
table_media text,
|
||||
PRIMARY KEY (table_id)";
|
||||
|
||||
$expected = array (
|
||||
'table_id' =>
|
||||
array (
|
||||
'type' => 'INT',
|
||||
'value' => '10',
|
||||
'attributes' => 'UNSIGNED',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'AUTO_INCREMENT',
|
||||
),
|
||||
'table_name' =>
|
||||
array (
|
||||
'type' => 'VARCHAR',
|
||||
'value' => '100',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'\'',
|
||||
),
|
||||
'table_email' =>
|
||||
array (
|
||||
'type' => 'VARCHAR',
|
||||
'value' => '100',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'\'',
|
||||
),
|
||||
'table_user' =>
|
||||
array (
|
||||
'type' => 'INT',
|
||||
'value' => '10',
|
||||
'attributes' => 'UNSIGNED',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'0\'',
|
||||
),
|
||||
'table_title' =>
|
||||
array (
|
||||
'type' => 'VARCHAR',
|
||||
'value' => '200',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'\'',
|
||||
),
|
||||
'table_category' =>
|
||||
array (
|
||||
'type' => 'TINYINT',
|
||||
'value' => '3',
|
||||
'attributes' => 'UNSIGNED',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'0\'',
|
||||
),
|
||||
'table_json' =>
|
||||
array (
|
||||
'type' => 'JSON',
|
||||
'value' => '',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => '',
|
||||
),
|
||||
'table_item' =>
|
||||
array (
|
||||
'type' => 'TEXT',
|
||||
'value' => '',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => '',
|
||||
),
|
||||
'table_datestamp' =>
|
||||
array (
|
||||
'type' => 'INT',
|
||||
'value' => '10',
|
||||
'attributes' => 'UNSIGNED',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'0\'',
|
||||
),
|
||||
'table_ip' =>
|
||||
array (
|
||||
'type' => 'VARCHAR',
|
||||
'value' => '45',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'\'',
|
||||
),
|
||||
'table_auth' =>
|
||||
array (
|
||||
'type' => 'TINYINT',
|
||||
'value' => '3',
|
||||
'attributes' => 'UNSIGNED',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'0\'',
|
||||
),
|
||||
'table_file' =>
|
||||
array (
|
||||
'type' => 'TEXT',
|
||||
'value' => '',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => '',
|
||||
),
|
||||
'table_keywords' =>
|
||||
array (
|
||||
'type' => 'VARCHAR',
|
||||
'value' => '255',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'\'',
|
||||
),
|
||||
'table_description' =>
|
||||
array (
|
||||
'type' => 'TEXT',
|
||||
'value' => '',
|
||||
'attributes' => '',
|
||||
'null' => '',
|
||||
'default' => '',
|
||||
),
|
||||
'table_summary' =>
|
||||
array (
|
||||
'type' => 'TEXT',
|
||||
'value' => '',
|
||||
'attributes' => '',
|
||||
'null' => '',
|
||||
'default' => '',
|
||||
),
|
||||
'table_media' =>
|
||||
array (
|
||||
'type' => 'TEXT',
|
||||
'value' => '',
|
||||
'attributes' => '',
|
||||
'null' => '',
|
||||
'default' => '',
|
||||
),
|
||||
);
|
||||
|
||||
$actual = $this->dbv->getFields($data);
|
||||
$this->assertEquals($expected,$actual);
|
||||
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testClearCache()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderNotes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCompareAll()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderTableName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetSqlData()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testGetIndex()
|
||||
{
|
||||
|
||||
$data = "`schedule_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`schedule_cust_id` int(11) NOT NULL,
|
||||
`schedule_complete` int(1) unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`schedule_id`),
|
||||
UNIQUE KEY `schedule_cust_id` (`schedule_cust_id`),
|
||||
KEY `schedule_invoice_id` (`schedule_invoice_id`)";
|
||||
|
||||
$expected = array(
|
||||
'schedule_id' =>
|
||||
array(
|
||||
'type' => 'PRIMARY',
|
||||
'keyname' => 'schedule_id',
|
||||
'field' => 'schedule_id',
|
||||
),
|
||||
'schedule_cust_id' =>
|
||||
array(
|
||||
'type' => 'UNIQUE',
|
||||
'keyname' => 'schedule_cust_id',
|
||||
'field' => 'schedule_cust_id',
|
||||
),
|
||||
'schedule_invoice_id' =>
|
||||
array(
|
||||
'type' => '',
|
||||
'keyname' => 'schedule_invoice_id',
|
||||
'field' => 'schedule_invoice_id',
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
$result = $this->dbv->getIndex($data);
|
||||
$this->assertEquals($expected,$result);
|
||||
}
|
||||
|
||||
public function testCompare()
|
||||
{
|
||||
|
||||
e107::getDb()->gen('ALTER TABLE `#submitnews` CHANGE `submitnews_id` `submitnews_id` INT(10) UNSIGNED NOT NULL;');
|
||||
e107::getDb()->gen('ALTER TABLE `#submitnews` DROP INDEX submitnews_id;');
|
||||
|
||||
define('e_DEBUG', true);
|
||||
|
||||
$this->dbv->__construct();
|
||||
|
||||
// print_r($this->dbv->sqlFileTables);
|
||||
|
||||
$this->dbv->compare('core');
|
||||
$this->dbv->compileResults();
|
||||
|
||||
|
||||
//FIXME
|
||||
|
||||
// print_r($this->dbv->errors);
|
||||
// print_r($this->dbv->results['submitnews']);
|
||||
// print_r($this->dbv->indices['submitnews']);
|
||||
// print_r($this->dbv->results);
|
||||
}
|
||||
|
||||
|
||||
public function testGetFixQuery()
|
||||
{
|
||||
|
||||
$sqlFileData = "table_id int(10) unsigned NOT NULL auto_increment,
|
||||
table_name varchar(100) NOT NULL default '',
|
||||
table_email varchar(100) NOT NULL default '',
|
||||
table_user int(10) unsigned NOT NULL default '0',
|
||||
table_title varchar(200) NOT NULL default '',
|
||||
table_category tinyint(3) unsigned NOT NULL default '0',
|
||||
table_json JSON NOT NULL,
|
||||
table_item text NOT NULL,
|
||||
table_datestamp int(10) unsigned NOT NULL default '0',
|
||||
table_ip varchar(45) NOT NULL default '',
|
||||
table_auth tinyint(3) unsigned NOT NULL default '0',
|
||||
table_file text NOT NULL,
|
||||
table_keywords varchar(255) NOT NULL default '',
|
||||
table_description text,
|
||||
table_summary text,
|
||||
table_media text,
|
||||
PRIMARY KEY (table_id)
|
||||
UNIQUE KEY `table_email` (`table_email`),
|
||||
KEY `table_user` (`table_user`)
|
||||
";
|
||||
|
||||
$actual = $this->dbv->getFixQuery('alter', 'table', 'table_ip', $sqlFileData);
|
||||
$expected = "ALTER TABLE `e107_table` CHANGE `table_ip` `table_ip` VARCHAR(45) NOT NULL DEFAULT ''";
|
||||
$this->assertEquals($expected,$actual);
|
||||
|
||||
|
||||
$actual = $this->dbv->getFixQuery('insert', 'table', 'table_auth', $sqlFileData);
|
||||
$expected = "ALTER TABLE `e107_table` ADD `table_auth` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER table_ip";
|
||||
$this->assertEquals($expected,$actual);
|
||||
|
||||
$actual = $this->dbv->getFixQuery('insert', 'table', 'table_json', $sqlFileData);
|
||||
$expected = "ALTER TABLE `e107_table` ADD `table_json` JSON NOT NULL AFTER table_category";
|
||||
$this->assertEquals($expected,$actual);
|
||||
|
||||
$actual = $this->dbv->getFixQuery('index', 'table', 'table_email', $sqlFileData);
|
||||
$expected = 'ALTER TABLE `e107_table` ADD UNIQUE `table_email` (table_email);';
|
||||
$this->assertEquals($expected,$actual);
|
||||
|
||||
$actual = $this->dbv->getFixQuery('index', 'table', 'table_user', $sqlFileData);
|
||||
$expected = 'ALTER TABLE `e107_table` ADD INDEX `table_user` (table_user);';
|
||||
$this->assertEquals($expected,$actual);
|
||||
|
||||
$actual = $this->dbv->getFixQuery('create', 'table', 'table_user', $sqlFileData, 'InnoDB');
|
||||
$expected = 'CREATE TABLE `e107_table` (table_id int(10) unsigned NOT NULL auto_increment,
|
||||
table_name varchar(100) NOT NULL default \'\',
|
||||
table_email varchar(100) NOT NULL default \'\',
|
||||
table_user int(10) unsigned NOT NULL default \'0\',
|
||||
table_title varchar(200) NOT NULL default \'\',
|
||||
table_category tinyint(3) unsigned NOT NULL default \'0\',
|
||||
table_json JSON NOT NULL,
|
||||
table_item text NOT NULL,
|
||||
table_datestamp int(10) unsigned NOT NULL default \'0\',
|
||||
table_ip varchar(45) NOT NULL default \'\',
|
||||
table_auth tinyint(3) unsigned NOT NULL default \'0\',
|
||||
table_file text NOT NULL,
|
||||
table_keywords varchar(255) NOT NULL default \'\',
|
||||
table_description text,
|
||||
table_summary text,
|
||||
table_media text,
|
||||
PRIMARY KEY (table_id)
|
||||
UNIQUE KEY `table_email` (`table_email`),
|
||||
KEY `table_user` (`table_user`)
|
||||
) ENGINE=InnoDB;';
|
||||
|
||||
$expected = str_replace("\t", "",$expected);
|
||||
$actual = str_replace("\t", "",$actual);
|
||||
|
||||
$this->assertEquals($expected,$actual);
|
||||
|
||||
//
|
||||
// echo $actual;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function testToMysql()
|
||||
{
|
||||
$tests = array(
|
||||
0 =>
|
||||
array (
|
||||
'type' => 'TINYINT',
|
||||
'value' => '3',
|
||||
'attributes' => 'UNSIGNED',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'0\'',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'type' => 'JSON',
|
||||
'value' => '',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => '',
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
$expected = array(
|
||||
"TINYINT(3) UNSIGNED NOT NULL DEFAULT '0'",
|
||||
"JSON NOT NULL",
|
||||
);
|
||||
|
||||
|
||||
foreach($tests as $k=>$data)
|
||||
{
|
||||
$result = $this->dbv->toMysql($data);
|
||||
$this->assertEquals($expected[$k], $result);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
public function testRunFix()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderTableSelect()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testVerify()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetPrevious()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderResults()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testErrors()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testGetSqlFileTables()
|
||||
{
|
||||
$tests = array(
|
||||
|
||||
'missing_index' =>
|
||||
"CREATE TABLE `e107_submitnews` (
|
||||
`submitnews_id` int(10) unsigned NOT NULL,
|
||||
`submitnews_name` varchar(100) NOT NULL DEFAULT '',
|
||||
`submitnews_email` varchar(100) NOT NULL DEFAULT '',
|
||||
`submitnews_title` varchar(200) NOT NULL DEFAULT '',
|
||||
`submitnews_category` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`submitnews_item` text NOT NULL,
|
||||
`submitnews_datestamp` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`submitnews_ip` varchar(45) NOT NULL DEFAULT '',
|
||||
`submitnews_auth` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`submitnews_file` text NOT NULL,
|
||||
`submitnews_keywords` varchar(255) NOT NULL DEFAULT '',
|
||||
`submitnews_description` text,
|
||||
`submitnews_summary` text,
|
||||
`submitnews_media` text,
|
||||
`submitnews_user` int(10) unsigned NOT NULL DEFAULT '0'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
|
||||
|
||||
|
||||
'user_extended' =>
|
||||
"CREATE TABLE `e107_user_extended` (
|
||||
`user_extended_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`user_hidden_fields` text,
|
||||
`user_country` varchar(255) DEFAULT NULL,
|
||||
`user_szulido` date NOT NULL,
|
||||
`user_tag` varchar(255) DEFAULT 'Tagsága nem él. (((',
|
||||
`user_jegyzet` text,
|
||||
`user_homepage` varchar(255) DEFAULT NULL,
|
||||
`user_tagimappa` varchar(255) DEFAULT NULL,
|
||||
`user_belepesi` varchar(255) DEFAULT 'Egyeztetés alatt',
|
||||
`user_timezone` varchar(255) DEFAULT '+0',
|
||||
PRIMARY KEY (`user_extended_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
|
||||
|
||||
'banlist' =>
|
||||
"CREATE TABLE `e107_banlist` (
|
||||
`banlist_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`banlist_ip` varchar(100) NOT NULL DEFAULT '',
|
||||
`banlist_bantype` tinyint(3) NOT NULL DEFAULT '0',
|
||||
`banlist_datestamp` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`banlist_banexpires` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`banlist_admin` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`banlist_reason` tinytext NOT NULL,
|
||||
`banlist_notes` tinytext NOT NULL,
|
||||
PRIMARY KEY (`banlist_id`),
|
||||
KEY `banlist_datestamp` (`banlist_datestamp`),
|
||||
KEY `banlist_banexpires` (`banlist_banexpires`),
|
||||
KEY `banlist_ip` (`banlist_ip`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=182 DEFAULT CHARSET=utf8;",
|
||||
|
||||
'test_json' =>
|
||||
"CREATE TABLE `e107_test_comment` (
|
||||
`eml_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`eml_hash` varchar(20) NOT NULL,
|
||||
`eml_datestamp` int(11) unsigned NOT NULL,
|
||||
`eml_json` JSON NOT NULL,
|
||||
`eml_to` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`eml_id`),
|
||||
UNIQUE KEY `eml_hash` (`eml_hash`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
|
||||
|
||||
'test_comment' =>
|
||||
"CREATE TABLE `e107_test_comment` (
|
||||
`eml_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`eml_hash` varchar(20) NOT NULL,
|
||||
`eml_datestamp` int(11) unsigned NOT NULL,
|
||||
`eml_from` varchar(50) NOT NULL COMMENT 'This is the from field',
|
||||
`eml_to` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`eml_id`),
|
||||
UNIQUE KEY `eml_hash` (`eml_hash`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;",
|
||||
|
||||
'multiple' =>
|
||||
|
||||
"CREATE TABLE e107_plugin (
|
||||
plugin_id int(10) unsigned NOT NULL auto_increment,
|
||||
plugin_name varchar(100) NOT NULL default '',
|
||||
plugin_version varchar(10) NOT NULL default '',
|
||||
plugin_path varchar(100) NOT NULL default '',
|
||||
plugin_installflag tinyint(1) unsigned NOT NULL default '0',
|
||||
plugin_addons text NOT NULL,
|
||||
plugin_category varchar(100) NOT NULL default '',
|
||||
PRIMARY KEY (plugin_id),
|
||||
UNIQUE KEY plugin_path (plugin_path)
|
||||
) ENGINE=MyISAM;
|
||||
CREATE TABLE e107_rate (
|
||||
rate_id int(10) unsigned NOT NULL auto_increment,
|
||||
rate_table varchar(100) NOT NULL default '',
|
||||
rate_itemid int(10) unsigned NOT NULL default '0',
|
||||
rate_rating int(10) unsigned NOT NULL default '0',
|
||||
rate_votes int(10) unsigned NOT NULL default '0',
|
||||
rate_voters text NOT NULL,
|
||||
rate_up int(10) unsigned NOT NULL default '0',
|
||||
rate_down int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (rate_id)
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
"
|
||||
);
|
||||
|
||||
$expected = array(
|
||||
|
||||
'missing_index' => array (
|
||||
'tables' =>
|
||||
array (
|
||||
0 => 'submitnews',
|
||||
),
|
||||
'data' =>
|
||||
array (
|
||||
0 => '`submitnews_id` int(10) unsigned NOT NULL,
|
||||
`submitnews_name` varchar(100) NOT NULL DEFAULT \'\',
|
||||
`submitnews_email` varchar(100) NOT NULL DEFAULT \'\',
|
||||
`submitnews_title` varchar(200) NOT NULL DEFAULT \'\',
|
||||
`submitnews_category` tinyint(3) unsigned NOT NULL DEFAULT \'0\',
|
||||
`submitnews_item` text NOT NULL,
|
||||
`submitnews_datestamp` int(10) unsigned NOT NULL DEFAULT \'0\',
|
||||
`submitnews_ip` varchar(45) NOT NULL DEFAULT \'\',
|
||||
`submitnews_auth` tinyint(3) unsigned NOT NULL DEFAULT \'0\',
|
||||
`submitnews_file` text NOT NULL,
|
||||
`submitnews_keywords` varchar(255) NOT NULL DEFAULT \'\',
|
||||
`submitnews_description` text,
|
||||
`submitnews_summary` text,
|
||||
`submitnews_media` text,
|
||||
`submitnews_user` int(10) unsigned NOT NULL DEFAULT \'0\'',
|
||||
),
|
||||
'engine' =>
|
||||
array (
|
||||
0 => 'MyISAM',
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
'user_extended' => array (
|
||||
'tables' =>
|
||||
array (
|
||||
0 => 'user_extended',
|
||||
),
|
||||
'data' =>
|
||||
array (
|
||||
0 => '`user_extended_id` int(10) unsigned NOT NULL DEFAULT \'0\',
|
||||
`user_hidden_fields` text,
|
||||
`user_country` varchar(255) DEFAULT NULL,
|
||||
`user_szulido` date NOT NULL,
|
||||
`user_tag` varchar(255) DEFAULT \'Tagsága nem él. (((\',
|
||||
`user_jegyzet` text,
|
||||
`user_homepage` varchar(255) DEFAULT NULL,
|
||||
`user_tagimappa` varchar(255) DEFAULT NULL,
|
||||
`user_belepesi` varchar(255) DEFAULT \'Egyeztetés alatt\',
|
||||
`user_timezone` varchar(255) DEFAULT \'+0\',
|
||||
PRIMARY KEY (`user_extended_id`)',
|
||||
),
|
||||
'engine' =>
|
||||
array (
|
||||
0 => 'MyISAM',
|
||||
),
|
||||
),
|
||||
|
||||
'banlist' => array (
|
||||
'tables' =>
|
||||
array (
|
||||
0 => 'banlist',
|
||||
),
|
||||
'data' =>
|
||||
array (
|
||||
0 => '`banlist_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`banlist_ip` varchar(100) NOT NULL DEFAULT \'\',
|
||||
`banlist_bantype` tinyint(3) NOT NULL DEFAULT \'0\',
|
||||
`banlist_datestamp` int(10) unsigned NOT NULL DEFAULT \'0\',
|
||||
`banlist_banexpires` int(10) unsigned NOT NULL DEFAULT \'0\',
|
||||
`banlist_admin` smallint(5) unsigned NOT NULL DEFAULT \'0\',
|
||||
`banlist_reason` tinytext NOT NULL,
|
||||
`banlist_notes` tinytext NOT NULL,
|
||||
PRIMARY KEY (`banlist_id`),
|
||||
KEY `banlist_datestamp` (`banlist_datestamp`),
|
||||
KEY `banlist_banexpires` (`banlist_banexpires`),
|
||||
KEY `banlist_ip` (`banlist_ip`)',
|
||||
),
|
||||
'engine' =>
|
||||
array (
|
||||
0 => 'MyISAM',
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
'test_json' => array (
|
||||
'tables' =>
|
||||
array (
|
||||
0 => 'test_comment',
|
||||
),
|
||||
'data' =>
|
||||
array (
|
||||
0 => '`eml_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`eml_hash` varchar(20) NOT NULL,
|
||||
`eml_datestamp` int(11) unsigned NOT NULL,
|
||||
`eml_json` JSON NOT NULL,
|
||||
`eml_to` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`eml_id`),
|
||||
UNIQUE KEY `eml_hash` (`eml_hash`)',
|
||||
),
|
||||
'engine' =>
|
||||
array (
|
||||
0 => 'MyISAM',
|
||||
),
|
||||
),
|
||||
|
||||
'test_comment' => array (
|
||||
'tables' =>
|
||||
array (
|
||||
0 => 'test_comment',
|
||||
),
|
||||
'data' =>
|
||||
array (
|
||||
0 => '`eml_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`eml_hash` varchar(20) NOT NULL,
|
||||
`eml_datestamp` int(11) unsigned NOT NULL,
|
||||
`eml_from` varchar(50) NOT NULL COMMENT \'This is the from field\',
|
||||
`eml_to` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`eml_id`),
|
||||
UNIQUE KEY `eml_hash` (`eml_hash`)',
|
||||
),
|
||||
'engine' =>
|
||||
array (
|
||||
0 => 'InnoDB',
|
||||
),
|
||||
),
|
||||
|
||||
'multiple' =>
|
||||
array (
|
||||
'tables' =>
|
||||
array (
|
||||
0 => 'plugin',
|
||||
1 => 'rate',
|
||||
),
|
||||
'data' =>
|
||||
array (
|
||||
0 => 'plugin_id int(10) unsigned NOT NULL auto_increment,
|
||||
plugin_name varchar(100) NOT NULL default \'\',
|
||||
plugin_version varchar(10) NOT NULL default \'\',
|
||||
plugin_path varchar(100) NOT NULL default \'\',
|
||||
plugin_installflag tinyint(1) unsigned NOT NULL default \'0\',
|
||||
plugin_addons text NOT NULL,
|
||||
plugin_category varchar(100) NOT NULL default \'\',
|
||||
PRIMARY KEY (plugin_id),
|
||||
UNIQUE KEY plugin_path (plugin_path)',
|
||||
1 => 'rate_id int(10) unsigned NOT NULL auto_increment,
|
||||
rate_table varchar(100) NOT NULL default \'\',
|
||||
rate_itemid int(10) unsigned NOT NULL default \'0\',
|
||||
rate_rating int(10) unsigned NOT NULL default \'0\',
|
||||
rate_votes int(10) unsigned NOT NULL default \'0\',
|
||||
rate_voters text NOT NULL,
|
||||
rate_up int(10) unsigned NOT NULL default \'0\',
|
||||
rate_down int(10) unsigned NOT NULL default \'0\',
|
||||
PRIMARY KEY (rate_id)',
|
||||
),
|
||||
'engine' =>
|
||||
array (
|
||||
0 => 'MyISAM',
|
||||
1 => 'MyISAM',
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
|
||||
);
|
||||
|
||||
|
||||
foreach($tests as $table => $sql)
|
||||
{
|
||||
|
||||
$actual = $this->dbv->getSqlFileTables($sql);
|
||||
|
||||
$this->assertEquals($actual['tables'], $expected[$table]['tables'], "Table ".$table." could not be parsed.");
|
||||
|
||||
foreach($expected[$table]['data'] as $k=>$data)
|
||||
{
|
||||
$data = str_replace("\t", '', $data);
|
||||
$this->assertEquals($actual['data'][$k], $data, "Table ".$table."['data'][".$k."] did not match.");
|
||||
}
|
||||
|
||||
$this->assertEquals($actual['engine'], $expected[$table]['engine']);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function testPrepareResults()
|
||||
{
|
||||
|
||||
$fileData = array();
|
||||
$sqlData = array();
|
||||
|
||||
$sql = "`schedule_id` int(10) unsigned NOT NULL auto_increment,
|
||||
`schedule_user_id` int(11) NOT NULL,
|
||||
`schedule_invoice_id` int(11) NOT NULL,
|
||||
`schedule_name` varchar(50) NOT NULL default '',
|
||||
`schedule_location` varchar(50) NOT NULL default '',
|
||||
`schedule_data` LONGTEXT DEFAULT NULL,
|
||||
`schedule_results` text NOT NULL,
|
||||
PRIMARY KEY (`schedule_id`);";
|
||||
|
||||
$file = "`schedule_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`schedule_user_id` int(11) NOT NULL,
|
||||
`schedule_invoice_id` int(11) NOT NULL,
|
||||
`schedule_name` varchar(100) NOT NULL DEFAULT '',
|
||||
`schedule_location` varchar(50) NOT NULL DEFAULT '',
|
||||
`schedule_begin_date` int(11) NOT NULL,
|
||||
`schedule_data` JSON DEFAULT NULL,
|
||||
`schedule_results` text NOT NULL,
|
||||
PRIMARY KEY (`schedule_id`),
|
||||
UNIQUE KEY `schedule_user_id` (`schedule_user_id`),
|
||||
KEY `schedule_invoice_id` (`schedule_invoice_id`)
|
||||
";
|
||||
|
||||
|
||||
$fileData['field'] = $this->dbv->getFields($file);
|
||||
$sqlData['field'] = $this->dbv->getFields($sql);
|
||||
|
||||
$fileData['index'] = $this->dbv->getIndex($file);
|
||||
$sqlData['index'] = $this->dbv->getIndex($sql);
|
||||
|
||||
|
||||
$this->dbv->prepareResults('schedule', 'myplugin', $sqlData, $fileData);
|
||||
|
||||
$resultFields = $this->dbv->getResults('fields');
|
||||
$expected = array(
|
||||
'schedule' =>
|
||||
array(
|
||||
'schedule_id' =>
|
||||
array(
|
||||
'_status' => 'ok',
|
||||
),
|
||||
'schedule_user_id' =>
|
||||
array(
|
||||
'_status' => 'ok',
|
||||
),
|
||||
'schedule_invoice_id' =>
|
||||
array(
|
||||
'_status' => 'ok',
|
||||
),
|
||||
'schedule_name' =>
|
||||
array(
|
||||
'_status' => 'mismatch',
|
||||
'_diff' =>
|
||||
array(
|
||||
'value' => '100',
|
||||
),
|
||||
'_valid' =>
|
||||
array(
|
||||
'type' => 'VARCHAR',
|
||||
'value' => '100',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'\'',
|
||||
),
|
||||
'_invalid' =>
|
||||
array(
|
||||
'type' => 'VARCHAR',
|
||||
'value' => '50',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => 'DEFAULT \'\'',
|
||||
),
|
||||
'_file' => 'myplugin',
|
||||
),
|
||||
'schedule_location' =>
|
||||
array(
|
||||
'_status' => 'ok',
|
||||
),
|
||||
'schedule_begin_date' =>
|
||||
array(
|
||||
'_status' => 'missing_field',
|
||||
'_valid' =>
|
||||
array(
|
||||
'type' => 'INT',
|
||||
'value' => '11',
|
||||
'attributes' => '',
|
||||
'null' => 'NOT NULL',
|
||||
'default' => '',
|
||||
),
|
||||
'_file' => 'myplugin',
|
||||
),
|
||||
'schedule_data' =>
|
||||
array(
|
||||
'_status' => 'ok',
|
||||
),
|
||||
'schedule_results' =>
|
||||
array(
|
||||
'_status' => 'ok',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
$this->assertEquals($expected, $resultFields);
|
||||
|
||||
|
||||
$resultIndices = $this->dbv->getResults('indices');
|
||||
$expected = array(
|
||||
'schedule' =>
|
||||
array(
|
||||
'schedule_id' =>
|
||||
array(
|
||||
'_status' => 'ok',
|
||||
),
|
||||
'schedule_user_id' =>
|
||||
array(
|
||||
'_status' => 'missing_index',
|
||||
'_valid' =>
|
||||
array(
|
||||
'type' => 'UNIQUE',
|
||||
'keyname' => 'schedule_user_id',
|
||||
'field' => 'schedule_user_id',
|
||||
),
|
||||
'_file' => 'myplugin',
|
||||
),
|
||||
'schedule_invoice_id' =>
|
||||
array(
|
||||
'_status' => 'missing_index',
|
||||
'_valid' =>
|
||||
array(
|
||||
'type' => '',
|
||||
'keyname' => 'schedule_invoice_id',
|
||||
'field' => 'schedule_invoice_id',
|
||||
),
|
||||
'_file' => 'myplugin',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$this->assertEquals($expected, $resultIndices);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
public function testFixForm()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRunComparison()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCompileResults()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetSqlLanguages()
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
31
e107_tests/tests/unit/e107/Shims/InternalAlternateTest.php
Normal file
31
e107_tests/tests/unit/e107/Shims/InternalAlternateTest.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
namespace e107\Shims;
|
||||
|
||||
function readfile($filename, $use_include_path = FALSE, $context = NULL)
|
||||
{
|
||||
foreach(debug_backtrace(false) as $line)
|
||||
{
|
||||
if ($line['class'] == InternalAlternateTest::class)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return @\readfile($filename, $use_include_path, $context);
|
||||
}
|
||||
|
||||
class InternalAlternateTest extends eShimsTest
|
||||
{
|
||||
public function testReadfile()
|
||||
{
|
||||
$this->testReadfileImplementation(array(InternalShims::class, 'readfile'));
|
||||
}
|
||||
}
|
37
e107_tests/tests/unit/e107/Shims/eShimsTest.php
Normal file
37
e107_tests/tests/unit/e107/Shims/eShimsTest.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
namespace e107\Shims;
|
||||
|
||||
class eShimsTest extends \Codeception\Test\Unit
|
||||
{
|
||||
public function testReadfile()
|
||||
{
|
||||
$this->testReadfileImplementation(array(\eShims::class, 'readfile'));
|
||||
}
|
||||
|
||||
public function testReadfileAlt()
|
||||
{
|
||||
$this->testReadfileImplementation(array(\eShims::class, 'readfile_alt'));
|
||||
}
|
||||
|
||||
protected function testReadfileImplementation($implementation)
|
||||
{
|
||||
$tmp_handle = tmpfile();
|
||||
$tmp_filename = stream_get_meta_data($tmp_handle)['uri'];
|
||||
$garbage = str_pad('', 16384, 'x');
|
||||
fwrite($tmp_handle, $garbage);
|
||||
ob_start();
|
||||
call_user_func($implementation, $tmp_filename);
|
||||
$output = ob_get_clean();
|
||||
fclose($tmp_handle);
|
||||
$this->assertEquals($garbage, $output);
|
||||
}
|
||||
}
|
70
e107_tests/tests/unit/e107BounceTest.php
Normal file
70
e107_tests/tests/unit/e107BounceTest.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e107BounceTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e107Bounce */
|
||||
protected $bnc;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
// define('e107_INIT', true);
|
||||
parent::_before();
|
||||
global $_E107;
|
||||
|
||||
$_E107['phpunit'] = true;
|
||||
|
||||
require_once(e_HANDLER."bounce_handler.php");
|
||||
try
|
||||
{
|
||||
$this->bnc = $this->make('e107Bounce');
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e107Bounce object");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testProcess()
|
||||
{
|
||||
$path = $icon = codecept_data_dir()."eml/bounced_01.eml";
|
||||
|
||||
$this->bnc->setSource($path);
|
||||
$result = $this->bnc->process(false);
|
||||
$this->assertEquals("99999999", $result);
|
||||
}
|
||||
|
||||
public function testSetUser_Bounced()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test__construct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetHeader()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMailRead()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
1019
e107_tests/tests/unit/e107Test.php
Normal file
1019
e107_tests/tests/unit/e107Test.php
Normal file
File diff suppressed because it is too large
Load Diff
135
e107_tests/tests/unit/e107_db_debugTest.php
Normal file
135
e107_tests/tests/unit/e107_db_debugTest.php
Normal file
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Wiz
|
||||
* Date: 2/10/2019
|
||||
* Time: 2:21 PM
|
||||
*/
|
||||
|
||||
|
||||
class e107_db_debugTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e107_db_debug */
|
||||
protected $dbg;
|
||||
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$this->dbg = $this->make('e107_db_debug');
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e107_db_debug object");
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
public function testShowIf()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testShow_Log()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testShow_Includes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSave()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testShow_DEPRECATED()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
public function testLog()
|
||||
{
|
||||
$res = $this->dbg->log('hello world');
|
||||
$this->assertTrue($res, 'db_debug->log() method returned false.');
|
||||
|
||||
|
||||
$result = $this->dbg->Show_Log();
|
||||
$this->assertContains('e107_db_debugTest->testLog()',$result);
|
||||
|
||||
}
|
||||
/*
|
||||
public function testLogCode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLogDeprecated()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test__construct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testE107_db_debug()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testShow_SQL_Details()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testShow_SC_BB()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testShow_All()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCountLabel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMark_Time()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMark_Query()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testShow_Performance()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testShow_PATH()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDump()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
}
|
311
e107_tests/tests/unit/e107_user_extendedTest.php
Normal file
311
e107_tests/tests/unit/e107_user_extendedTest.php
Normal file
@@ -0,0 +1,311 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e107_user_extendedTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
private $typeArray;
|
||||
|
||||
/** @var e107_user_extended */
|
||||
protected $ue;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$this->ue = $this->make('e107_user_extended');
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e107_user_extended object");
|
||||
}
|
||||
|
||||
|
||||
|
||||
$this->ue->__construct();
|
||||
|
||||
$this->typeArray = array(
|
||||
'text' => EUF_TEXT,
|
||||
'radio' => EUF_RADIO,
|
||||
'dropdown' => EUF_DROPDOWN,
|
||||
'db field' => EUF_DB_FIELD,
|
||||
'textarea' => EUF_TEXTAREA,
|
||||
'integer' => EUF_INTEGER,
|
||||
'date' => EUF_DATE,
|
||||
'language' => EUF_LANGUAGE,
|
||||
'list' => EUF_PREDEFINED,
|
||||
'checkbox' => EUF_CHECKBOX,
|
||||
'predefined' => EUF_PREFIELD, // Used in plugin installation routine.
|
||||
'addon' => EUF_ADDON,
|
||||
'country' => EUF_COUNTRY,
|
||||
'richtextarea' => EUF_RICHTEXTAREA,
|
||||
);
|
||||
|
||||
|
||||
// Add a field of each type.
|
||||
foreach($this->typeArray as $k=>$v)
|
||||
{
|
||||
$this->ue->user_extended_add($k, ucfirst($k), $v );
|
||||
}
|
||||
|
||||
$this->ue->init();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function testGetStructure()
|
||||
{
|
||||
$result = $this->ue->getStructure();
|
||||
|
||||
foreach($this->typeArray as $k=>$v)
|
||||
{
|
||||
$key = 'user_'.$k;
|
||||
$this->assertArrayHasKey($key,$result);
|
||||
$this->assertEquals($k, $result[$key]['user_extended_struct_name']);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGetFieldList()
|
||||
{
|
||||
$list = $this->ue->getFieldList();
|
||||
|
||||
}
|
||||
*/
|
||||
public function testGetFieldType()
|
||||
{
|
||||
$result = $this->ue->getFieldType('user_radio');
|
||||
|
||||
$this->assertEquals(EUF_RADIO,$result);
|
||||
}
|
||||
/*
|
||||
public function testUser_extended_getvalue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHasPermission()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testGetFieldTypes()
|
||||
{
|
||||
$result = $this->ue->getFieldTypes();
|
||||
|
||||
$expected = array (
|
||||
1 => 'Text Box',
|
||||
2 => 'Radio Buttons',
|
||||
3 => 'Drop-Down Menu',
|
||||
4 => 'DB Table Field',
|
||||
5 => 'Textarea',
|
||||
14 => 'Rich Textarea (WYSIWYG)',
|
||||
6 => 'Integer',
|
||||
7 => 'Date',
|
||||
8 => 'Language',
|
||||
9 => 'Predefined list',
|
||||
10 => 'Checkboxes',
|
||||
13 => 'Country',
|
||||
);
|
||||
|
||||
|
||||
$this->assertEquals($expected,$result);
|
||||
|
||||
}
|
||||
|
||||
public function testSanitizeAll()
|
||||
{
|
||||
$posted = array(
|
||||
'user_text' => "Some text",
|
||||
'user_radio' => "1",
|
||||
'user_dropdown' => "drop-value-1",
|
||||
'user_db field' => "extra",
|
||||
'user_textarea' => "Some text",
|
||||
'user_integer' => "3",
|
||||
'user_date' => "2000-01-03",
|
||||
'user_language' => "English",
|
||||
'user_list' => "list-item",
|
||||
'user_checkbox' => "1",
|
||||
'user_predefined' => "pre-value", // Used in plugin installation routine.
|
||||
'user_addon' => "pre-value",
|
||||
'user_country' => "USA",
|
||||
'user_richtextarea' => "[html]<p>Some text</p>[/html]",
|
||||
|
||||
|
||||
);
|
||||
|
||||
$expected = array(
|
||||
'user_text' => 'Some text',
|
||||
'user_radio' => '1',
|
||||
'user_dropdown' => 'drop-value-1',
|
||||
'user_db field' => 'extra',
|
||||
'user_textarea' => 'Some text',
|
||||
'user_integer' => 3,
|
||||
'user_date' => '2000-01-03',
|
||||
'user_language' => 'English',
|
||||
'user_list' => 'list-item',
|
||||
'user_checkbox' => '1',
|
||||
'user_predefined' => 'pre-value',
|
||||
'user_addon' => 'pre-value',
|
||||
'user_country' => 'USA',
|
||||
'user_richtextarea' => "[html]<p>Some text</p>[/html]",
|
||||
);
|
||||
|
||||
|
||||
$result = $this->ue->sanitizeAll($posted);
|
||||
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
}
|
||||
/*
|
||||
public function testUser_extended_edit()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParse_extended_xml()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetCategories()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderValue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetFieldNames()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_modify()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_remove()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSet()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_get_categories()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddDefaultFields()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_get_fields()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_type_text()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_hide()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddFieldTypes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_setvalue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetFields()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGet()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_field_exist()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_add()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_display_text()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUserExtendedValidateAll()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testClear_cache()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_reserved()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_add_system()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_getStruct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_validate_entry()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_extended_get_fieldList()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
}
|
548
e107_tests/tests/unit/e107pluginTest.php
Normal file
548
e107_tests/tests/unit/e107pluginTest.php
Normal file
@@ -0,0 +1,548 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e107pluginTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e107plugin */
|
||||
protected $ep;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->ep = $this->make('e107plugin');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't e107_plugin object");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function testGetPluginRecord()
|
||||
{
|
||||
$obj = $this->ep;
|
||||
$result = $obj::getPluginRecord('banner');
|
||||
|
||||
// print_r($result);
|
||||
|
||||
$this->assertEquals("LAN_PLUGIN_BANNER_NAME", $result['plugin_name']);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
public function testDisplayArray()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testExecute_function()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_plugin_prefs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInstall()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetall()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testXmlPrefs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParse_plugin_php()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRefresh()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUninstall()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRebuildUrlConfig()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_icons()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParse_plugin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_comments()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_search()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInstall_plugin_xml()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAddonsDiz()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUpdate_plugins_table()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testXmlBBcodes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInstall_plugin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_extended_field_sql()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUpdateRequired()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetCorePlugins()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_prefs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetPerm()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAddonsList()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testXmlExtendedFields()
|
||||
{
|
||||
// $ret = $this->ep->parse_plugin_xml('_blank');
|
||||
// var_export($this->ep->plug_vars);
|
||||
|
||||
$this->ep->plugFolder = 'test';
|
||||
|
||||
$extendedVars = array (
|
||||
'field' => array (
|
||||
0 => array (
|
||||
'@attributes' => array ('name' => 'custom', 'type' => 'EUF_TEXTAREA', 'default' => '0', 'active' => 'true',),
|
||||
'@value' => '',
|
||||
),
|
||||
1 => array (
|
||||
'@attributes' => array ('name' => 'custom2', 'type' => 'EUF_ADDON', 'data' => 'str', 'default' => '0', 'active' => 'true', 'system' => 'false', 'text' => 'My Label' ),
|
||||
'@value' => '',
|
||||
),
|
||||
|
||||
2 => array (
|
||||
'@attributes' => array ('name' => 'custom3', 'type' => 'EUF_ADDON', 'data' => 'str', 'default' => 'hello', 'active' => 'true', 'system' => 'true', 'text' => 'Another Label' ),
|
||||
'@value' => '',
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
$expected = array (
|
||||
0 => array (
|
||||
'name' => 'plugin_test_custom',
|
||||
'attrib' =>array ( 'name' => 'custom', 'type' => 'EUF_TEXTAREA', 'default' => '0', 'active' => 'true', 'deprecate' => NULL, 'system' => true, ),
|
||||
'source' => 'plugin_test',
|
||||
),
|
||||
1 => array (
|
||||
'name' => 'plugin_test_custom2',
|
||||
'attrib' =>array ( 'name' => 'custom2', 'type' => 'EUF_ADDON', 'data' => 'str', 'default' => '0', 'active' => 'true', 'system' => false, 'text' => 'My Label', 'deprecate' => NULL, ),
|
||||
'source' => 'plugin_test',
|
||||
),
|
||||
2 => array (
|
||||
'name' => 'plugin_test_custom3',
|
||||
'attrib' =>array ( 'name' => 'custom3', 'type' => 'EUF_ADDON', 'data' => 'str', 'default' => 'hello', 'active' => 'true', 'system' => true, 'text' => 'Another Label', 'deprecate' => NULL, ),
|
||||
'source' => 'plugin_test',
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
|
||||
$result = $this->ep->XmlExtendedFields('test', $extendedVars);
|
||||
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
// var_export($result);
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGetAddons()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUe_field_type()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_userclass()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testXmlSiteLinks()
|
||||
{
|
||||
$plugVars = array (
|
||||
'@attributes' =>
|
||||
array (
|
||||
'name' => 'Multiple Languages',
|
||||
'lan' => '',
|
||||
'version' => '1.0.3',
|
||||
'date' => '2015-06-04',
|
||||
'compatibility' => '2.0',
|
||||
'installRequired' => 'true',
|
||||
),
|
||||
'author' =>
|
||||
array (
|
||||
'@attributes' =>
|
||||
array (
|
||||
'name' => 'cameron',
|
||||
'url' => 'http://e107.org',
|
||||
),
|
||||
'@value' => '',
|
||||
),
|
||||
'summary' =>
|
||||
array (
|
||||
'@attributes' =>
|
||||
array (
|
||||
'lan' => '',
|
||||
),
|
||||
'@value' => 'Multi-Language tools for e107',
|
||||
),
|
||||
'description' =>
|
||||
array (
|
||||
'@attributes' =>
|
||||
array (
|
||||
'lan' => '',
|
||||
),
|
||||
'@value' => 'Multi-Language tools for e107',
|
||||
),
|
||||
'keywords' =>
|
||||
array (
|
||||
'word' =>
|
||||
array (
|
||||
0 => 'multilanguage',
|
||||
1 => 'sync',
|
||||
),
|
||||
),
|
||||
'category' => 'manage',
|
||||
'copyright' => '',
|
||||
'adminLinks' =>
|
||||
array (
|
||||
'link' =>
|
||||
array (
|
||||
0 =>
|
||||
array (
|
||||
'@attributes' =>
|
||||
array (
|
||||
'url' => 'admin_config.php',
|
||||
'description' => '',
|
||||
'icon' => 'images/multilan_32.png',
|
||||
'iconSmall' => 'images/multilan_16.png',
|
||||
'icon128' => 'images/multilan_128.png',
|
||||
'primary' => 'true',
|
||||
),
|
||||
'@value' => 'LAN_CONFIGURE',
|
||||
),
|
||||
),
|
||||
),
|
||||
'siteLinks' =>
|
||||
array (
|
||||
'link' =>
|
||||
array (
|
||||
0 =>
|
||||
array (
|
||||
'@attributes' =>
|
||||
array (
|
||||
'url' => '#',
|
||||
'function' => 'language',
|
||||
'icon' => '',
|
||||
'description' => 'Choose Language',
|
||||
'perm' => 'admin',
|
||||
),
|
||||
'@value' => 'LAN_MULTILAN_NAVICON',
|
||||
),
|
||||
),
|
||||
),
|
||||
'userClasses' =>
|
||||
array (
|
||||
'class' =>
|
||||
array (
|
||||
0 =>
|
||||
array (
|
||||
'@attributes' =>
|
||||
array (
|
||||
'name' => 'TRANSLATE_ME',
|
||||
'description' => 'Items requiring translation and the team members who do it.',
|
||||
),
|
||||
'@value' => '',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'@attributes' =>
|
||||
array (
|
||||
'name' => 'REVIEW_ME',
|
||||
'description' => 'Items that have been auto-translated and require reivew and the team members who do it.',
|
||||
),
|
||||
'@value' => '',
|
||||
),
|
||||
),
|
||||
),
|
||||
'folder' => 'multilan',
|
||||
'files' =>
|
||||
array (
|
||||
3 => 'admin_config.php',
|
||||
4 => 'bing.class.php',
|
||||
5 => 'e_admin.php',
|
||||
6 => 'e_footer.php',
|
||||
7 => 'e_help.php',
|
||||
8 => 'e_meta.php',
|
||||
9 => 'e_module.php',
|
||||
10 => 'e_shortcode.php',
|
||||
11 => 'e_sitelink.php',
|
||||
12 => 'images',
|
||||
13 => 'multilan.css',
|
||||
14 => 'multilan.zip',
|
||||
15 => 'plugin.xml',
|
||||
16 => 'README.md',
|
||||
17 => 'test.php',
|
||||
),
|
||||
'administration' =>
|
||||
array (
|
||||
'icon' => 'images/multilan_32.png',
|
||||
'caption' => '',
|
||||
'iconSmall' => 'images/multilan_16.png',
|
||||
'configFile' => 'admin_config.php',
|
||||
),
|
||||
);
|
||||
|
||||
$status = $this->ep->XmlSiteLinks('install', $plugVars);
|
||||
|
||||
$this->assertTrue($status, "Site link insertion failed");
|
||||
|
||||
$actual = e107::getDb()->retrieve('links', '*', "link_owner = 'multilan' ");
|
||||
|
||||
$expected = array (
|
||||
'link_id' => '12',
|
||||
'link_name' => 'LAN_MULTILAN_NAVICON',
|
||||
'link_url' => '#',
|
||||
'link_description' => '',
|
||||
'link_button' => '',
|
||||
'link_category' => '1',
|
||||
'link_order' => '11',
|
||||
'link_parent' => '0',
|
||||
'link_open' => '0',
|
||||
'link_class' => '254',
|
||||
'link_function' => 'multilan::language',
|
||||
'link_sefurl' => '',
|
||||
'link_owner' => 'multilan',
|
||||
);
|
||||
|
||||
$unimportant_keys = ['link_id', 'link_order'];
|
||||
foreach ($unimportant_keys as $unimportant_key)
|
||||
{
|
||||
unset($expected[$unimportant_key]);
|
||||
unset($actual[$unimportant_key]);
|
||||
}
|
||||
|
||||
// Filter out cruft from e_LEGACY_MODE database output
|
||||
foreach ($actual as $key => $value)
|
||||
{
|
||||
if (is_int($key)) unset($actual[$key]);
|
||||
}
|
||||
|
||||
$this->assertEquals($expected,$actual);
|
||||
|
||||
$status = $this->ep->XmlSiteLinks('uninstall',$plugVars);
|
||||
|
||||
$this->assertTrue($status);
|
||||
|
||||
$tmp = e107::getDb()->retrieve('links', '*', "link_owner = 'multilan' ");
|
||||
|
||||
$actual = (empty($tmp)) ? true : false;
|
||||
|
||||
$this->assertTrue($actual, "Link still exists after supposed removal");
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGetIcon()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testXmlLanguageFileCheck()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetUe()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_tables()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInstall_plugin_php()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testXmlMediaCategories()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testXmlDependencies()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testXmlTables()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testXmlUserClasses()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckAddon()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_notify()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUe_field_type_name()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_link()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUe_field_name()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsUsedByAnotherPlugin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetOtherPlugins()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetLog()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_category()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetinfo()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testXmlAdminLinks()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testXmlLanguageFiles()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testManage_extended_field()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParse_plugin_xml()
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
101
e107_tests/tests/unit/e107tableTest.php
Normal file
101
e107_tests/tests/unit/e107tableTest.php
Normal file
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e107tableTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e107table */
|
||||
protected $ns;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$this->ns = $this->make('e107table');
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e107table object");
|
||||
}
|
||||
|
||||
$this->ns->__construct();
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGetStyle()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetUniqueId()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
public function testSetGetContent()
|
||||
{
|
||||
|
||||
$unique = 'news-view-default';
|
||||
|
||||
$this->ns->setUniqueId($unique);
|
||||
$this->ns->setContent('title', 'news-title');
|
||||
$this->ns->setContent('text', 'news-summary');
|
||||
$this->ns->setUniqueId(false); // reset the ID.
|
||||
|
||||
$this->ns->tablerender('caption', 'other', 'default', true); // render a different table.
|
||||
|
||||
$result = $this->ns->setUniqueId($unique)->getContent(); // get content using uniqueId.
|
||||
$expected = array ( 'title' => 'news-title', 'text' => 'news-summary', );
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
|
||||
$result = $this->ns->getContent('title');
|
||||
$this->assertEquals('news-title', $result);
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGetMagicShortcodes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetContent()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetMainCaption()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testTablerender()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetStyle()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetUniqueId()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
}
|
147
e107_tests/tests/unit/eHelperTest.php
Normal file
147
e107_tests/tests/unit/eHelperTest.php
Normal file
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class eHelperTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/** @var eHelper */
|
||||
protected $hp;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->hp = $this->make('eHelper');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->fail("Couldn't load eHelper object");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
public function testFormatMetaTitle()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFormatMetaKeys()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetMemoryUsage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUnderscore()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFormatMetaDescription()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSecureIdAttr()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testTitle2sefFromPlainText()
|
||||
{
|
||||
$actual = $this->hp->title2sef('Plain text test');
|
||||
$expected = 'plain-text-test';
|
||||
|
||||
$this->assertEquals($expected, $actual);
|
||||
}
|
||||
|
||||
public function testTitle2sefFromPlainTextStripSpecialChars()
|
||||
{
|
||||
$actual = $this->hp->title2sef('Plain text test with special chars !()+*+#"\'\\');
|
||||
$expected = 'plain-text-test-with-special-chars';
|
||||
|
||||
$this->assertEquals($expected, $actual);
|
||||
}
|
||||
|
||||
public function testTitle2sefFromBbcodeText()
|
||||
{
|
||||
$actual = $this->hp->title2sef('BBCode [b]text[/b] test [img]logo.png[/img]');
|
||||
$expected = 'bbcode-text-test';
|
||||
|
||||
$this->assertEquals($expected, $actual);
|
||||
}
|
||||
|
||||
public function testTitle2sefFromHtmlText()
|
||||
{
|
||||
$actual = $this->hp->title2sef('HTML <b>text</b> test <img src="logo.png" />');
|
||||
$expected = 'html-text-test';
|
||||
|
||||
$this->assertEquals($expected, $actual);
|
||||
}
|
||||
|
||||
/*
|
||||
public function testCamelize()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testScParams()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLabelize()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSecureClassAttr()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSecureStyleAttr()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testScDualParams()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDasherize()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParseMemorySize()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testBuildAttr()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSecureSef()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
}
|
136
e107_tests/tests/unit/e_admin_logTest.php
Normal file
136
e107_tests/tests/unit/e_admin_logTest.php
Normal file
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_admin_logTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_admin_log */
|
||||
protected $log;
|
||||
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$this->log = $this->make('e_admin_log');
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_admin_log object");
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
public function testAddSuccess()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddDebug()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLogError()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLogSuccess()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUser_audit()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddArray()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLogMessage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddWarning()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPurge_log_events()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testE_log_event()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSave()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLogArrayAll()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFlushMessages()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddError()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testClear()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAdd()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetCurrentPlugin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLogArrayDiffs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLog_event()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
}
|
294
e107_tests/tests/unit/e_admin_uiTest.php
Normal file
294
e107_tests/tests/unit/e_admin_uiTest.php
Normal file
@@ -0,0 +1,294 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_admin_uiTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
|
||||
public function testPregReplace()
|
||||
{
|
||||
$tests = array(
|
||||
0 => array('text'=>"something", 'expected'=>"something"),
|
||||
|
||||
);
|
||||
|
||||
|
||||
foreach($tests as $var)
|
||||
{
|
||||
$result = preg_replace('/[^\w\-:.]/', '', $var['text']); // this pattern used in parts of the admin-ui.
|
||||
$this->assertEquals($var['expected'], $result);
|
||||
//var_dump($result);
|
||||
}
|
||||
|
||||
// echo array_flip(get_defined_constants(true)['pcre'])[preg_last_error()];
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
public function testListEcolumnsTrigger()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testBatchTriggered()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testListBatchTrigger()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGridBatchTrigger()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHandleCommaBatch()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testListDeleteTrigger()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testBeforeDelete()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAfterDelete()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testListHeader()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testListObserver()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGridObserver()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFilterAjaxPage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInlineAjaxPage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLogajax()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSortAjaxPage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testListPage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGridPage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testListAjaxObserver()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGridAjaxObserver()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testListAjaxPage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGridAjaxPage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testEditObserver()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testEditCancelTrigger()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testEditSubmitTrigger()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testEditHeader()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testEditPage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCreateObserver()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCreateCancelTrigger()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCreateSubmitTrigger()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testBeforeCreate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAfterCreate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testOnCreateError()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testBeforeUpdate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAfterUpdate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testOnUpdateError()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAfterCopy()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAfterSort()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderHelp()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCreateHeader()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCreatePage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPrefsSaveTrigger()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPrefsObserver()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPrefsPage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetPrimaryName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetTableName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetValidationRules()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetDataFields()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetDropDown()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test_setModel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test_setTreeModel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test_setUI()
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
172
e107_tests/tests/unit/e_arrayTest.php
Normal file
172
e107_tests/tests/unit/e_arrayTest.php
Normal file
@@ -0,0 +1,172 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_arrayTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/** @var e_array */
|
||||
private $arrObj;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->arrObj = $this->make('e_array');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->fail("Couldn't load e_array object");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function getSitePrefExample()
|
||||
{
|
||||
$data = '
|
||||
$data = array (
|
||||
\'email_password\' => \'$2y$10$IpizFx.gp5USl98SLXwwbeod3SYF3M3raAQX0y01ETexzoutvdyWW\',
|
||||
);
|
||||
';
|
||||
|
||||
|
||||
return (string) $data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
public function testLoad()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testUnserialize()
|
||||
{
|
||||
|
||||
$src = codecept_data_dir()."unserializeTest.log";
|
||||
$stringFile_0 = file_get_contents($src);
|
||||
$actual = $this->arrObj->unserialize($stringFile_0);
|
||||
$this->assertArrayHasKey('email_password', $actual);
|
||||
|
||||
|
||||
// Check for legacy (corrupted) link-words preferences.
|
||||
$src = codecept_data_dir()."unserializeTest2.log";
|
||||
$stringFile_1 = file_get_contents($src);
|
||||
$actual = $this->arrObj->unserialize($stringFile_1);
|
||||
$this->assertArrayHasKey('lw_context_visibility', $actual);
|
||||
|
||||
|
||||
// Buggy value test -------.
|
||||
$string_1 = "\$data = array(
|
||||
\'buggy_array\' => \'some value\',
|
||||
);
|
||||
";
|
||||
|
||||
$actual = $this->arrObj->unserialize($string_1);
|
||||
$this->assertArrayHasKey('buggy_array', $actual);
|
||||
|
||||
|
||||
// var_export format test with slashes ----
|
||||
$string_2 = "array(\'var_export\' => \'some value\',)";
|
||||
$actual = $this->arrObj->unserialize($string_2);
|
||||
$this->assertArrayHasKey('var_export', $actual);
|
||||
|
||||
|
||||
// var_export format test without slashes ----
|
||||
$string_3 = "array('var_export' => 'some value',)";
|
||||
$actual = $this->arrObj->unserialize($string_3);
|
||||
$this->assertArrayHasKey('var_export', $actual);
|
||||
|
||||
|
||||
// json value test.
|
||||
$string_4 = '{ "json": "some value" }';
|
||||
$actual = $this->arrObj->unserialize($string_4);
|
||||
$this->assertArrayHasKey('json', $actual);
|
||||
|
||||
// case linkwords prefs.
|
||||
$string_5 = "array (
|
||||
'OLDDEFAULT' => '',
|
||||
'TITLE' => '',
|
||||
'SUMMARY' => 1,
|
||||
'BODY' => 1,
|
||||
'DESCRIPTION'=> 1,
|
||||
'USER_TITLE' => '',
|
||||
'USER_BODY' => 1,
|
||||
'LINKTEXT' => '',
|
||||
'RAWTEXT' => ''
|
||||
)";
|
||||
|
||||
$actual = $this->arrObj->unserialize($string_5);
|
||||
$this->assertArrayHasKey('TITLE', $actual);
|
||||
|
||||
|
||||
define('e_DEBUG', true);
|
||||
// case sitePrefs
|
||||
// $string_6 = $this->getSitePrefExample();
|
||||
// $actual = $this->arrObj->unserialize($string_6);
|
||||
|
||||
|
||||
$tests = array(
|
||||
0 => array('string' => $this->getSitePrefExample(),
|
||||
'expected' => array('email_password' => '$2y$10$IpizFx.gp5USl98SLXwwbeod3SYF3M3raAQX0y01ETexzoutvdyWW' )
|
||||
),
|
||||
|
||||
|
||||
|
||||
);
|
||||
|
||||
foreach($tests as $var)
|
||||
{
|
||||
$result = $this->arrObj->unserialize($var['string']);
|
||||
$this->assertEquals($var['expected'], $result);
|
||||
}
|
||||
// var_dump($actual);
|
||||
|
||||
}
|
||||
/*
|
||||
|
||||
public function testStore()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testSerialize()
|
||||
{
|
||||
|
||||
$pref1 = array('hello'=>'world');
|
||||
$result1 = $this->arrObj->serialize($pref1);
|
||||
$expected1 = "array (\n 'hello' => 'world',\n)";
|
||||
$this->assertEquals($expected1,$result1);
|
||||
|
||||
$pref2 = array();
|
||||
$result2 = $this->arrObj->serialize($pref2);
|
||||
$expected2 = null;
|
||||
$this->assertEquals($expected2,$result2);
|
||||
|
||||
|
||||
$pref3 = array();
|
||||
$result3 = $this->arrObj->serialize($pref3,true);
|
||||
$expected3 = null;
|
||||
$this->assertEquals($expected3,$result3);
|
||||
|
||||
|
||||
$pref4 = array();
|
||||
$result4 = $this->arrObj->serialize($pref4,'json');
|
||||
$expected4 = null;
|
||||
$this->assertEquals($expected4,$result4);
|
||||
|
||||
$pref5 = array('hello'=>'world');
|
||||
$result5 = $this->arrObj->serialize($pref5,'json');
|
||||
$expected5 = "{\n \"hello\": \"world\"\n}";
|
||||
$this->assertEquals($expected5,$result5);
|
||||
|
||||
}
|
||||
}
|
329
e107_tests/tests/unit/e_customfieldsTest.php
Normal file
329
e107_tests/tests/unit/e_customfieldsTest.php
Normal file
@@ -0,0 +1,329 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_customfieldsTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_customfields */
|
||||
protected $cf;
|
||||
|
||||
protected $config = '{
|
||||
"__tabs__": {
|
||||
"extra": "My Tab"
|
||||
},
|
||||
"image": {
|
||||
"title": "Image",
|
||||
"type": "image",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"video": {
|
||||
"title": "Video",
|
||||
"type": "video",
|
||||
"writeParms": "",
|
||||
"help": "Youtube"
|
||||
},
|
||||
"bbarea": {
|
||||
"title": "WYSWIYG",
|
||||
"type": "bbarea",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"boolean": {
|
||||
"title": "Boolean",
|
||||
"type": "boolean",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"checkboxes": {
|
||||
"title": "Checkboxes",
|
||||
"type": "checkboxes",
|
||||
"writeParms": "{ \"default\": \"blank\", \"optArray\": { \"car\": \"Car\", \"boat\": \"Boat\", \"plane\": \"Plane\" } }",
|
||||
"help": ""
|
||||
},
|
||||
"country": {
|
||||
"title": "Country",
|
||||
"type": "country",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"datestamp": {
|
||||
"title": "Datestamp",
|
||||
"type": "datestamp",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"dropdown": {
|
||||
"title": "Dropdown",
|
||||
"type": "dropdown",
|
||||
"writeParms": "{ \"default\": \"blank\", \"optArray\": { \"blue\": \"Blue\", \"green\": \"Green\", \"red\": \"Red\" } }",
|
||||
"help": ""
|
||||
},
|
||||
"email": {
|
||||
"title": "Email",
|
||||
"type": "email",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"file": {
|
||||
"title": "File",
|
||||
"type": "file",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"icon": {
|
||||
"title": "Icon",
|
||||
"type": "icon",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"language": {
|
||||
"title": "Language",
|
||||
"type": "language",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"lanlist": {
|
||||
"title": "LanList",
|
||||
"type": "lanlist",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"number": {
|
||||
"title": "Number",
|
||||
"type": "number",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"password": {
|
||||
"title": "Password",
|
||||
"type": "password",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"radio": {
|
||||
"title": "Radio",
|
||||
"type": "radio",
|
||||
"writeParms": "{ \"optArray\": { \"yes\": \"Yes\", \"no\": \"No\", \"maybe\": \"Maybe\" } }",
|
||||
"help": ""
|
||||
},
|
||||
"tags": {
|
||||
"title": "Tags",
|
||||
"type": "tags",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"textarea": {
|
||||
"title": "Textarea",
|
||||
"type": "textarea",
|
||||
"writeParms": "size=block-level",
|
||||
"help": ""
|
||||
},
|
||||
"url": {
|
||||
"title": "Url",
|
||||
"type": "url",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"user": {
|
||||
"title": "User",
|
||||
"type": "user",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"userclass": {
|
||||
"title": "Userclass",
|
||||
"type": "userclass",
|
||||
"writeParms": "",
|
||||
"help": ""
|
||||
},
|
||||
"progressbar": {
|
||||
"title": "Progress Bar",
|
||||
"type": "progressbar",
|
||||
"writeParms": "",
|
||||
"help": "Progress bar"
|
||||
}
|
||||
}';
|
||||
|
||||
|
||||
protected $data = '{
|
||||
"image": "{e_PLUGIN}gallery\/images\/butterfly.jpg",
|
||||
"video": "WcuRPzB4RNc.youtube",
|
||||
"bbarea": "[html]<p><b>Rich text.<\/b><\/p>[\/html]",
|
||||
"boolean": "1",
|
||||
"checkboxes": "boat,plane",
|
||||
"country": "ad",
|
||||
"datestamp": "1484267751",
|
||||
"dropdown": "red",
|
||||
"email": "my@email.com",
|
||||
"file": "{e_MEDIA_FILE}2016-04\/e107_banners.zip",
|
||||
"icon": "fa-check.glyph",
|
||||
"language": "fr",
|
||||
"lanlist": "en",
|
||||
"number": "0",
|
||||
"password": "a8f5f167f44f4964e6c998dee827110c",
|
||||
"tags": "tag1,tag2,tag3",
|
||||
"textarea": "Plain text",
|
||||
"url": "http:\/\/something.com",
|
||||
"user": "1",
|
||||
"userclass": "0",
|
||||
"progressbar": "75"
|
||||
}';
|
||||
|
||||
protected $posted = array ('__e_customfields_tabs__'=>"My New Tab", 'e-token' => '1dbda78672ac3b1bd8f73f8c158d0291', 'chapter_icon' => '', 'mediameta_chapter_icon' => '', 'chapter_parent' => '1', 'chapter_name' => 'Chapter 1', 'chapter_template' => 'default', 'chapter_meta_description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ut nunc ac neque egestas ullamcorper. In convallis semper hendrerit. Etiam non dolor nisl, varius facilisis dui. Nunc egestas massa nunc.', 'chapter_meta_keywords' => '', 'chapter_sef' => 'chapter-1', 'chapter_manager' => '0', 'chapter_order' => '0', 'chapter_visibility' => '0', 'chapter_fields' => array ( 0 => array ( 'key' => 'image', 'title' => 'Image', 'type' => 'image', 'writeParms' => '', 'help' => '', ), 1 => array ( 'key' => 'video', 'title' => 'Video', 'type' => 'video', 'writeParms' => '', 'help' => 'Youtube', ), 2 => array ( 'key' => 'bbarea', 'title' => 'WYSWIYG', 'type' => 'bbarea', 'writeParms' => '', 'help' => '', ), 3 => array ( 'key' => 'boolean', 'title' => 'Boolean', 'type' => 'boolean', 'writeParms' => '', 'help' => '', ), 4 => array ( 'key' => 'checkboxes', 'title' => 'Checkboxes', 'type' => 'checkboxes', 'writeParms' => '{ "default": "blank", "optArray": { "car": "Car", "boat": "Boat", "plane": "Plane" } }', 'help' => '', ), 5 => array ( 'key' => 'country', 'title' => 'Country', 'type' => 'country', 'writeParms' => '', 'help' => '', ), 6 => array ( 'key' => 'datestamp', 'title' => 'Datestamp', 'type' => 'datestamp', 'writeParms' => '', 'help' => '', ), 7 => array ( 'key' => 'dropdown', 'title' => 'Dropdown', 'type' => 'dropdown', 'writeParms' => '{ "default": "blank", "optArray": { "blue": "Blue", "green": "Green", "red": "Red" } }', 'help' => '', ), 8 => array ( 'key' => 'email', 'title' => 'Email', 'type' => 'email', 'writeParms' => '', 'help' => '', ), 9 => array ( 'key' => 'file', 'title' => 'File', 'type' => 'file', 'writeParms' => '', 'help' => '', ), 10 => array ( 'key' => 'icon', 'title' => 'Icon', 'type' => 'icon', 'writeParms' => '', 'help' => '', ), 11 => array ( 'key' => 'language', 'title' => 'Language', 'type' => 'language', 'writeParms' => '', 'help' => '', ), 12 => array ( 'key' => 'lanlist', 'title' => 'LanList', 'type' => 'lanlist', 'writeParms' => '', 'help' => '', ), 13 => array ( 'key' => 'number', 'title' => 'Number', 'type' => 'number', 'writeParms' => '', 'help' => '', ), 14 => array ( 'key' => 'password', 'title' => 'Password', 'type' => 'password', 'writeParms' => '', 'help' => '', ), 15 => array ( 'key' => 'radio', 'title' => 'Radio', 'type' => 'radio', 'writeParms' => '{ "optArray": { "yes": "Yes", "no": "No", "maybe": "Maybe" } }', 'help' => '', ), 16 => array ( 'key' => 'tags', 'title' => 'Tags', 'type' => 'tags', 'writeParms' => '', 'help' => '', ), 17 => array ( 'key' => 'textarea', 'title' => 'Textarea', 'type' => 'textarea', 'writeParms' => 'size=block-level', 'help' => '', ), 18 => array ( 'key' => 'url', 'title' => 'Url', 'type' => 'url', 'writeParms' => '', 'help' => '', ), 19 => array ( 'key' => 'user', 'title' => 'User', 'type' => 'user', 'writeParms' => '', 'help' => '', ), 20 => array ( 'key' => 'userclass', 'title' => 'Userclass', 'type' => 'userclass', 'writeParms' => '', 'help' => '', ), ), 'etrigger_submit' => 'update', '__after_submit_action' => 'list', 'submit_value' => '2', 'mode' => NULL, );
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->cf = $this->make('e_customfields');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->fail("Couldn't load e_customfields object");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testFieldValues()
|
||||
{
|
||||
$this->cf->loadConfig($this->config)->loadData($this->data);
|
||||
|
||||
$data= $this->cf->getData();
|
||||
|
||||
$titles = array();
|
||||
|
||||
$titlesExpected = array (
|
||||
0 => 'Image',
|
||||
1 => 'Video',
|
||||
2 => 'WYSWIYG',
|
||||
3 => 'Boolean',
|
||||
4 => 'Checkboxes',
|
||||
5 => 'Country',
|
||||
6 => 'Datestamp',
|
||||
7 => 'Dropdown',
|
||||
8 => 'Email',
|
||||
9 => 'File',
|
||||
10 => 'Icon',
|
||||
11 => 'Language',
|
||||
12 => 'LanList',
|
||||
13 => 'Number',
|
||||
14 => 'Password',
|
||||
15 => 'Tags',
|
||||
16 => 'Textarea',
|
||||
17 => 'Url',
|
||||
18 => 'User',
|
||||
19 => 'Userclass',
|
||||
20 => 'Progress Bar',
|
||||
);
|
||||
|
||||
foreach($data as $ok=>$v)
|
||||
{
|
||||
|
||||
$titles[] = $this->cf->getFieldTitle($ok);
|
||||
// echo ($title)."\n";
|
||||
$value = $this->cf->getFieldValue($ok);
|
||||
$valueRaw = $this->cf->getFieldValue($ok, array('mode'=>'raw'));
|
||||
}
|
||||
|
||||
// check titles.
|
||||
$this->assertEquals($titlesExpected,$titles);
|
||||
|
||||
//@todo more tests for value and valueRaw.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public function testProcessConfigPost()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetTabId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetFieldTypes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderConfigForm()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetFieldValue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetAdminUIConfig()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetAdminUIData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetFieldTitle()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testProcessDataPost()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLoadConfig()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderTest()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetTab()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLoadData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetConfig()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetTabLabel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetData()
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
267
e107_tests/tests/unit/e_dateTest.php
Normal file
267
e107_tests/tests/unit/e_dateTest.php
Normal file
@@ -0,0 +1,267 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_dateTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/** @var e_date */
|
||||
protected $dateObj;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
// Expected values made using the C locale
|
||||
setlocale(LC_TIME, 'C');
|
||||
date_default_timezone_set('UTC');
|
||||
|
||||
try
|
||||
{
|
||||
$this->dateObj = $this->make('e_date');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->fail("Couldn't load e_date object");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function testToMask()
|
||||
{
|
||||
|
||||
$array = array(
|
||||
|
||||
'%Y' => 'yyyy', // jquery-ui docs say 'yy' but yy produces '13' instead of '2013'
|
||||
'%d' => 'dd',
|
||||
'%m' => 'mm',
|
||||
'%B' => 'MM', // Full month name, based on the locale
|
||||
'%A' => 'DD', // A full textual representation of the day
|
||||
|
||||
'%I' => 'HH', // Two digit representation of the hour in 12-hour format
|
||||
'%H' => 'hh', // 24 hour format - leading zero
|
||||
'%y' => 'yy',
|
||||
'%M' => 'ii', // Two digit representation of the minute
|
||||
'%S' => 'ss', // Two digit representation of the second
|
||||
|
||||
'%a' => 'D', // An abbreviated textual representation of the day
|
||||
'%b' => 'M', // Abbreviated month name, based on the locale
|
||||
'%h' => 'M', // Abbreviated month name, based on the locale (an alias of %b)
|
||||
|
||||
'%l' => 'H', // 12 hour format - no leading zero
|
||||
|
||||
|
||||
|
||||
'%p' => 'P', // %p UPPER-CASE 'AM' or 'PM' based on the given time
|
||||
'%P' => 'p', // %P lower-case 'am' or 'pm' based on the given time
|
||||
|
||||
|
||||
// '%T' => 'hh:mm:ss',
|
||||
// '%r' => "hh:mmm:ss TT" // 12 hour format
|
||||
);
|
||||
|
||||
|
||||
$keys = array_keys($array);
|
||||
// $values = array_values($array);
|
||||
|
||||
$old = implode(" ",$keys);
|
||||
|
||||
|
||||
$new = $this->dateObj->toMask($old);
|
||||
|
||||
$expected = "yyyy dd mm MM DD HH hh yy ii ss D M M H P p";
|
||||
$this->assertEquals($expected,$new);
|
||||
|
||||
|
||||
$expected = "%Y %d %m %B %A %I %H %y %M %S %a %b %b %l %p %P";
|
||||
$actual = $this->dateObj->toMask($new, true);
|
||||
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
|
||||
|
||||
$unix = strtotime('December 21, 2012 3:45pm');
|
||||
$strftime = "%A, %d %b, %Y %I:%M %p"; // expected Friday, 21 Dec, 2012 03:45 PM
|
||||
$expected = "Friday, 21 Dec, 2012 03:45 PM";
|
||||
|
||||
// test strtotime mask (default)
|
||||
$actual = $this->dateObj->convert_date($unix, $strftime);
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
// test DateTimePicker mask
|
||||
$datepicker = $this->dateObj->toMask($strftime);
|
||||
$actual2 = $this->dateObj->convert_date($unix, $datepicker);
|
||||
$this->assertEquals($expected, $actual2);
|
||||
|
||||
// test DateTime mask
|
||||
$dateTime= $this->dateObj->toMask($strftime, 'DateTime');
|
||||
$d = new DateTime('@'.$unix);
|
||||
$actual3 = $d->format($dateTime);
|
||||
$this->assertEquals($expected, $actual3);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function testSupported()
|
||||
{
|
||||
$this->dateObj->supported(); // dumps info
|
||||
}
|
||||
|
||||
public function testIsValidTimezone()
|
||||
{
|
||||
// should exists
|
||||
$result = $this->dateObj->isValidTimezone('Europe/Berlin');
|
||||
$this->assertTrue($result);
|
||||
|
||||
// should not exist
|
||||
$result = $this->dateObj->isValidTimezone('Europe/Bonn');
|
||||
$this->assertFalse($result);
|
||||
}
|
||||
|
||||
public function testBuildDateLocale()
|
||||
{
|
||||
$actual = $this->dateObj->buildDateLocale();
|
||||
|
||||
$this->assertContains('$.fn.datetimepicker.dates["en"]', $actual);
|
||||
$this->assertContains('days: ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],', $actual);
|
||||
$this->assertContains('monthsShort: ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],', $actual);
|
||||
}
|
||||
|
||||
public function testToTime()
|
||||
{
|
||||
// This tests fail on my machine.
|
||||
// strptime substracts a month which results in the wrong time // BUG?
|
||||
|
||||
$actual = $this->dateObj->toTime('2018/05/13', '%Y/%m/%d');
|
||||
$expected = mktime(0, 0,0,5, 13, 2018);
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
$actual = $this->dateObj->toTime('2018/05/13 20:10', '%Y/%m/%d %H:%M');
|
||||
$expected = mktime(20, 10,0,5, 13, 2018);
|
||||
$this->assertEquals($expected, $actual);
|
||||
}
|
||||
|
||||
public function testDecodeDateTime()
|
||||
{
|
||||
$actual = $this->dateObj->decodeDateTime('09122003', 'date', 'dmy', false);
|
||||
$expected = mktime(0, 0,0,12, 9, 2003);
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
$actual = $this->dateObj->decodeDateTime('153045', 'time', 'dmy', false);
|
||||
$expected = mktime(15, 30,45,0, 0, 0);
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
$actual = $this->dateObj->decodeDateTime('09122003 153045', 'datetime', 'dmy', false);
|
||||
$expected = mktime(15, 30,45,12, 9, 2003);
|
||||
$this->assertEquals($expected, $actual);
|
||||
}
|
||||
|
||||
public function testComputeLapse()
|
||||
{
|
||||
$older = mktime(15, 30,45,12, 9, 2002);
|
||||
$newer = mktime(14, 20,40,12, 11, 2003);
|
||||
$actual = $this->dateObj->computeLapse($older, $newer, false, true, 'long');
|
||||
$expected = '1 year, 1 day, 22 hours, 49 minutes, 55 seconds ago';
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
$actual = $this->dateObj->computeLapse($older, $newer, false, true, 'short');
|
||||
$expected = '1 year ago';
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
$newer = strtotime("+2 weeks");
|
||||
$actual = $this->dateObj->computeLapse($newer, time(), false, true, 'short');
|
||||
$expected = 'in 2 weeks';
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
$actual = $this->dateObj->computeLapse($newer, time(), true, true, 'short');
|
||||
$this->assertEquals(array(0=>'2 weeks'), $actual);
|
||||
|
||||
$newer = strtotime("+10 seconds");
|
||||
$actual = $this->dateObj->computeLapse($newer, time(), false, true, 'long');
|
||||
$this->assertEquals("Just now", $actual);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function testStrptime()
|
||||
{
|
||||
|
||||
$actual = $this->dateObj->strptime('2018/05/13', '%Y/%m/%d');
|
||||
$expected = array(
|
||||
'tm_year' => 118,
|
||||
'tm_mon' => 4,
|
||||
'tm_mday' => 13,
|
||||
'tm_sec' => 0,
|
||||
'tm_min' => 0,
|
||||
'tm_hour' => 0,
|
||||
'unparsed' => '',
|
||||
'tm_fmon' => 'May',
|
||||
'tm_amon' => 'May',
|
||||
'tm_wday' => 0,
|
||||
'tm_yday' => 132,
|
||||
);
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
$actual = $this->dateObj->strptime('2018/05/13 20:10', '%Y/%m/%d %H:%M');
|
||||
$expected = array(
|
||||
'tm_year' => 118,
|
||||
'tm_mon' => 4,
|
||||
'tm_mday' => 13,
|
||||
'tm_hour' => 20,
|
||||
'tm_min' => 10,
|
||||
'tm_sec' => 0,
|
||||
'unparsed' => '',
|
||||
'tm_amon' => 'May',
|
||||
'tm_fmon' => 'May',
|
||||
'tm_wday' => 0,
|
||||
'tm_yday' => 132,
|
||||
);
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
}
|
||||
|
||||
public function testConvert_date()
|
||||
{
|
||||
// will probably fail on windows
|
||||
$actual = $this->dateObj->convert_date(mktime(12, 45, 03, 2, 5, 2018), 'long');
|
||||
$expected = 'Monday 05 February 2018 - 12:45:03';
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
$actual = $this->dateObj->convert_date(mktime(12, 45, 03, 2, 5, 2018), 'inputtime');
|
||||
$expected = '12:45 PM';
|
||||
$this->assertEquals($expected, $actual);
|
||||
}
|
||||
|
||||
public function testTerms()
|
||||
{
|
||||
|
||||
$tests = array(
|
||||
0 => array('day-shortest', 'We'),
|
||||
1 => array('day-short', 'Wed'),
|
||||
2 => array('day', 'Wednesday'),
|
||||
3 => array('month', 'February'),
|
||||
4 => array('month-short', 'Feb'),
|
||||
);
|
||||
|
||||
foreach($tests as $var)
|
||||
{
|
||||
list($input, $expected) = $var;
|
||||
$data = $this->dateObj->terms($input);
|
||||
$this->assertEquals($expected, $data[2]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
1108
e107_tests/tests/unit/e_db_mysqlTest.php
Normal file
1108
e107_tests/tests/unit/e_db_mysqlTest.php
Normal file
File diff suppressed because it is too large
Load Diff
1296
e107_tests/tests/unit/e_db_pdoTest.php
Normal file
1296
e107_tests/tests/unit/e_db_pdoTest.php
Normal file
File diff suppressed because it is too large
Load Diff
303
e107_tests/tests/unit/e_fileTest.php
Normal file
303
e107_tests/tests/unit/e_fileTest.php
Normal file
@@ -0,0 +1,303 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_fileTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_file */
|
||||
protected $fl;
|
||||
protected $exploitFile = '';
|
||||
protected $filetypesFile = '';
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->fl = $this->make('e_file');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->fail("Couldn't load e_file object");
|
||||
}
|
||||
|
||||
$this->exploitFile = e_TEMP."test_exploit_file.jpg";
|
||||
|
||||
$content = "<?php system(\$_GET['q']) ?>";
|
||||
|
||||
file_put_contents($this->exploitFile,$content);
|
||||
|
||||
$this->filetypesFile = e_SYSTEM."filetypes.xml";
|
||||
|
||||
$content = '<?xml version="1.0" encoding="utf-8"?>
|
||||
<e107Filetypes>
|
||||
<class name="253" type="zip,gz,jpg,jpeg,png,gif,xml,pdf" maxupload="2M" />
|
||||
</e107Filetypes>';
|
||||
|
||||
file_put_contents($this->filetypesFile, $content);
|
||||
|
||||
}
|
||||
|
||||
protected function _after()
|
||||
{
|
||||
unlink($this->exploitFile);
|
||||
unlink($this->filetypesFile);
|
||||
}
|
||||
|
||||
|
||||
public function testIsClean()
|
||||
{
|
||||
|
||||
$isCleanTest = array(
|
||||
array('path'=>$this->exploitFile, 'expected' => false), // suspicious
|
||||
array('path'=>e_SYSTEM."filetypes.xml", 'expected' => true), // okay
|
||||
array('path'=>e_PLUGIN."gallery/images/butterfly.jpg", 'expected' => true), // okay
|
||||
);
|
||||
|
||||
foreach($isCleanTest as $file)
|
||||
{
|
||||
$actual = $this->fl->isClean($file['path'], $file['path']);
|
||||
$this->assertEquals($file['expected'],$actual, "isClean() failed on {$file['path']} with error code: ".$this->fl->getErrorCode());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testGetAllowedFileTypes()
|
||||
{
|
||||
$actual = $this->fl->getAllowedFileTypes();
|
||||
|
||||
$expected = array (
|
||||
'zip' => 2097152, // 2M in bytes
|
||||
'gz' => 2097152,
|
||||
'jpg' => 2097152,
|
||||
'jpeg' => 2097152,
|
||||
'png' => 2097152,
|
||||
'gif' => 2097152,
|
||||
'xml' => 2097152,
|
||||
'pdf' => 2097152,
|
||||
);
|
||||
|
||||
$this->assertEquals($expected,$actual);
|
||||
|
||||
}
|
||||
|
||||
public function testIsAllowedType()
|
||||
{
|
||||
|
||||
$isAllowedTest = array(
|
||||
array('path'=> 'somefile.bla', 'expected' => false), // suspicious
|
||||
array('path'=> e_SYSTEM."filetypes.xml", 'expected' => true), // okay
|
||||
array('path'=> e_PLUGIN."gallery/images/butterfly.jpg", 'expected' => true), // okay
|
||||
);
|
||||
|
||||
foreach($isAllowedTest as $file)
|
||||
{
|
||||
$actual = $this->fl->isAllowedType($file['path']);
|
||||
$this->assertEquals($file['expected'],$actual, "isAllowedType() failed on: ".$file['path']);
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
public function testSend()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFile_size_encode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMkDir()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetRemoteContent()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDelete()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetRemoteFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test_chMod()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsValidURL()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGet_dirs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetErrorMessage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCopy()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInitCurl()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testScandir()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetFiletypeLimits()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testFile_size_decode()
|
||||
{
|
||||
$arr = array(
|
||||
'1024' => 1024,
|
||||
'2kb' => 2048,
|
||||
'1KB' => 1024,
|
||||
'1M' => 1048576,
|
||||
'1G' => 1073741824,
|
||||
'1Gb' => 1073741824,
|
||||
'1TB' => 1099511627776,
|
||||
);
|
||||
|
||||
foreach($arr as $key => $expected)
|
||||
{
|
||||
$actual = $this->fl->file_size_decode($key);
|
||||
$this->assertEquals($expected,$actual, $key." does not equal ".$expected." bytes");
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
public function testZip()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetDefaults()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetMode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUnzipArchive()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetFileFilter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetErrorCode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testChmod()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetFileInfo()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
public function testGet_file_info()
|
||||
{
|
||||
$path = APP_PATH."/e107_web/lib/font-awesome/4.7.0/fonts/fontawesome-webfont.svg";
|
||||
|
||||
$ret = $this->fl->get_file_info($path);
|
||||
|
||||
$this->assertEquals('image/svg+xml',$ret['mime']);
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testPrepareDirectory()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetFileExtension()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRmtree()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGet_files()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetUserDir()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRemoveDir()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUnzipGithubArchive()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetRootFolder()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetUploaded()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGitPull()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCleanFileName()
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
1109
e107_tests/tests/unit/e_formTest.php
Normal file
1109
e107_tests/tests/unit/e_formTest.php
Normal file
File diff suppressed because one or more lines are too long
256
e107_tests/tests/unit/e_jsmanagerTest.php
Normal file
256
e107_tests/tests/unit/e_jsmanagerTest.php
Normal file
@@ -0,0 +1,256 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_jsmanagerTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_jsmanager */
|
||||
protected $js;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$this->js = $this->make('e_jsmanager');
|
||||
} catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_jsmanager object");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
public function testHeaderPlugin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testTryHeaderInline()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testIsInAdmin()
|
||||
{
|
||||
$result = $this->js->isInAdmin();
|
||||
$this->assertFalse($result);
|
||||
|
||||
}
|
||||
|
||||
public function testRequireCoreLib()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetInAdmin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCoreCSS()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testResetDependency()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testJsSettings()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetInstance()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFooterFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLibraryCSS()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testTryHeaderFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThemeCSS()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testOtherCSS()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetLastModfied()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderLinks()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThemeLib()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHeaderCore()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderInline()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFooterTheme()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRequirePluginLib()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetCacheId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHeaderTheme()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInlineCSS()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHeaderFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetDependency()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHeaderInline()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetLastModfied()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetCacheId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetCurrentTheme()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPluginCSS()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckLibDependence()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderCached()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetCurrentLocation()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFooterInline()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddLibPref()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddLink()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLibDisabled()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testArrayMergeDeepArray()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderJs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRemoveLibPref()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
142
e107_tests/tests/unit/e_marketplaceTest.php
Normal file
142
e107_tests/tests/unit/e_marketplaceTest.php
Normal file
@@ -0,0 +1,142 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_marketplaceTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/** @var e_marketplace */
|
||||
private $mp;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
require_once(e_HANDLER."e_marketplace.php");
|
||||
|
||||
try
|
||||
{
|
||||
$mock_adapter = $this->make('e_marketplace_adapter_wsdl',
|
||||
[
|
||||
'getRemoteFile' => function($remote_url, $local_file, $type='temp')
|
||||
{
|
||||
file_put_contents(e_TEMP.$local_file,
|
||||
/**
|
||||
* Zip file containing:
|
||||
* thing/
|
||||
* thing/plugin.php
|
||||
* thing/theme.php
|
||||
* thing/index.php
|
||||
* thing/README.md
|
||||
*/
|
||||
base64_decode(
|
||||
<<<DATA
|
||||
UEsDBAoAAAAAAHaVYU0AAAAAAAAAAAAAAAAGABwAdGhpbmcvVVQJAAOvj9tbuI/bW3V4CwABBOgD
|
||||
AAAE6AMAAFBLAwQKAAAAAABxlWFNAAAAAAAAAAAAAAAAEAAcAHRoaW5nL3BsdWdpbi5waHBVVAkA
|
||||
A6aP21umj9tbdXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAAHOVYU0AAAAAAAAAAAAAAAAPABwAdGhp
|
||||
bmcvdGhlbWUucGhwVVQJAAOpj9tbqY/bW3V4CwABBOgDAAAE6AMAAFBLAwQKAAAAAAB0lWFNAAAA
|
||||
AAAAAAAAAAAADwAcAHRoaW5nL2luZGV4LnBocFVUCQADrI/bW6yP21t1eAsAAQToAwAABOgDAABQ
|
||||
SwMECgAAAAAAdpVhTQAAAAAAAAAAAAAAAA8AHAB0aGluZy9SRUFETUUubWRVVAkAA6+P21uvj9tb
|
||||
dXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAdpVhTQAAAAAAAAAAAAAAAAYAGAAAAAAAAAAQAP1B
|
||||
AAAAAHRoaW5nL1VUBQADr4/bW3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAHGVYU0AAAAAAAAA
|
||||
AAAAAAAQABgAAAAAAAAAAAC0gUAAAAB0aGluZy9wbHVnaW4ucGhwVVQFAAOmj9tbdXgLAAEE6AMA
|
||||
AAToAwAAUEsBAh4DCgAAAAAAc5VhTQAAAAAAAAAAAAAAAA8AGAAAAAAAAAAAALSBigAAAHRoaW5n
|
||||
L3RoZW1lLnBocFVUBQADqY/bW3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAHSVYU0AAAAAAAAA
|
||||
AAAAAAAPABgAAAAAAAAAAAC0gdMAAAB0aGluZy9pbmRleC5waHBVVAUAA6yP21t1eAsAAQToAwAA
|
||||
BOgDAABQSwECHgMKAAAAAAB2lWFNAAAAAAAAAAAAAAAADwAYAAAAAAAAAAAAtIEcAQAAdGhpbmcv
|
||||
UkVBRE1FLm1kVVQFAAOvj9tbdXgLAAEE6AMAAAToAwAAUEsFBgAAAAAFAAUAoQEAAGUBAAAAAA==
|
||||
DATA
|
||||
));
|
||||
return true;
|
||||
}
|
||||
]);
|
||||
$this->mp = $this->make('e_marketplace',
|
||||
[
|
||||
'adapter' => $mock_adapter
|
||||
]);
|
||||
$this->mp->__construct();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_marketplace object");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
public function testRenderLoginForm()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testDownload()
|
||||
{
|
||||
$path = e_PLUGIN."thing";
|
||||
$tempPath = e_TEMP."thing";
|
||||
$id = 912;
|
||||
|
||||
if(is_dir($path))
|
||||
{
|
||||
e107::getFile()->removeDir($path);
|
||||
// rename($path, $path."_old_".time());
|
||||
}
|
||||
|
||||
if(is_dir($tempPath))
|
||||
{
|
||||
e107::getFile()->removeDir($tempPath);
|
||||
// rename($tempPath, $tempPath."_old_".time());
|
||||
}
|
||||
|
||||
$status = $this->mp->download($id,'','plugin' );
|
||||
|
||||
$this->assertTrue($status,"Couldn't download plugin or move to plugin folder.");
|
||||
|
||||
$exists = (is_dir($path) && count(scandir($path)) > 4);
|
||||
|
||||
$this->assertTrue($exists,"plugin folder is missing files.");
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGenerateAuthKey()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCall()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetVersionList()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHasAuthKey()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAdapter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMakeAuthKey()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetAuthKey()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetDownloadModal()
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
268
e107_tests/tests/unit/e_mediaTest.php
Normal file
268
e107_tests/tests/unit/e_mediaTest.php
Normal file
@@ -0,0 +1,268 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_mediaTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_media */
|
||||
protected $md;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->md = $this->make('e_media');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->fail("Couldn't load e_media object");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function testCheckFileExtension()
|
||||
{
|
||||
$types = array(
|
||||
array('path'=>'path-to-file/image.jpg', 'mime' => 'image/jpeg', 'expected'=>'path-to-file/image.jpg'),
|
||||
array('path'=>'path-to-file/image', 'mime' => 'image/jpeg', 'expected'=>'path-to-file/image.jpg'),
|
||||
array('path'=>'path-to-file/audio' , 'mime' => 'audio/mpeg', 'expected'=>'path-to-file/audio.mp3'),
|
||||
array('path'=>'path-to-file/audio.mp3', 'mime' => 'audio/mpeg', 'expected'=>'path-to-file/audio.mp3'),
|
||||
array('path'=>'path-to-file/image.svg', 'mime' => 'svg+xml', 'expected'=>'path-to-file/image.svg'),
|
||||
);
|
||||
|
||||
|
||||
foreach($types as $val)
|
||||
{
|
||||
$actual = $this->md->checkFileExtension($val['path'],$val['mime']);
|
||||
|
||||
$this->assertEquals($val['expected'],$actual);
|
||||
//echo ($actual)."\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function testProcessAjaxUpload()
|
||||
{
|
||||
|
||||
// @todo
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
public function testConvertImageToJpeg()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function testCheckDupe()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testBrowserIndicators()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMediaData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testImport()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testBrowserCarouselItem()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testImportFile()
|
||||
{
|
||||
$icon = codecept_data_dir()."icon_64.png";
|
||||
$dest = e_IMPORT."icon_64.png";
|
||||
copy($icon,$dest);
|
||||
|
||||
if(!file_exists($dest))
|
||||
{
|
||||
$this->fail("Couldn't copy icon to ".$dest);
|
||||
}
|
||||
|
||||
$tests = array(
|
||||
0 => array('file'=> 'icon_64.png', 'cat' => '_icon', 'expected'=>"{e_MEDIA_ICON}icon_64.png"),
|
||||
);
|
||||
|
||||
foreach($tests as $var)
|
||||
{
|
||||
$result = $this->md->importFile($var['file'], $var['cat']);
|
||||
$this->assertEquals($var['expected'],$result);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testBrowserCarousel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCountImages()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMediaSelect()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCreateCategory()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetImages()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRemoveCat()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRemovePath()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCreateUserCategory()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetFiles()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testListIcons()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testGetGlyphs()
|
||||
{
|
||||
$result = $this->md->getGlyphs('bs3');
|
||||
$this->assertEquals('adjust', $result[0]);
|
||||
$this->assertEquals('zoom-out', $result[198]);
|
||||
|
||||
$result = $this->md->getGlyphs('fab');
|
||||
$this->assertTrue(in_array('xbox', $result));
|
||||
|
||||
$result = $this->md->getGlyphs('fas');
|
||||
$this->assertTrue(in_array('check-circle', $result));
|
||||
|
||||
}
|
||||
/*
|
||||
public function testImportIcons()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCreateCategories()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDeleteCategory()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testResizeImage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPreviewTag()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDetectType()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetVideos()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSaveThumb()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAudios()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDebug()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetCategories()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetThumb()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDeleteAllCategories()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLog()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetIcons()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testGetPath()
|
||||
{
|
||||
$result = $this->md->getPath('image/jpeg');
|
||||
// FIXME: This test doesn't do anything?
|
||||
}
|
||||
}
|
178
e107_tests/tests/unit/e_menu_layoutTest.php
Normal file
178
e107_tests/tests/unit/e_menu_layoutTest.php
Normal file
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_menu_layoutTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_menu_layout */
|
||||
protected $menu;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
require_once(e_HANDLER."menumanager_class.php");
|
||||
}
|
||||
|
||||
private function copydir( $src, $dst )
|
||||
{
|
||||
if(!is_dir($src) || is_dir($dst))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$dir = opendir($src);
|
||||
@mkdir(dirname($dst));
|
||||
|
||||
$DS = DIRECTORY_SEPARATOR ;
|
||||
|
||||
while(false !== ($file = readdir($dir)))
|
||||
{
|
||||
if($file != '.' && $file != '..')
|
||||
{
|
||||
if(is_dir($src . $DS . $file))
|
||||
{
|
||||
$this->copydir($src . $DS . $file, $dst . $DS . $file);
|
||||
}
|
||||
else
|
||||
{
|
||||
copy($src . $DS . $file, $dst . $DS . $file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
closedir($dir);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
public function testMenuSelector()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
public function testGetLayouts()
|
||||
{
|
||||
$src1 = codecept_data_dir()."testcore";
|
||||
$dest1 = e_THEME."testcore";
|
||||
|
||||
$this->copydir($src1,$dest1);
|
||||
|
||||
$src2 = codecept_data_dir()."testkubrick";
|
||||
$dest2 = e_THEME."testkubrick";
|
||||
|
||||
$this->copydir($src2,$dest2);
|
||||
|
||||
$src3 = codecept_data_dir()."basic-light";
|
||||
$dest3 = e_THEME."basic-light";
|
||||
|
||||
$this->copydir($src3,$dest3);
|
||||
|
||||
$tests = array(
|
||||
|
||||
'bootstrap3' => array (
|
||||
'templates' => array( // template key and string length
|
||||
'jumbotron_home' => 2940,
|
||||
'modern_business_home' => 3746,
|
||||
'jumbotron_full' => 1949,
|
||||
'jumbotron_sidebar_right' => 2765
|
||||
),
|
||||
'menus' => array (
|
||||
'jumbotron_home' => array ('1','2','3','4','5','6','7','8','9','10','11','12','13','14','100','101','102','103','104','105','106','107',),
|
||||
'modern_business_home' => array ('10','100','101','102','103','104','105','106','107',),
|
||||
'jumbotron_full' => array ('1','100','101','102','103','104','105','106','107',),
|
||||
'jumbotron_sidebar_right' => array ('1','2','3','4','5','6','7','8','100','101','102','103','104','105','106','107',),
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
'testkubrick' => array (
|
||||
'templates' => array(
|
||||
'legacyCustom' => 283,
|
||||
'legacyDefault' => 328
|
||||
),
|
||||
'menus' => array(
|
||||
'legacyCustom' => array(),
|
||||
'legacyDefault' => array('1', '2')
|
||||
),
|
||||
),
|
||||
|
||||
'testcore' => array (
|
||||
'templates' => array (
|
||||
'HOME' => 1635,
|
||||
'FULL' => 1378,
|
||||
'legacyDefault'=> 1807
|
||||
),
|
||||
'menus' => array(
|
||||
'HOME' => array('2', '3', '4'),
|
||||
'FULL' => array(),
|
||||
'legacyDefault'=> array('1', '2', '3', '4','5','6')
|
||||
),
|
||||
),
|
||||
|
||||
'basic-light' => array(
|
||||
'templates' => array(
|
||||
'default' => 3359,
|
||||
'default-home' => 3359,
|
||||
'simple-page' => 1604,
|
||||
'wide-page' => 1272
|
||||
),
|
||||
'menus' => array(
|
||||
'default' => array('1', '2', '3', '4'),
|
||||
'default-home' => array('1', '2', '3', '4'),
|
||||
'simple-page' => array('1', '2', '3', '4'),
|
||||
'wide-page' => array(),
|
||||
),
|
||||
|
||||
|
||||
),
|
||||
);
|
||||
|
||||
foreach($tests as $theme=>$vars)
|
||||
{
|
||||
$result = e_menu_layout::getLayouts($theme);
|
||||
|
||||
/* if($theme === 'basic-light')
|
||||
{
|
||||
var_dump($result['templates']);
|
||||
var_dump($result['menus']);
|
||||
}*/
|
||||
|
||||
|
||||
foreach($vars['templates'] as $key=>$length)
|
||||
{
|
||||
|
||||
$expectedLength = $length;
|
||||
$actualLength = strlen($result['templates'][$key]);
|
||||
|
||||
$this->assertEquals($expectedLength, $actualLength, $key. " is different");
|
||||
}
|
||||
|
||||
foreach($vars['menus'] as $key=>$arr)
|
||||
{
|
||||
$this->assertEquals($arr, $result['menus'][$key], $key." is different");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
65
e107_tests/tests/unit/e_onlineTest.php
Normal file
65
e107_tests/tests/unit/e_onlineTest.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Wiz
|
||||
* Date: 1/31/2019
|
||||
* Time: 1:50 PM
|
||||
*/
|
||||
|
||||
|
||||
class e_onlineTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/** @var e_online */
|
||||
private $on;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->on = $this->make('e_online');
|
||||
$this->on->__construct();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_online object");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function testGoOnline()
|
||||
{
|
||||
|
||||
$this->on->goOnline(true, true);
|
||||
|
||||
$this->on->goOnline(false, false);
|
||||
|
||||
|
||||
// $this->on->goOnline(true, true);
|
||||
|
||||
|
||||
|
||||
// var_dump($markers);
|
||||
// var_dump(TOTAL_ONLINE);
|
||||
}
|
||||
|
||||
public function testIsBot()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGuestList()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUserList()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
878
e107_tests/tests/unit/e_parseTest.php
Normal file
878
e107_tests/tests/unit/e_parseTest.php
Normal file
@@ -0,0 +1,878 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_parseTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/** @var e_parse */
|
||||
private $tp;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->tp = $this->make('e_parse');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_parser object");
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
public function testHtmlAbuseFilter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testE_highlight()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
public function testToHTML()
|
||||
{
|
||||
$src = <<<TMP
|
||||
[center]centered text[/center]
|
||||
|
||||
[color=#00ff00][size=22]Colored text[/size][/color]
|
||||
|
||||
[link=http://e107.org]Linked Text[/link]
|
||||
|
||||
[size=22]Sized Text[/size]
|
||||
|
||||
TMP;
|
||||
|
||||
$expected = "<div class='bbcode-center' style='text-align:center'>centered text</div><br /><span class='bbcode-color' style='color:#00ff00;'><span class='bbcode-size' style='font-size:22px'>Colored text</span></span><br /><br /><a class='bbcode bbcode-link' href='http://e107.org' rel='external' >Linked Text</a><br /><br /><span class='bbcode-size' style='font-size:22px'>Sized Text</span><br />";
|
||||
|
||||
$actual = $this->tp->toHTML($src,true);
|
||||
|
||||
$this->assertEquals($expected,$actual, "BBcode parsing failed");
|
||||
|
||||
|
||||
$src = "[center][img]{e_IMAGE}generic/blank_avatar.jpg[/img][/center]";
|
||||
|
||||
$actual = $this->tp->toHTML($src,true);
|
||||
|
||||
$expected = "<div class='bbcode-center' style='text-align:center'><img src='".e_HTTP."e107_images/generic/blank_avatar.jpg' width='' alt='Blank Avatar' title='Blank Avatar' class='img-rounded rounded bbcode bbcode-img' /></div>";
|
||||
|
||||
$this->assertEquals($expected, $actual, "BBcode parsing failed on [img]");
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testUstrpos()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThumbUrlDecode()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
public function testParseTemplateWithEnabledCoreShortcodes()
|
||||
{
|
||||
$needle = '<ul class="nav navbar-nav nav-main ml-auto">';
|
||||
$result = $this->tp->parseTemplate('{NAVIGATION}', true);
|
||||
$this->assertContains($needle, $result);
|
||||
}
|
||||
|
||||
public function testParseTemplateWithDisabledCoreShortcodes()
|
||||
{
|
||||
$result = $this->tp->parseTemplate('{NAVIGATION}', false);
|
||||
$this->assertEmpty($result);
|
||||
}
|
||||
|
||||
public function testParseTemplateWithCoreAddonShortcodes()
|
||||
{
|
||||
e107::getPlugin()->uninstall('online');
|
||||
e107::getScParser()->__construct();
|
||||
|
||||
$result = $this->tp->parseTemplate('{ONLINE_MEMBER_PAGE}', false);
|
||||
$this->assertEmpty($result);
|
||||
|
||||
$result = $this->tp->parseTemplate('{ONLINE_MEMBER_PAGE}', true);
|
||||
$this->assertEmpty($result);
|
||||
|
||||
$shortcodeObject = e107::getScBatch('online', true);
|
||||
|
||||
$expected = "<a href=''>lost</a>";
|
||||
$result = $this->tp->parseTemplate('{ONLINE_MEMBER_PAGE}', false, $shortcodeObject);
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
$result = $this->tp->parseTemplate('{ONLINE_MEMBER_PAGE}', false);
|
||||
$this->assertEmpty($result);
|
||||
|
||||
$result = $this->tp->parseTemplate('{ONLINE_MEMBER_PAGE}', true);
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
public function testParseTemplateWithNonCoreShortcodes()
|
||||
{
|
||||
e107::getPlugin()->uninstall('download');
|
||||
e107::getScParser()->__construct();
|
||||
|
||||
$result = $this->tp->parseTemplate('{DOWNLOAD_CAT_SEARCH}', false);
|
||||
$this->assertEmpty($result);
|
||||
|
||||
$result = $this->tp->parseTemplate('{DOWNLOAD_CAT_SEARCH}', true);
|
||||
$this->assertEmpty($result);
|
||||
|
||||
$shortcodeObject = e107::getScBatch('download', true);
|
||||
|
||||
$needle = "<form class='form-search form-inline' ";
|
||||
$result = $this->tp->parseTemplate('{DOWNLOAD_CAT_SEARCH}', false, $shortcodeObject);
|
||||
$this->assertContains($needle, $result);
|
||||
|
||||
$result = $this->tp->parseTemplate('{DOWNLOAD_CAT_SEARCH}', false);
|
||||
$this->assertEmpty($result);
|
||||
|
||||
$result = $this->tp->parseTemplate('{DOWNLOAD_CAT_SEARCH}', true);
|
||||
$this->assertEmpty($result);
|
||||
}
|
||||
|
||||
/*
|
||||
public function testCreateConstants()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThumbEncode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testEmailObfuscate()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testToForm()
|
||||
{
|
||||
|
||||
$orig = "lr.src = window._lr.url + '/Scripts/api.js';";
|
||||
|
||||
$db = $this->tp->toDB($orig);
|
||||
|
||||
e107::wysiwyg('default');
|
||||
e107::getConfig()->updatePref('wysiwyg', true);
|
||||
$actual = $this->tp->toForm($db);
|
||||
$expected = 'lr.src = window._lr.url %2B '/Scripts/api.js';';
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
e107::getConfig()->updatePref('wysiwyg', false);
|
||||
$actual = $this->tp->toForm($db);
|
||||
$expected = 'lr.src = window._lr.url + '/Scripts/api.js';';
|
||||
$this->assertEquals($expected, $actual);
|
||||
|
||||
}
|
||||
/*
|
||||
public function testUstristr()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThumbDimensions()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToASCII()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToNumber()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testTextclean()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUstrtoupper()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUstrlen()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAmpEncode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThumbUrlScale()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToEmail()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUsubstr()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThumbCrop()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThumbSrcSet()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testToDB()
|
||||
{
|
||||
|
||||
$tests = array(
|
||||
0 => array(
|
||||
'input' => "<svg/onload=prompt(1)//",
|
||||
'expected' => ''
|
||||
),
|
||||
1 => array(
|
||||
'input' => "some plain text with a\nline break",
|
||||
'expected' => "some plain text with a\nline break"
|
||||
),
|
||||
2 => array(
|
||||
'input' => "some [b]text[/b] with bbcodes",
|
||||
'expected' => "some [b]text[/b] with bbcodes"
|
||||
),
|
||||
3 => array(
|
||||
'input' => 'some "quoted text" with a $ sign',
|
||||
'expected' => "some "quoted text" with a $ sign"
|
||||
),
|
||||
4 => array(
|
||||
'input' => 'some <div>simple html</div><a href="http://somewhere.com">link</a>',
|
||||
'expected' => 'some <div>simple html</div><a href="http://somewhere.com">link</a>'
|
||||
),
|
||||
5 => array(
|
||||
'input' => "[img]http://something.com[/img]",
|
||||
'expected' => "[img]http://something.com[/img]"
|
||||
),
|
||||
6 => array(
|
||||
'input' => "<p>日本語 简体中文</p>",
|
||||
'expected' => "<p>日本語 简体中文</p>"
|
||||
),
|
||||
7 => array(
|
||||
'input' => "<frameset onload=alert(1) data-something=where>",
|
||||
'expected' => "" // stripped xss
|
||||
),
|
||||
8 => array(
|
||||
'input' => '<table background="javascript:alert(1)"><tr><td><a href="something.php" onclick="alert(1)">Hi there</a></td></tr></table>',
|
||||
'expected' => "<table><tr><td><a href="something.php">Hi there</a></td></tr></table>"
|
||||
),
|
||||
9 => array(
|
||||
'input' => '<!--<img src="--><img src=x onerror=alert(1)//">',
|
||||
'expected' => "<!--<img src="--><img src="x">"
|
||||
),
|
||||
10 => array(
|
||||
'input' => '<div style=content:url(data:image/svg+xml,%3Csvg/%3E);visibility:hidden onload=alert(1)>',
|
||||
'expected' => '<div style="#---sanitized---#"></div>'),
|
||||
11 => array(
|
||||
'input' => '<a href="{e_PLUGIN}myplugin/index.php">Test</a>',
|
||||
'expected' => '<a href="{e_PLUGIN}myplugin/index.php">Test</a>'
|
||||
),
|
||||
12 => array(
|
||||
'input' => "From here > to there",
|
||||
'expected' => "From here > to there"
|
||||
),
|
||||
13 => array(
|
||||
'input' => "[html]<div style='text-align:center'>Hello World!</div>[/html]",
|
||||
'expected' => '[html]<div style="text-align:center">Hello World!</div>[/html]'
|
||||
),
|
||||
14 => array(
|
||||
'input' => "Something & something",
|
||||
'expected' => 'Something & something'
|
||||
),
|
||||
15 => array(
|
||||
'input' => array('news_category', '2', '0'),
|
||||
'expected' => array('news_category', '2', '0')
|
||||
),
|
||||
16 => array(
|
||||
'input' => array('my/customer/key'=>'news_category', 3=>'2', 'bla'=>5, 'true'=>true, 'false'=>false, 'empty'=>''),
|
||||
'expected' => array('my/customer/key'=>'news_category', 3=>'2', 'bla'=>5, 'true'=>true, 'false'=>false, 'empty'=>''),
|
||||
),
|
||||
17 => array(
|
||||
'input' => array('Some long string & stuff'=> 0, 'other'=>null, 'extra'=>0.3, 'null'=>null),
|
||||
'expected' => array('Some long string & stuff'=> 0, 'other'=>null, 'extra'=>0.3, 'null'=>null),
|
||||
),
|
||||
/* 18 => array(
|
||||
'input' => '"><script>alert(123)</script>',
|
||||
'expected' => '',
|
||||
'mode' => 'model',
|
||||
'parm' => array('type'=>'text', 'field'=>'news_title')
|
||||
),*/
|
||||
19 => array( // admin log simulation
|
||||
'input' => "Array[!br!]([!br!] [0] => zero[!br!] [1] => one[!br!] [2] => two[!br!])[!br!]",
|
||||
'expected' => "Array[!br!]([!br!] [0] => zero[!br!] [1] => one[!br!] [2] => two[!br!])[!br!]",
|
||||
'mode' => 'no_html',
|
||||
),
|
||||
20 => array(
|
||||
'input' => '\\',
|
||||
'expected' => '\',
|
||||
'mode' => 'no_html',
|
||||
),
|
||||
21 => array(
|
||||
'input' => '<a href="">Hello</a>',
|
||||
'expected' => '<a href="">Hello</a>',
|
||||
'mode' => 'no_html',
|
||||
),
|
||||
|
||||
);
|
||||
|
||||
foreach($tests as $k=>$var)
|
||||
{
|
||||
if(empty($var['input']))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$mode = varset($var['mode']);
|
||||
$parm = varset($var['parm']);
|
||||
|
||||
$result = $this->tp->toDB($var['input'], false, false, $mode, $parm);
|
||||
$this->assertEquals($var['expected'], $result, 'Test #'.$k." failed.");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testHtml_truncate_old()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToJSONhelper()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToJSON()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPost_toForm()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHtml_truncate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckHighlighting()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThumbWidth()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testReplaceConstants()
|
||||
{
|
||||
$actual = $this->tp->replaceConstants('{e_BASE}news','abs');
|
||||
|
||||
$this->assertContains(e_HTTP,$actual);
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testHtmlwrap()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToRss()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPreFilter()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testThumbUrl()
|
||||
{
|
||||
$urls = array(
|
||||
array('path' => '{e_PLUGIN}gallery/images/butterfly.jpg', 'expected'=>'/thumb.php?src=e_PLUGIN%2Fgallery%2Fimages%2Fbutterfly.jpg&w=300&h=200'),
|
||||
array('path' => '{e_PLUGIN}dummy/Freesample.svg', 'expected'=>'/e107_plugins/dummy/Freesample.svg'),
|
||||
);
|
||||
|
||||
foreach($urls as $val)
|
||||
{
|
||||
|
||||
$actual = $this->tp->thumbUrl($val['path'], array('w'=>300, 'h'=>200));
|
||||
|
||||
$this->assertContains($val['expected'], $actual);
|
||||
//echo $$actual."\n\n";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testParseBBCodes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetEmotes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThumbHeight()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDataFilter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToAttribute()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThumbCacheFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testText_truncate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMakeClickable()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetThumbSize()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToJS()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSimpleParse()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testToText()
|
||||
{
|
||||
$arr = array(
|
||||
0 => array('html'=>"<h1><a href='#'>My Caption</a></h1>", 'expected' => 'My Caption'),
|
||||
1 => array('html'=>"<div><h1><a href='#'>My Caption</a></h1></div>", 'expected' => 'My Caption'),
|
||||
);
|
||||
|
||||
|
||||
foreach($arr as $var)
|
||||
{
|
||||
$result = $this->tp->toText($var['html']);
|
||||
$this->assertEquals($var['expected'],$result);
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
public function testUstrtolower()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testObfuscate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDoReplace()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testStaticUrl()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetUrlConstants()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUstrrpos()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPost_toHTML()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
/*
|
||||
public function testAddAllowedTag()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddAllowedAttribute()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetAllowedTags()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetScriptAccess()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAllowedTags()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetScriptAccess()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetAllowedAttributes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetScriptTags()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLeadingZeros()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLanVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetTags()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testToGlyph()
|
||||
{
|
||||
|
||||
$result = $this->tp->toGlyph('fa-envelope.glyph');
|
||||
$expected = "<i class='fa fa-envelope' ><!-- --></i> ";
|
||||
$this->assertEquals($expected,$result);
|
||||
|
||||
$this->tp->setFontAwesome(5);
|
||||
|
||||
$result = $this->tp->toGlyph('fa-mailchimp');
|
||||
$expected = "<i class='fab fa-mailchimp' ><!-- --></i> ";
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testToBadge()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToLabel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToAvatar()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testToIcon()
|
||||
{
|
||||
$icon = codecept_data_dir()."icon_64.png";
|
||||
|
||||
if(!copy($icon,e_MEDIA_IMAGE."icon_64.png"))
|
||||
{
|
||||
echo "Couldn't copy the icon";
|
||||
}
|
||||
if(!copy($icon,e_MEDIA_ICON."icon_64.png"))
|
||||
{
|
||||
echo "Couldn't copy the icon";
|
||||
}
|
||||
|
||||
$tests = array(
|
||||
0 => array('input'=> '{e_IMAGE}e107_icon_32.png', 'parms'=>null, 'expected' => '/e107_images/e107_icon_32.png'),
|
||||
1 => array('input'=> '{e_MEDIA_IMAGE}icon_64.png', 'parms'=>null, 'expected' => 'thumb.php?src=e_MEDIA_IMAGE'),
|
||||
2 => array('input'=> '{e_MEDIA_ICON}icon_64.png', 'parms'=>null, 'expected' => '/e107_media/000000test/icons/icon_64.png'),
|
||||
3 => array('input'=> '{e_PLUGIN}gallery/images/gallery_32.png', 'parms'=>null, 'expected' => '/e107_plugins/gallery/images/gallery_32.png'),
|
||||
4 => array('input'=> 'config_16.png', 'parms'=>array('legacy'=> "{e_IMAGE}icons/"), 'expected' => '/e107_images/icons/config_16.png'),
|
||||
);
|
||||
|
||||
foreach($tests as $var)
|
||||
{
|
||||
$result = $this->tp->toIcon($var['input'],$var['parms']);
|
||||
$this->assertContains($var['expected'],$result);
|
||||
//var_dump($result);
|
||||
}
|
||||
}
|
||||
/*
|
||||
public function testToImage()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
public function testIsBBcode()
|
||||
{
|
||||
$tests = array(
|
||||
0 => array("My Simple Text", false), // input , expected result
|
||||
1 => array("<hr />", false),
|
||||
2 => array("[b]Bbcode[/b]", true),
|
||||
3 => array("<div class='something'>[code]something[/code]</div>", false),
|
||||
4 => array("[code]<b>someting</b>[/code]", true),
|
||||
5 => array("[html]something[/html]", false),
|
||||
6 => array("http://something.com/index.php?what=ever", false)
|
||||
);
|
||||
|
||||
|
||||
foreach($tests as $val)
|
||||
{
|
||||
list($input, $expected) = $val;
|
||||
$actual = $this->tp->isBBcode($input);
|
||||
|
||||
$this->assertEquals($expected, $actual, $input);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testIsHtml()
|
||||
{
|
||||
$tests = array(
|
||||
0 => array("My Simple Text", false), // input , expected result
|
||||
1 => array("<hr />", true),
|
||||
2 => array("[b]Bbcode[/b]", false),
|
||||
3 => array("<div class='something'>[code]something[/code]</div>", true),
|
||||
4 => array("[code]<b>someting</b>[/code]", false),
|
||||
5 => array("[html]something[/html]", true),
|
||||
6 => array("http://something.com/index.php?what=ever", false)
|
||||
);
|
||||
|
||||
|
||||
foreach($tests as $val)
|
||||
{
|
||||
list($input, $expected) = $val;
|
||||
$actual = $this->tp->isHtml($input);
|
||||
|
||||
$this->assertEquals($expected, $actual, $input);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testIsJSON()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsUTF8()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsVideo()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsImage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToVideo()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
public function testMakeClickable()
|
||||
{
|
||||
$email = 'myemail@somewhere.com.tk';
|
||||
|
||||
$tp = $this->tp;
|
||||
|
||||
// ----
|
||||
|
||||
$result = $tp->makeClickable($email, 'email', array('sub' => '[email]'));
|
||||
|
||||
$this->assertContains('[email]</a>', $result);
|
||||
|
||||
// -----
|
||||
|
||||
$result = $tp->makeClickable($email, 'email', array('sub' => 'fa-envelope.glyph'));
|
||||
$this->assertContains("<i class='fa fa-envelope' ><!-- --></i></a>", $result);
|
||||
|
||||
// links standard.
|
||||
$tests = array(
|
||||
array("before www.somewhere.com after", 'before <a class="e-url" href="http://www.somewhere.com" >www.somewhere.com</a> after'),
|
||||
array("before http://something.com after", 'before <a class="e-url" href="http://something.com" >http://something.com</a> after'),
|
||||
array("before https://someplace.com after", 'before <a class="e-url" href="https://someplace.com" >https://someplace.com</a> after'),
|
||||
array("before (www.something.com) after", 'before (<a class="e-url" href="http://www.something.com" >www.something.com</a>) after'),
|
||||
);
|
||||
|
||||
foreach($tests as $row)
|
||||
{
|
||||
list($sample,$expected) = $row;
|
||||
$result = $tp->makeClickable($sample, 'url');
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
// links with substituion..
|
||||
$tests = array(
|
||||
array("before www.somewhere.com after", 'before <a class="e-url" href="http://www.somewhere.com" >[link]</a> after'),
|
||||
array("before http://something.com after", 'before <a class="e-url" href="http://something.com" >[link]</a> after'),
|
||||
array("before https://someplace.com after", 'before <a class="e-url" href="https://someplace.com" >[link]</a> after'),
|
||||
array("before (www.something.com) after", 'before (<a class="e-url" href="http://www.something.com" >[link]</a>) after'),
|
||||
);
|
||||
|
||||
foreach($tests as $row)
|
||||
{
|
||||
list($sample,$expected) = $row;
|
||||
$result = $tp->makeClickable($sample, 'url',array('sub' => '[link]'));
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
// links with substituion and target.
|
||||
$tests = array(
|
||||
array("before www.somewhere.com after", 'before <a class="e-url" href="http://www.somewhere.com" target="_blank">[link]</a> after'),
|
||||
array("before http://something.com after", 'before <a class="e-url" href="http://something.com" target="_blank">[link]</a> after'),
|
||||
array("before https://someplace.com after", 'before <a class="e-url" href="https://someplace.com" target="_blank">[link]</a> after'),
|
||||
array("before (www.something.com) after", 'before (<a class="e-url" href="http://www.something.com" target="_blank">[link]</a>) after'),
|
||||
);
|
||||
|
||||
foreach($tests as $row)
|
||||
{
|
||||
list($sample,$expected) = $row;
|
||||
$result = $tp->makeClickable($sample, 'url',array('sub' => '[link]', 'ext'=>true));
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function testToDate()
|
||||
{
|
||||
|
||||
|
||||
$class = $this->tp;
|
||||
|
||||
$time = 1519512067; // Saturday 24 February 2018 - 22:41:07
|
||||
|
||||
$long = $class->toDate($time, 'long');
|
||||
$this->assertContains('Saturday 24 February 2018',$long);
|
||||
|
||||
$short = $class->toDate($time, 'short');
|
||||
$this->assertContains('Feb 2018', $short);
|
||||
|
||||
$rel = $class->toDate($time, 'relative');
|
||||
$this->assertContains('ago', $rel);
|
||||
$this->assertContains('data-livestamp="1519512067"', $rel);
|
||||
|
||||
$custom = $class->toDate($time, 'dd-M-yy');
|
||||
$this->assertContains('<span>24-Feb-18</span>', $custom);
|
||||
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testParseBBTags()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFilter()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testCleanHtml()
|
||||
{
|
||||
$tests = array(
|
||||
0 => array('html' => "<svg/onload=prompt(1)//", 'expected' => ''),
|
||||
1 => array('html' => '<script>alert(123)</script>', 'expected'=>''),
|
||||
2 => array('html' => '"><script>alert(123)</script>', 'expected'=>'">'),
|
||||
|
||||
);
|
||||
|
||||
foreach($tests as $var)
|
||||
{
|
||||
$result = $this->tp->cleanHtml($var['html']);
|
||||
// FIXME: This test doesn't do anything?
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testSecureAttributeValue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInvalidAttributeValue()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
}
|
126
e107_tests/tests/unit/e_parse_shortcodeTest.php
Normal file
126
e107_tests/tests/unit/e_parse_shortcodeTest.php
Normal file
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
class e_parse_shortcodeTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/** @var e_parse_shortcode */
|
||||
private $scParser;
|
||||
|
||||
public function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->scParser = $this->make('e_parse_shortcode');
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$this->fail("Couldn't create e_parse_shortcode object");
|
||||
}
|
||||
|
||||
$this->scParser->__construct();
|
||||
}
|
||||
|
||||
// public function testShortcode_SITELINKS_ALT()
|
||||
// {
|
||||
// $output = $this->scParser->parseCodes('{SITELINKS_ALT=/e107_themes/jayya/images/arrow.png+noclick}');
|
||||
// var_export($output);
|
||||
// }
|
||||
|
||||
/*
|
||||
public function testIsBatchOverride()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsRegistered()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsOverride()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testResetScClass()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDoCode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetScObject()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testParseCodes()
|
||||
{
|
||||
$text = '<ul class="dropdown-menu {LINK_SUB_OVERSIZED}" role="menu" >';
|
||||
|
||||
$array = array(
|
||||
'LINK_TEXT' => 'Content',
|
||||
'LINK_URL' => '#',
|
||||
'ONCLICK' => '',
|
||||
'SUB_HEAD' => '',
|
||||
'SUB_MENU' => '',
|
||||
|
||||
'ID' => '',
|
||||
'SUB_ID' => '',
|
||||
'LINK_CLASS' => 'e-expandit',
|
||||
'SUB_CLASS' => 'e-hideme e-expandme',
|
||||
'LINK_IMAGE' => '',
|
||||
'LINK_SUB_OVERSIZED' => 'oversized',
|
||||
'LINK_BADGE' => '',
|
||||
);
|
||||
|
||||
$result = $this->scParser->parseCodes($text, false, $array);
|
||||
|
||||
// var_dump($result);
|
||||
}
|
||||
/*
|
||||
public function testInitShortcodeClass()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRegisterShortcode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetScVar()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCallScFunc()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsScClass()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParse_scbatch()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLoadThemeShortcodes()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
}
|
317
e107_tests/tests/unit/e_pluginTest.php
Normal file
317
e107_tests/tests/unit/e_pluginTest.php
Normal file
@@ -0,0 +1,317 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_pluginTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_plugin */
|
||||
private $ep;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
// require_once(e_HANDLER."e_marketplace.php");
|
||||
|
||||
try
|
||||
{
|
||||
$this->ep = $this->make('e_plugin');
|
||||
$this->ep->__construct();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_plugin object");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a dummy plugin entry to make sure such plugins are ignored
|
||||
*/
|
||||
public function testIgnoringOfInvalidPlugin()
|
||||
{
|
||||
|
||||
$dir = e_PLUGIN."temptest";
|
||||
$file = e_PLUGIN."temptest/plugin.php";
|
||||
|
||||
mkdir($dir,0755);
|
||||
file_put_contents($file, "\n");
|
||||
|
||||
$detected = $this->ep->clearCache()->getDetected();
|
||||
|
||||
foreach($detected as $path)
|
||||
{
|
||||
if($path == 'temptest')
|
||||
{
|
||||
$this->assertFalse(true);
|
||||
}
|
||||
}
|
||||
|
||||
unlink($file);
|
||||
rmdir($dir);
|
||||
|
||||
$this->assertFalse(false);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function testClearCache()
|
||||
{
|
||||
|
||||
$detected = $this->ep->clearCache()->getDetected();
|
||||
$num = e107::getDb()->count('plugin','(*)');
|
||||
$det = count($detected);
|
||||
$this->assertEquals($num,$det);
|
||||
|
||||
// Simulate an orphaned plugin entry.
|
||||
$insert = array(
|
||||
'plugin_name' => "testClearCache",
|
||||
'plugin_version' => 1,
|
||||
'plugin_path' => 'missing_path',
|
||||
'plugin_installflag' => 1,
|
||||
'plugin_addons' => '',
|
||||
'plugin_category' => 'tools'
|
||||
);
|
||||
|
||||
e107::getDb()->insert('plugin', $insert);
|
||||
|
||||
|
||||
$detected = $this->ep->clearCache()->getDetected();
|
||||
$num = e107::getDb()->count('plugin','(*)');
|
||||
$det = count($detected);
|
||||
$this->assertEquals($num,$det);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function testBuildAddonPrefList()
|
||||
{
|
||||
|
||||
|
||||
$newUrls = array('gallery'=>0, 'news'=>'news', 'rss_menu'=>0);
|
||||
|
||||
e107::getConfig()->setData('e_url_list', $newUrls)->save(false,false,false);
|
||||
|
||||
$urlsBefore = e107::pref('core', 'e_url_list');
|
||||
$userBefore = e107::pref('core', 'e_user_list');
|
||||
|
||||
// print_r($userBefore);
|
||||
|
||||
$this->ep->clearCache()->buildAddonPrefLists();
|
||||
|
||||
$urlsAfter = e107::pref('core', 'e_url_list');
|
||||
$userAfter = e107::pref('core', 'e_user_list');
|
||||
|
||||
// print_r($userAfter);
|
||||
|
||||
$this->assertEquals($urlsBefore['gallery'],$urlsAfter['gallery']);
|
||||
$this->assertEquals($userBefore['user'],$userAfter['user']);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function testGetInstallRequired()
|
||||
{
|
||||
$this->ep->load('user');
|
||||
|
||||
$result = $this->ep->clearCache()->getInstallRequired();
|
||||
|
||||
$this->assertFalse($result);
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGetUpgradableList()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsLegacy()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
public function testSetInstalled()
|
||||
{
|
||||
$this->ep->setInstalled('some-plugin', '1.3');
|
||||
|
||||
$arr = $this->ep->getInstalled();
|
||||
|
||||
$this->assertArrayHasKey('some-plugin', $arr);
|
||||
|
||||
// print_r($arr);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function testIsInstalled()
|
||||
{
|
||||
$result = $this->ep->clearCache()->load('user')->isInstalled();
|
||||
|
||||
$this->assertTrue($result);
|
||||
}
|
||||
|
||||
public function testGetDetected()
|
||||
{
|
||||
$result = $this->ep->clearCache()->getDetected();
|
||||
|
||||
$hasBanner = in_array("banner", $result);
|
||||
|
||||
$this->assertTrue($hasBanner);
|
||||
|
||||
$hasUser = in_array("user", $result);
|
||||
|
||||
$this->assertTrue($hasUser);
|
||||
}
|
||||
/*
|
||||
public function testGetCompat()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetKeywords()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAdminUrl()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAddons()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetCategoryList()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAddonErrors()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetIcon()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testGetInstalled()
|
||||
{
|
||||
$result = $this->ep->clearCache()->getInstalled();
|
||||
|
||||
$this->assertNotEmpty($result['user']);
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGetVersion()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
public function testGetFields()
|
||||
{
|
||||
$result = $this->ep->clearCache()->load('forum')->getFields(true);
|
||||
|
||||
// print_r($result);
|
||||
|
||||
$this->assertEquals('LAN_PLUGIN_FORUM_NAME', $result['plugin_name']);
|
||||
$this->assertNotEmpty($result['plugin_id'], "plugin_id was empty" );
|
||||
$this->assertNotEmpty($result['plugin_path'], "plugin_path was empty" );
|
||||
$this->assertEmpty($result['plugin_installflag'], "plugin_installflag was true when it should be false");
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGetAdminCaption()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetDescription()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAuthor()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testBuildAddonPrefLists()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testClearCache()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
* Test check for global lan file.
|
||||
*/
|
||||
public function testHasLanGlobal()
|
||||
{
|
||||
$result = $this->ep->clearCache()->load('chatbox_menu')->hasLanGlobal();
|
||||
|
||||
$this->assertEquals('chatbox_menu', $result);
|
||||
|
||||
$result = $this->ep->clearCache()->load('alt_auth')->hasLanGlobal();
|
||||
|
||||
$this->assertFalse($result);
|
||||
}
|
||||
|
||||
public function testGetMeta()
|
||||
{
|
||||
$result = $this->ep->clearCache()->load('news')->getMeta();
|
||||
|
||||
$this->assertEquals('news', $result['folder']);
|
||||
$this->assertEquals('menu', $result['category']);
|
||||
}
|
||||
/*
|
||||
public function testLoad()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetCategory()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetInstalledWysiwygEditors()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetDate()
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
39
e107_tests/tests/unit/e_searchTest.php
Normal file
39
e107_tests/tests/unit/e_searchTest.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_searchTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/* public function testGetParams()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParsesearch_crop()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParsesearch()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetParams()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testStopword()
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
206
e107_tests/tests/unit/e_sessionTest.php
Normal file
206
e107_tests/tests/unit/e_sessionTest.php
Normal file
@@ -0,0 +1,206 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_sessionTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/** @var e_session */
|
||||
private $sess;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->sess = $this->make('e_session');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_session object");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testSetOption()
|
||||
{
|
||||
$opt = array(
|
||||
'lifetime' => 3600 ,
|
||||
'path' => '/',
|
||||
'domain' => 'test.com',
|
||||
'secure' => false,
|
||||
'httponly' => true,
|
||||
'_dummy' => 'not here'
|
||||
);
|
||||
|
||||
$this->sess->setOptions($opt);
|
||||
|
||||
$newOpt = $this->sess->getOptions();
|
||||
|
||||
unset($opt['_dummy']);
|
||||
|
||||
$this->assertEquals($opt,$newOpt);
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGetOption()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetDefaultSystemConfig()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGet()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSet()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHas()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHasData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testClear()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testClearData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetConfig()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetNamespaceKey()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetOptions()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInit()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testStart()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetSessionId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetSessionId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetSaveMethod()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetSessionName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetSessionName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testValidateSessionCookie()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCookieDelete()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testValidate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetValidateData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetFormToken()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckFormToken()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testClose()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testEnd()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDestroy()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testReplaceRegistry()
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
102
e107_tests/tests/unit/e_shortcodeTest.php
Normal file
102
e107_tests/tests/unit/e_shortcodeTest.php
Normal file
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_shortcodeTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/*
|
||||
public function testSetVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetWrapperID()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testWrapper()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetScVar()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetScVar()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetParserVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddScVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetParserVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testEmptyScVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIssetScVar()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUnsetScVar()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetScVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddParserVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testEditable()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetMode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
}
|
85
e107_tests/tests/unit/e_signup_classTest.php
Normal file
85
e107_tests/tests/unit/e_signup_classTest.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_signup_classTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_signup_class */
|
||||
protected $sup;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
require_once(e_HANDLER."e_signup_class.php");
|
||||
try
|
||||
{
|
||||
$this->sup = $this->make('e_signup_class');
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_signup_class object");
|
||||
}
|
||||
|
||||
$this->sup->__construct();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function testRenderEmailPreview()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test__construct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRender_after_signup()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testProcessActivationLink()
|
||||
{
|
||||
$sess = '1234567890';
|
||||
$insert = array(
|
||||
'user_id' => 0,
|
||||
'user_name' => 'e_signup_class',
|
||||
'user_loginname' => 'e_signup',
|
||||
'user_email' => 'test@test.com',
|
||||
'user_sess' => $sess,
|
||||
'user_ban' => 1,
|
||||
);
|
||||
|
||||
$num = e107::getDb()->insert('user', $insert);
|
||||
|
||||
$this->assertGreaterThan(0,$num);
|
||||
|
||||
|
||||
|
||||
$result = $this->sup->processActivationLink('activate.'.$num.'.'.$sess);
|
||||
$this->assertEquals('success', $result);
|
||||
|
||||
$result = $this->sup->processActivationLink('activate.'.$num.'.'.$sess);
|
||||
$this->assertEquals('exists', $result);
|
||||
|
||||
$result = $this->sup->processActivationLink('activate.999.'.$sess);
|
||||
$this->assertEquals('invalid', $result);
|
||||
|
||||
$this->sup->processActivationLink('activate.999.'.$sess.".fr");
|
||||
$this->assertEquals("Privacy Policy", LAN_SIGNUP_122, "Language file failed to load.");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
182
e107_tests/tests/unit/e_themeTest.php
Normal file
182
e107_tests/tests/unit/e_themeTest.php
Normal file
@@ -0,0 +1,182 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Wiz
|
||||
* Date: 1/24/2019
|
||||
* Time: 9:21 AM
|
||||
*/
|
||||
|
||||
|
||||
class e_themeTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_theme */
|
||||
private $tm;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
// require_once(e_HANDLER."e_marketplace.php");
|
||||
|
||||
try
|
||||
{
|
||||
$this->tm = $this->make('e_theme');
|
||||
$this->tm->__construct();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_theme object");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public function testCssAttribute()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUpgradeThemeCode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetThemeList()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLoadLibrary()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParse_theme_php()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetThemeInfo()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
public function testGetThemeLayout()
|
||||
{
|
||||
|
||||
$pref = array (
|
||||
'jumbotron_home' =>
|
||||
array (
|
||||
0 => 'FRONTPAGE',
|
||||
1 => 'page.php?3!',
|
||||
2 => '/my-sef-url!',
|
||||
3 => '/news/?page=',
|
||||
),
|
||||
'jumbotron_full' =>
|
||||
array (
|
||||
0 => 'forum',
|
||||
1 => 'user.php!', // <-- exact match of URL
|
||||
// 2 => '/user', // <-- Expecting URL to match both user and usersetting since it contains no "!"
|
||||
),
|
||||
'jumbotron_sidebar_right' =>
|
||||
array (
|
||||
0 => '/news',
|
||||
1 => '/user/',
|
||||
2 => 'user.php?id',
|
||||
// 1 => '/usersettings.php'
|
||||
),
|
||||
'other_layout' =>
|
||||
array(
|
||||
0 => 'myplugin.php$', // <-- $ = script name match
|
||||
1 => 'forum/index.php',
|
||||
2 => 'page.php$', // <-- $ = script name match
|
||||
3 => '/user/settings?',
|
||||
4 => 'script.php$',
|
||||
5 => '/news/?bla',
|
||||
),
|
||||
'script_match' =>
|
||||
array(
|
||||
0 => 'myplugin/index.php$', // <-- $ = script name match
|
||||
|
||||
),
|
||||
);
|
||||
|
||||
$defaultLayout = "jumbotron_sidebar_right";
|
||||
|
||||
|
||||
$tests = array(
|
||||
0 => array('url' => SITEURL."index.php", 'expected' => 'jumbotron_home'),
|
||||
1 => array('url' => SITEURL."index.php?", 'expected' => 'jumbotron_home'),
|
||||
2 => array('url' => SITEURL."index.php?fbclid=asdlkjasdlakjsdasd", 'expected' => 'jumbotron_home'),
|
||||
3 => array('url' => SITEURL."index.php?utm_source=asdd&utm_medium=asdsd", 'expected' => 'jumbotron_home'),
|
||||
4 => array('url' => SITEURL."news", 'expected' => 'jumbotron_sidebar_right'),
|
||||
5 => array('url' => SITEURL."forum", 'script' => "/forum/index.php", 'expected' => 'jumbotron_full'),
|
||||
6 => array('url' => SITEURL."other/page", 'script' => '/page.php', 'expected' => 'other_layout'),
|
||||
7 => array('url' => SITEURL."news.php?5.3", 'script' => '/news.php', 'expected' => 'jumbotron_sidebar_right'),
|
||||
8 => array('url' => SITEURL."usersettings.php", 'script' => '/usersettings.php', 'expected' => 'jumbotron_sidebar_right'),
|
||||
9 => array('url' => SITEURL."user.php", 'script' => '/user.php', 'expected' => 'jumbotron_full'),
|
||||
10 => array('url' => SITEURL."page.php", 'script' => '/page.php', 'expected' => 'other_layout'),
|
||||
11 => array('url' => SITEURL."page.php?3", 'script' => '/page.php', 'expected' => 'jumbotron_home'),
|
||||
12 => array('url' => SITEURL."somepage/", 'script' => "/script.php", 'expected' => 'other_layout'),
|
||||
13 => array('url' => SITEURL."plugin/", 'script' => "/myplugin.php", 'expected' => 'other_layout'),
|
||||
14 => array('url' => SITEURL."forum/index.php", 'script' => "/index.php", 'expected' => 'other_layout'),
|
||||
15 => array('url' => SITEURL."my-chapter/my-title", 'script' => "/page.php", 'expected' => 'other_layout'),
|
||||
16 => array('url' => SITEURL."my-sef-url", 'script' => '/index.php', 'expected' => 'jumbotron_home'),
|
||||
17 => array('url' => SITEURL."user/settings?id=1", 'script' => '/usersettings.php', 'expected' => 'other_layout'),
|
||||
18 => array('url' => SITEURL."user/Tijn", 'script' => '/user.php', 'expected' => 'jumbotron_sidebar_right'),
|
||||
19 => array('url' => SITEURL."user.php?id.1", 'script' => '/user.php', 'expected' => 'jumbotron_sidebar_right'),
|
||||
20 => array('url' => SITEURL."pluginpage/", 'script' => '/myplugin/index.php', 'expected' => 'script_match'),
|
||||
21 => array('url' => SITEURL."news/?page=", 'script' => '/news.php', 'expected' => 'jumbotron_home'),
|
||||
22 => array('url' => SITEURL."news/my-news-title", 'script' => '/news.php', 'expected' => 'jumbotron_sidebar_right'),
|
||||
23 => array('url' => SITEURL."news/?bla", 'script' => '/news.php', 'expected' => 'other_layout'),
|
||||
|
||||
);
|
||||
|
||||
foreach($tests as $item=>$var)
|
||||
{
|
||||
|
||||
$result = $this->tm->getThemeLayout($pref, $defaultLayout, $var['url'], $var['script']);
|
||||
$this->assertEquals($var['expected'],$result, "Wrong theme layout returned for item [".$item."] ".$var['url']);
|
||||
// echo $var['url']."\t\t\t".$result."\n\n";
|
||||
}
|
||||
|
||||
|
||||
// print_r($_SERVER);
|
||||
|
||||
}
|
||||
/*
|
||||
public function testClearCache()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGet()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetList()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParse_theme_xml()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
public function testLoadLayout()
|
||||
{
|
||||
// $res = e_theme::loadLayout('full', 'bootstrap4');
|
||||
|
||||
// var_dump($res);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
125
e107_tests/tests/unit/e_userTest.php
Normal file
125
e107_tests/tests/unit/e_userTest.php
Normal file
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_userTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
protected $user;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->user = $this->make('e_user');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_user object");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testIsCurrent()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetProvider()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLogoutAs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInitProvider()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetSessionData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test__construct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLogin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLogout()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHasProvider()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetProvider()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetSessionDataAs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLoginProvider()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLoginAs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testTryProviderSession()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLoad()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLoadAs()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetParentId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDestroy()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHasSessionError()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
381
e107_tests/tests/unit/e_user_modelTest.php
Normal file
381
e107_tests/tests/unit/e_user_modelTest.php
Normal file
@@ -0,0 +1,381 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_user_modelTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_user_model */
|
||||
protected $usr;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$this->usr = $this->make('e_user_model');
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_user_model object");
|
||||
}
|
||||
|
||||
$this->usr->load(1); // load user_id = 1.
|
||||
|
||||
}
|
||||
|
||||
/* public function testSave()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAdminEmail()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
public function testGetClassList()
|
||||
{
|
||||
$result = $this->usr->getClassList();
|
||||
$expected = array ( 0 => 253, 1 => 254, 2 => 250, 3 => 251, 4 => 0,);
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
$result = $this->usr->getClassList(true);
|
||||
$expected = "253,254,250,251,0";
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
}
|
||||
|
||||
/* public function testIsNewUser()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetCore()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetEditor()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testDestroy()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRemoveClass()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAdminName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckToken()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFindPref()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLoad()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAdminId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSaveDebug()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetCore()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHasRestriction()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetExtendedFront()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetTimezone()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsExtendedField()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetPrefData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsAdmin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsCurrent()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsWritable()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
public function testGetName()
|
||||
{
|
||||
$result = $this->usr->getName();
|
||||
$this->assertEquals('e107', $result);
|
||||
}
|
||||
/*
|
||||
public function testGetAdminPerms()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsCoreField()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHasProviderName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMergePostedData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetDisplayName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetClassRegex()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsGuest()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetAdminPwchange()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetEditor()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetUserData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetPref()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testAddClass()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHasEditor()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetConfig()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsReadable()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetValue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetToken()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetExtendedModel()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
public function testRandomKey()
|
||||
{
|
||||
$obj = $this->usr;
|
||||
|
||||
$result = $obj::randomKey();
|
||||
|
||||
$this->assertEquals(32,strlen($result));
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGetSignatureValue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetId()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetConfig()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetPref()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetRealName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckClass()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testHasBan()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetSystem()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckAdminPerms()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckEditorPerms()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test__construct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsUser()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetValue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetSignatureValue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetProviderName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetExtendedModel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetExtendedFront()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetExtended()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetLoginName()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
public function testIsBot()
|
||||
{
|
||||
$result = $this->usr->isBot();
|
||||
$this->assertFalse($result);
|
||||
}
|
||||
/*
|
||||
public function testSetExtended()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetSystem()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsMainAdmin()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
}
|
191
e107_tests/tests/unit/lancheckTest.php
Normal file
191
e107_tests/tests/unit/lancheckTest.php
Normal file
@@ -0,0 +1,191 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Wiz
|
||||
* Date: 1/30/2019
|
||||
* Time: 12:17 PM
|
||||
*/
|
||||
|
||||
|
||||
class lancheckTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var lancheck */
|
||||
protected $lan;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
// fix for getperms("L") check in lancheck.php
|
||||
define('ADMINPERMS', 'L');
|
||||
|
||||
require_once(e_ADMIN."lancheck.php");
|
||||
|
||||
try
|
||||
{
|
||||
$this->lan = $this->make('lancheck');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->fail("Couldn't load lancheck object");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public function testCheck_lan_errors()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckLog()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testFill_phrases_array()
|
||||
{
|
||||
|
||||
$strings =
|
||||
'define("LAN1", "Főadminisztrátor");'."\n".
|
||||
'define("LAN2", "Hői");'."\n".
|
||||
'define("LAN3", "Rendszerinformáció");'."\n".
|
||||
'define("LAN4", "Felhasználó");'."\n".
|
||||
'define("LAN5", "Regisztrált felhasználó");';
|
||||
|
||||
$expected = array (
|
||||
'orig' =>
|
||||
array (
|
||||
'LAN1' => 'Főadminisztrátor',
|
||||
'LAN2' => 'Hői',
|
||||
'LAN3' => 'Rendszerinformáció',
|
||||
'LAN4' => 'Felhasználó',
|
||||
'LAN5' => 'Regisztrált felhasználó',
|
||||
),
|
||||
);
|
||||
|
||||
$actual = $this->lan->fill_phrases_array($strings, 'orig');
|
||||
$this->assertEquals($expected, $actual, 'fill_phrases_array() failed.');
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
public function testThirdPartyPlugins()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInit()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheck_lanfiles()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetFilePaths()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetOnlineLanguagePacks()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGet_comp_lan_phrases()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testIs_utf8()
|
||||
{
|
||||
$strings = array(
|
||||
"Főadminisztrátor",
|
||||
"Hői",
|
||||
"Rendszerinformáció",
|
||||
"Felhasználó",
|
||||
"Regisztrált felhasználó");
|
||||
|
||||
foreach($strings as $expected)
|
||||
{
|
||||
$actual = $this->lan->is_utf8($expected);
|
||||
$this->assertEquals(true, $actual, 'is_utf8() failed on '.$expected.'.');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
public function testWrite_lanfile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCountFiles()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function test__construct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCleanFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetLocalLanguagePacks()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheck_core_lanfiles()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRemoveLanguagePack()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testErrorsOnly()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheck_all()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testZipLang()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGet_lan_file_phrases()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testNewFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testEdit_lanfiles()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
}
|
123
e107_tests/tests/unit/plugins/e107TinyMceParserTest.php
Normal file
123
e107_tests/tests/unit/plugins/e107TinyMceParserTest.php
Normal file
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2018 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e107TinyMceParserTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e107TinyMceParser $tm */
|
||||
private $tm;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
define('TINYMCE_UNIT_TEST', true);
|
||||
require_once(e_PLUGIN."tinymce4/plugins/e107/parser.php");
|
||||
try
|
||||
{
|
||||
$this->tm = $this->make('e107TinyMceParser');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->fail("Couldn't load e107TinyMceParser object");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function testToHtmlOnPlain()
|
||||
{
|
||||
$test = 'Plain text paragraph 1
|
||||
|
||||
Plain text "paragraph" 2
|
||||
|
||||
Plain text paragraph 3
|
||||
';
|
||||
|
||||
$actual = $this->tm->toHTML($test);
|
||||
$expected = 'Plain text paragraph 1<br />
|
||||
<br />
|
||||
Plain text "paragraph" 2<br />
|
||||
<br />
|
||||
Plain text paragraph 3<br />';
|
||||
|
||||
$this->assertEquals($expected, $actual, "Plain text line-breaks to HTML failed in the TinyMce editor." );
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testToHtmlOnBbcode()
|
||||
{
|
||||
$test = '[b]Bold text[/b]
|
||||
|
||||
paragraph 2
|
||||
|
||||
paragraph 3';
|
||||
|
||||
$actual = $this->tm->toHTML($test);
|
||||
|
||||
$expected = "<strong class='bbcode bold bbcode-b'>Bold text</strong><br />
|
||||
<br />
|
||||
paragraph 2<br />
|
||||
<br />
|
||||
paragraph 3";
|
||||
|
||||
$this->assertEquals($expected, $actual, "Bbcode to HTML failed in the TinyMce editor." );
|
||||
|
||||
}
|
||||
|
||||
public function testToBBcode()
|
||||
{
|
||||
|
||||
$test_1 = '<ul>
|
||||
<li>one<a class="bbcode bbcode-link" href="http://www.three.co.uk/"></a></li>
|
||||
<li>two</li>
|
||||
<li>three</li>
|
||||
<li>four</li>
|
||||
</ul>
|
||||
<sup>2</sup>
|
||||
';
|
||||
|
||||
$actual_1 = $this->tm->toBBcode($test_1);
|
||||
$expected_1 = '[html]<ul>
|
||||
<li>one<a class="bbcode bbcode-link" href="http://www.three.co.uk/"></a></li>
|
||||
<li>two</li>
|
||||
<li>three</li>
|
||||
<li>four</li>
|
||||
</ul>
|
||||
<sup>2</sup>[/html]';
|
||||
|
||||
// echo $actual;
|
||||
|
||||
$this->assertEquals($expected_1, $actual_1);
|
||||
|
||||
|
||||
|
||||
$test_2 =
|
||||
'<p><img class="img-rounded rounded bbcode bbcode-img bbcode-img-right" src="'.e_HTTP.'media/img/300x0/2017-11/e107_about.png" alt="E107 About" srcset="'.e_HTTP.'media/img/600x0/2017-11/e107_about.png 600w" width="300">Some text</p>
|
||||
<p><img class="img-rounded rounded bbcode bbcode-img bbcode-img-left" src="'.e_HTTP.'media/img/600x0/2017-11/e107_about.png" alt="E107 About" srcset="'.e_HTTP.'media/img/1200x0/2017-11/e107_about.png 1200w" width="600">Some other text</p>';
|
||||
|
||||
|
||||
|
||||
|
||||
$actual_2 = $this->tm->toBBcode($test_2);
|
||||
|
||||
$expected_2 = '[html]<p>[img class=bbcode-img-right&width=300]{e_MEDIA_IMAGE}2017-11/e107_about.png[/img]Some text</p>
|
||||
<p>[img class=bbcode-img-left&width=600]{e_MEDIA_IMAGE}2017-11/e107_about.png[/img]Some other text</p>[/html]';
|
||||
|
||||
$this->assertEquals($expected_2, $actual_2);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class e_tohtml_linkwordsTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var e_tohtml_linkwords */
|
||||
protected $lw;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
require_once(e_PLUGIN."linkwords/e_tohtml.php");
|
||||
try
|
||||
{
|
||||
$this->lw = $this->make('e_tohtml_linkwords');
|
||||
} catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load e_tohtml_linkwords object");
|
||||
}
|
||||
|
||||
$words = array(
|
||||
0 => array('word'=> 'contact us', 'link'=>'/contact.php', 'ext'=>'', 'tip'=>'Contact Us Now', 'limit'=>'3'),
|
||||
1 => array('word'=> 'contact form', 'link'=>'/contact.php', 'ext'=>'', 'tip'=>'Click here', 'limit'=> '5'),
|
||||
2 => array('word'=> 'fill out this form', 'link'=>'', 'ext'=>'', 'tip'=>'My Tip', 'limit'=>'5'),
|
||||
3 => array('word'=> '', 'link'=>'', 'ext'=>'', 'tip'=>'', 'limit'=>'3'),
|
||||
|
||||
);
|
||||
|
||||
$opts = array ('BODY' => '1', 'DESCRIPTION' => '1');
|
||||
|
||||
$this->lw->enable();
|
||||
$this->lw->setWordData($words);
|
||||
$this->lw->setAreaOpts($opts);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function testTo_html()
|
||||
{
|
||||
$tests = array(
|
||||
0 => array(
|
||||
'text' => "Please contact us here",
|
||||
'expected' => "Please <a class=\"lw-tip lw-link lw-1\" href=\"/contact.php\" title=\"Contact Us Now\" >contact us</a> here"
|
||||
),
|
||||
|
||||
1 => array(
|
||||
'text' => "<p>Please fill in the <a href='#'>contact form</a> right here.",
|
||||
'expected' => "<p>Please fill in the <a href='#'>contact form</a> right here."
|
||||
),
|
||||
|
||||
2 => array(
|
||||
'text' => "<p>To know more fill out this form right away.</p>",
|
||||
'expected' => '<p>To know more <span class="lw-tip lw-1" title="My Tip" >fill out this form</span> right away.</p>',
|
||||
),
|
||||
|
||||
);
|
||||
|
||||
foreach($tests as $val)
|
||||
{
|
||||
$result = $this->lw->to_html($val['text'], 'BODY');
|
||||
$this->assertEquals($val['expected'],$result);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
public function testLinksproc()
|
||||
{
|
||||
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
1286
e107_tests/tests/unit/pluginsTest.php
Normal file
1286
e107_tests/tests/unit/pluginsTest.php
Normal file
File diff suppressed because it is too large
Load Diff
194
e107_tests/tests/unit/themeHandlerTest.php
Normal file
194
e107_tests/tests/unit/themeHandlerTest.php
Normal file
@@ -0,0 +1,194 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* Date: 2/7/2019
|
||||
* Time: 5:03 PM
|
||||
*/
|
||||
|
||||
|
||||
class themeHandlerTest extends \Codeception\Test\Unit
|
||||
{
|
||||
|
||||
/** @var themeHandler */
|
||||
protected $th;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$this->th = $this->make('themeHandler');
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load themeHandler object");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testSetThemeConfig()
|
||||
{
|
||||
|
||||
}
|
||||
/*
|
||||
public function testTheme_adminlog()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testPostObserver()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInstallContent()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderTheme()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetAdminStyle()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderThemeInfo()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderUploadForm()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testFindDefault()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetThemes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderOnline()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testShowThemes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetLayouts()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderThemeConfig()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetThemeCategory()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testShowPreview()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testLoadThemeConfig()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParse_theme_php()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderThemeHelp()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetAdminTheme()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRefreshPage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParse_theme_xml()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThemeUpload()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testInstallContentCheck()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetStyle()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetMarketplace()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderPresets()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testRenderPlugins()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testThemePreview()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetCustomPages()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetThemeInfo()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetTheme()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
}
|
247
e107_tests/tests/unit/user_classTest.php
Normal file
247
e107_tests/tests/unit/user_classTest.php
Normal file
@@ -0,0 +1,247 @@
|
||||
<?php
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class user_classTest extends \Codeception\Test\Unit
|
||||
{
|
||||
/** @var user_class */
|
||||
protected $uc;
|
||||
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->uc = $this->make('user_class');
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load user_class object");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
public function testGetFixedClassDescription()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGet_all_user_classes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUc_get_classname()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUc_required_class_list()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetIdentifier()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetID()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* @todo
|
||||
*/
|
||||
public function testUcAdd()
|
||||
{
|
||||
$expected = '1,4,6,9,247';
|
||||
$actual = $this->uc->ucAdd(e_UC_NEWUSER, '1,4,6,9');
|
||||
|
||||
$this->assertEquals($expected, $actual, 'ucAdd returned a wrong result');
|
||||
|
||||
$expected = array(1, 4, 6, 9, 247);
|
||||
$actual = $this->uc->ucAdd(e_UC_NEWUSER, '1,4,6,9', true);
|
||||
|
||||
$this->assertEquals($expected, $actual, 'ucAdd returned a wrong result');
|
||||
}
|
||||
/*
|
||||
public function testUc_get_classlist()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckbox()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testGetUsersInClass()
|
||||
{
|
||||
|
||||
$result = $this->uc->getUsersInClass(e_UC_MEMBER);
|
||||
$expected = array (
|
||||
1 =>
|
||||
array (
|
||||
'user_id' => '1',
|
||||
'user_name' => 'e107',
|
||||
'user_loginname' => 'e107',
|
||||
),
|
||||
);
|
||||
|
||||
$matched = array_intersect_assoc($expected,$result);
|
||||
$this->assertNotEmpty($matched);
|
||||
|
||||
|
||||
|
||||
$result = $this->uc->getUsersInClass(e_UC_ADMIN.",5,4,3", 'user_perms');
|
||||
$expected = array (
|
||||
1 =>
|
||||
array (
|
||||
'user_id' => '1',
|
||||
'user_perms' => '0',
|
||||
),
|
||||
);
|
||||
|
||||
$matched = array_intersect_assoc($expected,$result);
|
||||
$this->assertNotEmpty($matched);
|
||||
|
||||
$result = $this->uc->getUsersInClass(e_UC_MAINADMIN);
|
||||
$expected = array (
|
||||
1 =>
|
||||
array (
|
||||
'user_id' => '1',
|
||||
'user_name' => 'e107',
|
||||
'user_loginname' => 'e107',
|
||||
),
|
||||
);
|
||||
|
||||
$matched = array_intersect_assoc($expected,$result);
|
||||
$this->assertNotEmpty($matched);
|
||||
|
||||
}
|
||||
/*
|
||||
public function testGet_editable_classes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testCheckbox_desc()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsEditableClass()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetClassList()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetClassFromKey()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testStripFixedClasses()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUc_get_classdescription()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testUcRemove()
|
||||
{
|
||||
$expected = '1,4,6,9';
|
||||
$actual = $this->uc->ucRemove(e_UC_NEWUSER, '1,4,6,9,247');
|
||||
|
||||
$this->assertEquals($expected, $actual, 'ucRemove return a wrong result');
|
||||
|
||||
$expected = array(1, 4, 6, 9);
|
||||
$actual = $this->uc->ucRemove(e_UC_NEWUSER, '1,4,6,9,247', true);
|
||||
|
||||
$this->assertEquals($expected, $actual, 'ucRemove returned a wrong result');
|
||||
}
|
||||
/*
|
||||
public function testReadTree()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testIsAdmin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUc_get_classicon()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testClearCache()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetDescription()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUc_dropdown()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUc_checkboxes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testNormalise_classes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSelect()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testMergeClassLists()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testUcGetClassIDFromName()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testVetted_tree()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
243
e107_tests/tests/unit/xmlClassTest.php
Normal file
243
e107_tests/tests/unit/xmlClassTest.php
Normal file
@@ -0,0 +1,243 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Wiz
|
||||
* Date: 11/15/2018
|
||||
* Time: 12:01 PM
|
||||
*/
|
||||
|
||||
|
||||
class xmlClassTest extends \Codeception\Test\Unit
|
||||
{
|
||||
const RAW_XML = '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<feed xmlns:yt="http://www.youtube.com/xml/schemas/2015" xmlns:media="http://search.yahoo.com/mrss/" xmlns="http://www.w3.org/2005/Atom">
|
||||
<link rel="self" href="http://www.youtube.com/feeds/videos.xml?channel_id=UC7vv3cBq14FRXajteZt6FEg"/>
|
||||
<id>yt:channel:UC7vv3cBq14FRXajteZt6FEg</id>
|
||||
<yt:channelId>UC7vv3cBq14FRXajteZt6FEg</yt:channelId>
|
||||
<title>egucom2014</title>
|
||||
<link rel="alternate" href="https://www.youtube.com/channel/UC7vv3cBq14FRXajteZt6FEg"/>
|
||||
<author>
|
||||
<name>egucom2014</name>
|
||||
<uri>https://www.youtube.com/channel/UC7vv3cBq14FRXajteZt6FEg</uri>
|
||||
</author>
|
||||
<published>2016-01-17T11:31:33+00:00</published>
|
||||
<entry>
|
||||
<id>yt:video:palm1QdV8ZI</id>
|
||||
<yt:videoId>palm1QdV8ZI</yt:videoId>
|
||||
<yt:channelId>UC7vv3cBq14FRXajteZt6FEg</yt:channelId>
|
||||
<title>[EGU] Erstes Offizielles Intro</title>
|
||||
<link rel="alternate" href="https://www.youtube.com/watch?v=palm1QdV8ZI"/>
|
||||
<author>
|
||||
<name>egucom2014</name>
|
||||
<uri>https://www.youtube.com/channel/UC7vv3cBq14FRXajteZt6FEg</uri>
|
||||
</author>
|
||||
<published>2017-09-30T18:44:07+00:00</published>
|
||||
<updated>2019-01-18T20:11:48+00:00</updated>
|
||||
<media:group>
|
||||
<media:title>[EGU] Erstes Offizielles Intro</media:title>
|
||||
<media:content url="https://www.youtube.com/v/palm1QdV8ZI?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
|
||||
<media:thumbnail url="https://i1.ytimg.com/vi/palm1QdV8ZI/hqdefault.jpg" width="480" height="360"/>
|
||||
<media:description>Das erste Intro von Eternal GamerZ United!</media:description>
|
||||
<media:community>
|
||||
<media:starRating count="3" average="3.67" min="1" max="5"/>
|
||||
<media:statistics views="71"/>
|
||||
</media:community>
|
||||
</media:group>
|
||||
</entry>
|
||||
</feed>';
|
||||
/** @var xmlClass */
|
||||
private $_xml;
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->_xml = $this->make('xmlClass',
|
||||
[
|
||||
'getRemoteFile' => function($address, $timeout = 10, $postData = null)
|
||||
{
|
||||
$this->_xml->xmlFileContents = self::RAW_XML;
|
||||
return self::RAW_XML;
|
||||
},
|
||||
'xmlFileContents' => self::RAW_XML
|
||||
]
|
||||
);
|
||||
// $this->_xml->__construct();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->assertTrue(false, "Couldn't load xmlClass object");
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
public function testXml_convert_to_array()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testLoadXMLfile()
|
||||
{
|
||||
$feed = 'https://www.youtube.com/feeds/videos.xml?channel_id=UC7vv3cBq14FRXajteZt6FEg';
|
||||
$contents = $this->_xml->reset(true)->loadXMLFile($feed,true);
|
||||
|
||||
$this->assertNotEmpty($contents);
|
||||
|
||||
// print_r($contents);
|
||||
|
||||
}
|
||||
/*
|
||||
public function testSetOptFilter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetOptStringTags()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testParseXml()
|
||||
{
|
||||
$raw = self::RAW_XML;
|
||||
|
||||
$result = $this->_xml->parseXml($raw,true);
|
||||
|
||||
$this->assertEquals('egucom2014', $result['author']['name']);
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testE107ExportValue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetOptArrayTags()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testParseStringTags()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetErrors()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetOptAddRoot()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testE107ImportValue()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testGetLastErrorMessage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetOptStripComments()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testGetRemoteFile()
|
||||
{
|
||||
$feed = 'https://www.youtube.com/feeds/videos.xml?channel_id=UC7vv3cBq14FRXajteZt6FEg';
|
||||
$contents = $this->_xml->getRemoteFile($feed,true);
|
||||
|
||||
$this->assertContains('<?xml version="1.0" encoding="UTF-8"?>',$contents);
|
||||
|
||||
}
|
||||
/*
|
||||
public function testSetOptForceArray()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testSetOptValueKey()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testE107ImportPrefs()
|
||||
{
|
||||
$file = e_CORE."xml/default_install.xml";
|
||||
|
||||
$checks = array('ssl_enabled', 'smtp_server', 'e_jslib_core', 'e_jslib_plugin');
|
||||
|
||||
$xmlArray = $this->_xml->loadXMLfile($file, 'advanced');
|
||||
|
||||
|
||||
|
||||
$arr = array();
|
||||
|
||||
foreach($xmlArray['prefs']['core'] as $val)
|
||||
{
|
||||
if(in_array($val['@attributes']['name'],$checks))
|
||||
{
|
||||
$arr['prefs']['core'][] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$result = $this->_xml->e107ImportPrefs($arr);
|
||||
|
||||
$expected = array (
|
||||
'e_jslib_core' =>
|
||||
array (
|
||||
'prototype' => 'none',
|
||||
'jquery' => 'all',
|
||||
),
|
||||
'e_jslib_plugin' =>
|
||||
array (
|
||||
),
|
||||
'smtp_server' => '',
|
||||
'ssl_enabled' => '0',
|
||||
);
|
||||
|
||||
$this->assertEquals($expected,$result);
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
public function testSetFeedUrl()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testXml2array()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
public function testE107Import()
|
||||
{
|
||||
|
||||
}
|
||||
/*
|
||||
public function testSetUrlPrefix()
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
public function testE107Export()
|
||||
{
|
||||
$ret = $this->_xml->e107Export(array('core'), null, null, null, array('return'=>true));
|
||||
|
||||
$incorrect = '<core name="e_jslib_plugin"><![CDATA[Array]]></core>';
|
||||
$correct = '<core name="e_jslib_plugin"><![CDATA[array ()]]></core>';
|
||||
|
||||
$this->assertNotContains($incorrect, $ret);
|
||||
$this->assertContains($correct, $ret);
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user