mirror of
https://github.com/e107inc/e107.git
synced 2025-08-03 21:27:25 +02:00
More User Extended Tests.
This commit is contained in:
@@ -351,6 +351,10 @@ class usersettings_shortcodes extends e_shortcode
|
||||
$tp = e107::getParser();
|
||||
$frm = e107::getForm();
|
||||
|
||||
if(empty($this->var['userclass_list']) && ADMIN)
|
||||
{
|
||||
return '$this->var[\'userclass_list\'] is empty';
|
||||
}
|
||||
|
||||
$qry = "
|
||||
SELECT * FROM #user_extended_struct
|
||||
@@ -393,8 +397,6 @@ class usersettings_shortcodes extends e_shortcode
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(($parm == 'tabs') && !empty($tabs) && deftrue('BOOTSTRAP'))
|
||||
{
|
||||
return e107::getForm()->tabs($tabs);
|
||||
@@ -445,6 +447,7 @@ class usersettings_shortcodes extends e_shortcode
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($catInfo)
|
||||
{
|
||||
$qry = "
|
||||
@@ -462,9 +465,7 @@ class usersettings_shortcodes extends e_shortcode
|
||||
foreach($fieldList as $field)
|
||||
{
|
||||
e107::setRegistry("extendedfield_{$field['user_extended_struct_name']}", $field);
|
||||
//TODO use $this instead of parseTemplate();
|
||||
$ret .= $this->sc_userextended_field($field['user_extended_struct_name']);
|
||||
// $ret .= $tp->parseTemplate("{USEREXTENDED_FIELD={$field['user_extended_struct_name']}}", TRUE, $usersettings_shortcodes);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -484,6 +485,28 @@ class usersettings_shortcodes extends e_shortcode
|
||||
return $ret;
|
||||
}
|
||||
|
||||
public function getUserExtendedFieldData($name)
|
||||
{
|
||||
$tp = e107::getParser();
|
||||
$sql = e107::getDb();
|
||||
|
||||
$fInfo = array();
|
||||
|
||||
$qry = "
|
||||
SELECT * FROM #user_extended_struct
|
||||
WHERE user_extended_struct_applicable IN (" . $tp->toDB($this->var['userclass_list'], true) . ")
|
||||
AND user_extended_struct_write IN (" . USERCLASS_LIST . ")
|
||||
AND user_extended_struct_name = '" . $tp->toDB($name, true) . "'
|
||||
";
|
||||
if($sql->gen($qry))
|
||||
{
|
||||
$fInfo = $sql->fetch();
|
||||
}
|
||||
|
||||
return $fInfo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function sc_userextended_field($parm = null)
|
||||
{
|
||||
@@ -522,16 +545,7 @@ class usersettings_shortcodes extends e_shortcode
|
||||
|
||||
if(!$fInfo)
|
||||
{
|
||||
$qry = "
|
||||
SELECT * FROM #user_extended_struct
|
||||
WHERE user_extended_struct_applicable IN (" . $tp->toDB($this->var['userclass_list'], true) . ")
|
||||
AND user_extended_struct_write IN (" . USERCLASS_LIST . ")
|
||||
AND user_extended_struct_name = '" . $tp->toDB($parm, true) . "'
|
||||
";
|
||||
if($sql->gen($qry))
|
||||
{
|
||||
$fInfo = $sql->fetch();
|
||||
}
|
||||
$fInfo = $this->getUserExtendedFieldData($parm);
|
||||
}
|
||||
|
||||
if($fInfo)
|
||||
@@ -572,6 +586,8 @@ class usersettings_shortcodes extends e_shortcode
|
||||
|
||||
$rVal = !empty($fInfo['user_extended_struct_required']) ;
|
||||
|
||||
|
||||
|
||||
$ret = $USEREXTENDED_FIELD;
|
||||
$ret = str_replace("{FIELDNAME}", $fname, $ret);
|
||||
$ret = str_replace("{FIELDVAL}", $fval, $ret);
|
||||
|
@@ -155,6 +155,9 @@ class e107_user_extended
|
||||
else
|
||||
{ // Its a field definition
|
||||
$id = 'user_' . $row['user_extended_struct_name'];
|
||||
|
||||
$row['user_extended_struct_parent'] = (int) $row['user_extended_struct_parent'];
|
||||
|
||||
$this->fieldDefinitions[$row['user_extended_struct_id']] = $row;
|
||||
|
||||
|
||||
@@ -575,18 +578,14 @@ class e107_user_extended
|
||||
|
||||
// Get the definition of all fields, or those in a specific category, grouped by category ID
|
||||
// Reads non-system fields only
|
||||
function user_extended_get_fields($cat = "")
|
||||
public function user_extended_get_fields($cat = "")
|
||||
{
|
||||
$sql = e107::getDb('ue');
|
||||
$list = $this->getFieldList($cat);
|
||||
$ret = array();
|
||||
$more = ($cat) ? " AND user_extended_struct_parent = ".intval($cat)." " : "";
|
||||
if($sql->select("user_extended_struct", "*", "user_extended_struct_type > 0 AND user_extended_struct_text != '_system_' {$more} ORDER BY user_extended_struct_order ASC"))
|
||||
{
|
||||
while($row = $sql->fetch())
|
||||
foreach($list as $row)
|
||||
{
|
||||
$ret[$row['user_extended_struct_parent']][] = $row;
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
@@ -647,6 +646,27 @@ class e107_user_extended
|
||||
$indexField = 'user_extended_struct_id';
|
||||
}
|
||||
|
||||
$ret = [];
|
||||
foreach($this->fieldDefinitions as $row)
|
||||
{
|
||||
if(!empty($cat) && ($row['user_extended_struct_parent'] !== (int) $cat))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if($system == false && ($row['user_extended_struct_text'] === '_system_'))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$id = $row[$indexField];
|
||||
$ret[$id] = $row;
|
||||
|
||||
}
|
||||
|
||||
return $ret;
|
||||
|
||||
/*
|
||||
$sql = e107::getDb('ue');
|
||||
|
||||
$ret = array();
|
||||
@@ -662,7 +682,7 @@ class e107_user_extended
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
return $ret;*/
|
||||
}
|
||||
|
||||
|
||||
@@ -674,19 +694,15 @@ class e107_user_extended
|
||||
{
|
||||
$ret = array();
|
||||
|
||||
$sql = e107::getDb('ue');
|
||||
|
||||
if($sql->select("user_extended_struct", "*", "user_extended_struct_type > 0 ORDER BY user_extended_struct_order ASC"))
|
||||
{
|
||||
while($row = $sql->fetch())
|
||||
foreach($this->fieldDefinitions as $row)
|
||||
{
|
||||
$ret[] = 'user_'.$row['user_extended_struct_name'];
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the field-type of a given field-name.
|
||||
|
@@ -871,6 +871,7 @@ class e107Test extends \Codeception\Test\Unit
|
||||
e_PLUGIN_ABS . 'forum/forum_viewtopic.php?f=post&id=123',
|
||||
$url, "Generated href does not match expectation"
|
||||
);
|
||||
e107::getDb()->truncate('user_extended_struct');// reset.
|
||||
}
|
||||
|
||||
public function testUrlOptionQueryUrlEncoded()
|
||||
@@ -888,6 +889,7 @@ class e107Test extends \Codeception\Test\Unit
|
||||
'forum/post/?didn%27t=%3Ctag%20attr%3D%22such%20wow%22%3E%3C/tag%3E&did=much%20doge',
|
||||
$url, "Generated href query string did not have expected URL encoding"
|
||||
);
|
||||
e107::getDb()->truncate('user_extended_struct');// reset.
|
||||
}
|
||||
|
||||
public function testUrlEscapesHtmlSpecialChars()
|
||||
@@ -904,6 +906,7 @@ class e107Test extends \Codeception\Test\Unit
|
||||
'forum/<>/#Arts & Crafts <tag attr="can't inject here"></tag>',
|
||||
$url, "Generated href did not prevent HTML tag injection as expected"
|
||||
);
|
||||
e107::getDb()->truncate('user_extended_struct');// reset.
|
||||
}
|
||||
/*
|
||||
public function testRedirect()
|
||||
|
@@ -18,6 +18,7 @@
|
||||
/** @var e107_user_extended */
|
||||
protected $ue;
|
||||
|
||||
|
||||
protected function _before()
|
||||
{
|
||||
|
||||
@@ -85,6 +86,15 @@
|
||||
|
||||
);
|
||||
|
||||
$this->structParent = array(
|
||||
'list' => 16,
|
||||
'radio' => 16,
|
||||
'textarea' => 16,
|
||||
'country' => 17,
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
// Add a field of each type.
|
||||
foreach($this->structTypes as $k=> $v)
|
||||
@@ -98,6 +108,7 @@
|
||||
'parms' => null,
|
||||
'values' => (isset($this->structValues[$k])) ? $this->structValues[$k] : null,
|
||||
'default' => (isset($this->structDefault[$k])) ? $this->structDefault[$k] : null,
|
||||
'parent' => (isset($this->structParent[$k])) ? $this->structParent[$k] : 0,
|
||||
);
|
||||
|
||||
$this->ue->user_extended_add($insert);
|
||||
@@ -148,12 +159,8 @@
|
||||
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
$this->ue->init();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function testSetGet()
|
||||
@@ -274,6 +281,50 @@
|
||||
}
|
||||
|
||||
|
||||
public function testUserExtendedAllShortcode()
|
||||
{
|
||||
|
||||
$sc = e107::getScBatch('usersettings');
|
||||
|
||||
$sc->setVars(array('userclass_list' => '253,251,0,254,250'));
|
||||
|
||||
$result = e107::getParser()->parseTemplate('{USEREXTENDED_ALL}', false, $sc);
|
||||
|
||||
$this->assertStringContainsString('<h3>Category Name</h3>',$result);
|
||||
$this->assertStringContainsString('<h3>Category Name 2</h3>',$result);
|
||||
$this->assertStringContainsString('<h3>Miscellaneous</h3>', $result);
|
||||
|
||||
}
|
||||
|
||||
public function testGetUserExtendedFieldData()
|
||||
{
|
||||
$sc = e107::getScBatch('usersettings');
|
||||
|
||||
$sc->setVars(array('userclass_list' => '253,251,0,254,250'));
|
||||
|
||||
$expected = array (
|
||||
'user_extended_struct_id' => '3',
|
||||
'user_extended_struct_name' => 'radio',
|
||||
'user_extended_struct_text' => 'Radio',
|
||||
'user_extended_struct_type' => '2',
|
||||
'user_extended_struct_parms' => '',
|
||||
'user_extended_struct_values' => 'M => UE_LAN_MALE,F => UE_LAN_FEMALE',
|
||||
'user_extended_struct_default' => 'F',
|
||||
'user_extended_struct_read' => '0',
|
||||
'user_extended_struct_write' => '0',
|
||||
'user_extended_struct_required' => '0',
|
||||
'user_extended_struct_signup' => '0',
|
||||
'user_extended_struct_applicable' => '0',
|
||||
'user_extended_struct_order' => '2',
|
||||
'user_extended_struct_parent' => '16',
|
||||
);
|
||||
|
||||
$result = $sc->getUserExtendedFieldData('radio');
|
||||
$this->assertEquals($result, $expected);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function testGetStructure()
|
||||
{
|
||||
e107::setRegistry('core/userextended/structure'); // clear the registry.
|
||||
@@ -505,12 +556,32 @@
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
public function testGetFieldNames()
|
||||
{
|
||||
$expected = array (
|
||||
0 => 'user_text',
|
||||
1 => 'user_homepage',
|
||||
2 => 'user_radio',
|
||||
3 => 'user_dropdown',
|
||||
4 => 'user_dbfield',
|
||||
5 => 'user_textarea',
|
||||
6 => 'user_integer',
|
||||
7 => 'user_date',
|
||||
8 => 'user_language',
|
||||
9 => 'user_list',
|
||||
10 => 'user_checkbox',
|
||||
11 => 'user_predefined',
|
||||
12 => 'user_addon',
|
||||
13 => 'user_country',
|
||||
14 => 'user_richtextarea',
|
||||
);
|
||||
|
||||
$result = $this->ue->getFieldNames();
|
||||
$this->assertSame($expected, $result);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
public function testUser_extended_modify()
|
||||
{
|
||||
|
||||
@@ -615,12 +686,72 @@
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
public function testUser_extended_get_fields()
|
||||
{
|
||||
$expected = array (
|
||||
16 =>
|
||||
array (
|
||||
0 =>
|
||||
array (
|
||||
'user_extended_struct_id' => '3',
|
||||
'user_extended_struct_name' => 'radio',
|
||||
'user_extended_struct_text' => 'Radio',
|
||||
'user_extended_struct_type' => '2',
|
||||
'user_extended_struct_parms' => '',
|
||||
'user_extended_struct_values' => 'M => UE_LAN_MALE,F => UE_LAN_FEMALE',
|
||||
'user_extended_struct_default' => 'F',
|
||||
'user_extended_struct_read' => '0',
|
||||
'user_extended_struct_write' => '0',
|
||||
'user_extended_struct_required' => '0',
|
||||
'user_extended_struct_signup' => '0',
|
||||
'user_extended_struct_applicable' => '0',
|
||||
'user_extended_struct_order' => '2',
|
||||
'user_extended_struct_parent' => '16',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'user_extended_struct_id' => '6',
|
||||
'user_extended_struct_name' => 'textarea',
|
||||
'user_extended_struct_text' => 'Textarea',
|
||||
'user_extended_struct_type' => '5',
|
||||
'user_extended_struct_parms' => '',
|
||||
'user_extended_struct_values' => '',
|
||||
'user_extended_struct_default' => '',
|
||||
'user_extended_struct_read' => '0',
|
||||
'user_extended_struct_write' => '0',
|
||||
'user_extended_struct_required' => '0',
|
||||
'user_extended_struct_signup' => '0',
|
||||
'user_extended_struct_applicable' => '0',
|
||||
'user_extended_struct_order' => '5',
|
||||
'user_extended_struct_parent' => '16',
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'user_extended_struct_id' => '10',
|
||||
'user_extended_struct_name' => 'list',
|
||||
'user_extended_struct_text' => 'List',
|
||||
'user_extended_struct_type' => '9',
|
||||
'user_extended_struct_parms' => '',
|
||||
'user_extended_struct_values' => 'timezones',
|
||||
'user_extended_struct_default' => '',
|
||||
'user_extended_struct_read' => '0',
|
||||
'user_extended_struct_write' => '0',
|
||||
'user_extended_struct_required' => '0',
|
||||
'user_extended_struct_signup' => '0',
|
||||
'user_extended_struct_applicable' => '0',
|
||||
'user_extended_struct_order' => '9',
|
||||
'user_extended_struct_parent' => '16',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
$result = $this->ue->user_extended_get_fields(16);
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
public function testUser_extended_type_text()
|
||||
{
|
||||
|
||||
@@ -722,12 +853,67 @@
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
public function testUser_extended_get_fieldList()
|
||||
{
|
||||
$expected = array (
|
||||
'radio' =>
|
||||
array (
|
||||
'user_extended_struct_id' => '3',
|
||||
'user_extended_struct_name' => 'radio',
|
||||
'user_extended_struct_text' => 'Radio',
|
||||
'user_extended_struct_type' => '2',
|
||||
'user_extended_struct_parms' => '',
|
||||
'user_extended_struct_values' => 'M => UE_LAN_MALE,F => UE_LAN_FEMALE',
|
||||
'user_extended_struct_default' => 'F',
|
||||
'user_extended_struct_read' => '0',
|
||||
'user_extended_struct_write' => '0',
|
||||
'user_extended_struct_required' => '0',
|
||||
'user_extended_struct_signup' => '0',
|
||||
'user_extended_struct_applicable' => '0',
|
||||
'user_extended_struct_order' => '2',
|
||||
'user_extended_struct_parent' => 16,
|
||||
),
|
||||
'textarea' =>
|
||||
array (
|
||||
'user_extended_struct_id' => '6',
|
||||
'user_extended_struct_name' => 'textarea',
|
||||
'user_extended_struct_text' => 'Textarea',
|
||||
'user_extended_struct_type' => '5',
|
||||
'user_extended_struct_parms' => '',
|
||||
'user_extended_struct_values' => '',
|
||||
'user_extended_struct_default' => '',
|
||||
'user_extended_struct_read' => '0',
|
||||
'user_extended_struct_write' => '0',
|
||||
'user_extended_struct_required' => '0',
|
||||
'user_extended_struct_signup' => '0',
|
||||
'user_extended_struct_applicable' => '0',
|
||||
'user_extended_struct_order' => '5',
|
||||
'user_extended_struct_parent' => 16,
|
||||
),
|
||||
'list' =>
|
||||
array (
|
||||
'user_extended_struct_id' => '10',
|
||||
'user_extended_struct_name' => 'list',
|
||||
'user_extended_struct_text' => 'List',
|
||||
'user_extended_struct_type' => '9',
|
||||
'user_extended_struct_parms' => '',
|
||||
'user_extended_struct_values' => 'timezones',
|
||||
'user_extended_struct_default' => '',
|
||||
'user_extended_struct_read' => '0',
|
||||
'user_extended_struct_write' => '0',
|
||||
'user_extended_struct_required' => '0',
|
||||
'user_extended_struct_signup' => '0',
|
||||
'user_extended_struct_applicable' => '0',
|
||||
'user_extended_struct_order' => '9',
|
||||
'user_extended_struct_parent' => 16,
|
||||
),
|
||||
);
|
||||
|
||||
$result = $this->ue->user_extended_get_fieldList(16, 'user_extended_struct_name');
|
||||
$this->assertSame($expected, $result);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -663,7 +663,8 @@ class e_parse_shortcodeTest extends \Codeception\Test\Unit
|
||||
$sc->__construct();
|
||||
$sc->setVars($vars);
|
||||
|
||||
$exclude = array('sc_userextended_all'); // uses e107::setRegistry() to avoid duplicate rendering.
|
||||
// these are tested in the user-extended test.
|
||||
$exclude = array('sc_userextended_all', 'sc_userextended_cat', 'sc_userextended_field'); // uses e107::setRegistry() to avoid duplicate rendering.
|
||||
$this->processShortcodeMethods($sc, $exclude);
|
||||
|
||||
}
|
||||
|
@@ -252,6 +252,7 @@
|
||||
$this->assertNotEmpty($result['plugin_path'], "plugin_path was empty" );
|
||||
$this->assertEmpty($result['plugin_installflag'], "plugin_installflag was true when it should be false");
|
||||
|
||||
e107::getDb()->truncate('user_extended_struct');// reset.
|
||||
}
|
||||
/*
|
||||
public function testGetAdminCaption()
|
||||
|
@@ -180,6 +180,7 @@
|
||||
{
|
||||
$this->pluginInstall('forum');
|
||||
$this->pluginUninstall('forum');
|
||||
e107::getDb()->truncate('user_extended_struct'); // clear the table
|
||||
}
|
||||
|
||||
public function testGallery()
|
||||
|
Reference in New Issue
Block a user