1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-27 00:05:46 +02:00

Removed all SQL queries from usersettings_shortcodes.

This commit is contained in:
Cameron
2021-01-20 12:03:52 -08:00
parent b19f9ffbc3
commit 17dfe4149e
4 changed files with 567 additions and 352 deletions

View File

@@ -26,15 +26,13 @@
try
{
$this->ue = $this->make('e107_user_extended');
$this->ue = e107::getUserExt(); // $this->make('e107_user_extended');
}
catch(Exception $e)
{
$this->assertTrue(false, "Couldn't load e107_user_extended object");
}
$this->ue->__construct();
$this->structTypes = array(
'text' => EUF_TEXT,
@@ -120,9 +118,13 @@
// clear the table.
$sql = e107::getDb();
if($sql->select('user_extended_struct', 'user_extended_struct_id', "user_extended_struct_text = '_system_'"))
$fieldCount = (int) $sql->count('user_extended_struct');
if($fieldCount > 17)
{
codecept_debug("Truncating user_extended_struct");
$sql->truncate('user_extended_struct');
$this->ue->init(); // reload the extended fields from db.
}
@@ -140,6 +142,9 @@
'default' => (isset($this->structDefault[$k])) ? $this->structDefault[$k] : null,
'parent' => (isset($this->structParent[$k])) ? $this->structParent[$k] : 0,
'required' => (isset($this->structRequired[$k])) ? $this->structRequired[$k] : 0,
'read' => e_UC_MEMBER,
'write' => e_UC_ADMIN,
'applicable' => e_UC_MAINADMIN,
);
// simulate data from e_user.php 'settings' method.
@@ -220,6 +225,44 @@
}
public function testUserextendedCatShortcode()
{
$sc = e107::getScBatch('usersettings');
$sc->reset();
$perms = array(e_UC_PUBLIC, e_UC_MEMBER, e_UC_ADMIN, e_UC_MAINADMIN);
$sc->setVars(array('userclass_list' => implode(',',$perms)));
$cat = (int) e107::getDb()->retrieve('user_extended_struct', 'user_extended_struct_id', "user_extended_struct_name = 'mycategory' LIMIT 1");
$result = $sc->sc_userextended_cat($cat);
$this->assertStringContainsString('<h3>Category Name</h3>', $result);
$this->assertStringContainsString("<label class='col-sm-3 control-label'>Radio <span class='required'>", $result);
$this->assertStringContainsString("<textarea id='ue-user-textarea'", $result);
$this->assertStringContainsString("<select id='ue-user-list'", $result);
$result = $sc->sc_userextended_cat(0);
$this->assertStringContainsString('<h3>Miscellaneous</h3>', $result);
$this->assertStringContainsString("<label class='col-sm-3 control-label'>Dropdown", $result);
}
public function testUserExtendedFieldShortcode()
{
$sc = e107::getScBatch('usersettings');
$sc->reset();
$perms = array(e_UC_PUBLIC, e_UC_MEMBER, e_UC_ADMIN, e_UC_MAINADMIN);
$sc->setVars(array('userclass_list' => implode(',',$perms)));
$result = $sc->sc_userextended_field('radio');
$this->assertStringContainsString("Radio <span class='required'", $result);
}
/**
* Test the {USER_EXTENDED} shortcode.
*/
@@ -338,6 +381,8 @@
{
$sc = e107::getScBatch('usersettings');
$sc->wrapper('not-a-real-wrapper');
$sc->reset();
$sc->setVars(array('userclass_list' => '253,251,0,254,250'));
@@ -349,6 +394,65 @@
}
public function testloadUECatData()
{
/** @var usersettings_shortcodes $sc */
$sc = e107::getScBatch('usersettings');
$data = $sc->loadUECatData('write');
$this->assertCount(3, $data); // 3 categories including "Misc"
}
public function testloadUEFieldData()
{
/**
* All fields have been created with the following.
* 'read' => e_UC_MEMBER,
'write' => e_UC_ADMIN,
'applicable' => e_UC_MAINADMIN,
*
* $this->structParent = array(
'list' => 16,
'radio' => 16,
'textarea' => 16,
'country' => 17,
);
*/
$sc = e107::getScBatch('usersettings');
$GLOBALS['_E107']['phpunit'] = true; // disable universal CLI access in check_class()
$perms = array(e_UC_PUBLIC, e_UC_MEMBER, e_UC_ADMIN, e_UC_MAINADMIN);
$sc->setVars(array('userclass_list' => implode(',',$perms)));
// Load Fields from parent = 0
$data = $sc->loadUEFieldData('write', 0);
$this->assertArrayHasKey('text', $data);
$this->assertArrayHasKey('homepage', $data);
$this->assertArrayNotHasKey('radio', $data);
// Load Fields from parent = 16
$data = $sc->loadUEFieldData('write', 16);
$this->assertArrayHasKey('radio', $data);
$this->assertArrayHasKey('list', $data);
$this->assertArrayHasKey('textarea', $data);
// Load Fields from parent = 17
$data = $sc->loadUEFieldData('write', 17);
$this->assertArrayHasKey('country', $data);
$perms = array(e_UC_GUEST); // ie USERCLASS_LIST
$sc->setVars(array('userclass_list' => implode(',',$perms)));
$data = $sc->loadUEFieldData('write', 16);
$this->assertCount(0, $data); // should be empty
$GLOBALS['_E107']['phpunit'] = false; // fix check_class()
}
public function testSignupExtendedUserFieldsShortcode()
{
$this->fixRegistry('before');
@@ -407,6 +511,7 @@
private function fixRegistry($mode)
{
return null;
$regID = 'core/e107/singleton/e107_user_extended';
static $originalRegistry;
@@ -424,7 +529,7 @@
}
/*
public function testGetUserExtendedFieldData()
{
$sc = e107::getScBatch('usersettings');
@@ -439,11 +544,11 @@
'user_extended_struct_parms' => '',
'user_extended_struct_values' => 'M =&gt; UE_LAN_MALE,F =&gt; UE_LAN_FEMALE',
'user_extended_struct_default' => 'F',
'user_extended_struct_read' => '0',
'user_extended_struct_write' => '0',
'user_extended_struct_read' => '253',
'user_extended_struct_write' => '254',
'user_extended_struct_required' => '1',
'user_extended_struct_signup' => '0',
'user_extended_struct_applicable' => '0',
'user_extended_struct_applicable' => '250',
'user_extended_struct_order' => '2',
'user_extended_struct_parent' => '16',
);
@@ -452,7 +557,7 @@
$this->assertEquals($result, $expected);
}
*/
public function testGetStructure()
{
@@ -525,12 +630,47 @@
{
}
*/
public function testHasPermission()
{
/**
* All fields have been createad with the following.
* 'read' => e_UC_MEMBER,
'write' => e_UC_ADMIN,
'applicable' => e_UC_MAINADMIN,
*/
$GLOBALS['_E107']['phpunit'] = true; // fix check_class()
// $_E107['phpunit'] = true;
$ret = [];
foreach($this->structTypes as $field => $name)
{
$fid = 'user_'.$field;
// test public access against read = member.
$result = $this->ue->hasPermission($fid,'read', e_UC_PUBLIC);
$this->assertFalse($result);
// test member against write = admin.
$result = $this->ue->hasPermission($fid,'write', e_UC_MEMBER);
$this->assertFalse($result);
// test member against write = admin.
$result = $this->ue->hasPermission($fid,'applicable', e_UC_ADMIN);
$this->assertFalse($result);
// test member against write = admin.
$result = $this->ue->hasPermission($fid,'applicable', e_UC_MAINADMIN);
$this->assertTrue($result);
}
$GLOBALS['_E107']['phpunit'] = false;
}
*/
public function testGetFieldTypes()
{
$result = $this->ue->getFieldTypes();
@@ -864,11 +1004,11 @@
'user_extended_struct_parms' => '',
'user_extended_struct_values' => 'M =&gt; UE_LAN_MALE,F =&gt; UE_LAN_FEMALE',
'user_extended_struct_default' => 'F',
'user_extended_struct_read' => '0',
'user_extended_struct_write' => '0',
'user_extended_struct_read' => '253',
'user_extended_struct_write' => '254',
'user_extended_struct_required' => '1',
'user_extended_struct_signup' => '0',
'user_extended_struct_applicable' => '0',
'user_extended_struct_applicable' => '250',
'user_extended_struct_order' => '2',
'user_extended_struct_parent' => '16',
),
@@ -881,11 +1021,11 @@
'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_read' => '253',
'user_extended_struct_write' => '254',
'user_extended_struct_required' => '0',
'user_extended_struct_signup' => '0',
'user_extended_struct_applicable' => '0',
'user_extended_struct_applicable' => '250',
'user_extended_struct_order' => '5',
'user_extended_struct_parent' => '16',
),
@@ -898,11 +1038,11 @@
'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_read' => '253',
'user_extended_struct_write' => '254',
'user_extended_struct_required' => '1',
'user_extended_struct_signup' => '0',
'user_extended_struct_applicable' => '0',
'user_extended_struct_applicable' => '250',
'user_extended_struct_order' => '9',
'user_extended_struct_parent' => '16',
),
@@ -961,16 +1101,23 @@
{
}
*/
public function testGetFields()
{
$data = $this->ue->getFields();
$this->assertArrayHasKey('text', $data);
// var_dump($data);
// $this->assertCount(15, $data);
$data = $this->ue->getFields(16);
$this->assertArrayHasKey('radio', $data);
// $this->assertCount(3, $data);
$data = $this->ue->getFields(17);
$this->assertArrayHasKey('country', $data);
// $this->assertCount(1, $data);
}
public function testGet()
{
}
/*
public function testUser_extended_field_exist()
{
@@ -1029,11 +1176,11 @@
'user_extended_struct_parms' => '',
'user_extended_struct_values' => 'M =&gt; UE_LAN_MALE,F =&gt; UE_LAN_FEMALE',
'user_extended_struct_default' => 'F',
'user_extended_struct_read' => '0',
'user_extended_struct_write' => '0',
'user_extended_struct_read' => '253',
'user_extended_struct_write' => '254',
'user_extended_struct_required' => '1',
'user_extended_struct_signup' => '0',
'user_extended_struct_applicable' => '0',
'user_extended_struct_applicable' => '250',
'user_extended_struct_order' => '2',
'user_extended_struct_parent' => 16,
),
@@ -1046,11 +1193,11 @@
'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_read' => '253',
'user_extended_struct_write' => '254',
'user_extended_struct_required' => '0',
'user_extended_struct_signup' => '0',
'user_extended_struct_applicable' => '0',
'user_extended_struct_applicable' => '250',
'user_extended_struct_order' => '5',
'user_extended_struct_parent' => 16,
),
@@ -1063,11 +1210,11 @@
'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_read' => '253',
'user_extended_struct_write' => '254',
'user_extended_struct_required' => '1',
'user_extended_struct_signup' => '0',
'user_extended_struct_applicable' => '0',
'user_extended_struct_applicable' => '250',
'user_extended_struct_order' => '9',
'user_extended_struct_parent' => 16,
),