!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_tdfonline/proyectos/toba_testing/php/testing/test_items/   drwxr-xr-x
Free 14.75 GB of 61.93 GB (23.81%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     test_arbol_items.php (5.58 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

class test_arbol_items extends test_toba
{

    function 
get_descripcion()
    {
        return 
"Manejo del árbol de ítems";
    }    

    function 
sentencias_restauracion()
    {
        
$sentencias[] = "DELETE FROM apex_usuario_grupo_acc_item 
                        WHERE proyecto='toba_testing' AND usuario_grupo_acc='prueba_asignacion'"
;
        return 
$sentencias;
    }

    function 
asegurar_unicidad($items)
    {
        
$ids = array();
        foreach (
$items as $item)
        {
            if (
in_array($item->id(), $ids))
                
$this->fail('El conjunto de items contiene items repetidos');
            else
                
$ids[] = $item->id();
        }
    }    
    
//---------------------------------------------------------------------    
    
function test_recorrido_rama_inexistente()
    
/*
        Intenta recorrer el arbol a partir de una rama que no existe
    */
    
{
        
        
$arbol = new toba_catalogo_items(false'toba_testing');
        
$arbol->set_carpeta_inicial('/cualquieraa');
        
$arbol->ordenar();
        
$this->assertEqual($arbol->cantidad_items(), ,'La rama no existe (%s)');
        
$this->asegurar_unicidad($arbol->items());        
    }
    
//---------------------------------------------------------------------    
    
function test_recorrido_rama_sin_hijos()
    
/*
        Recorre una hoja, debe encontrar sólo a sí mimsmo
    */
    
{
        
$arbol = new toba_catalogo_items(false'toba_testing');
        
$arbol->set_carpeta_inicial(1000213);
        
$arbol->ordenar();
        
$this->assertEqual($arbol->cantidad_items(), ,'La rama no tiene hijos (%s)');
        
$this->asegurar_unicidad($arbol->items());        
    }

    
//---------------------------------------------------------------------    
    
function test_recorrido_cubre_todo_el_arbol()
    
/*
        Recorre una rama de varios niveles.
        Se busca el caso que haya un id no jerarquico, niveles sin items y profundidad variada
    */
    
{

        
$cant_niveles 5;
        
$niveles = array(
                    array(
10002030),
                    array(
10002041),
                    array(
10002051),
                    array(
10002002),
                    array(
10002062),
                    array(
10002072),
                    array(
10002082),
                    array(
10002093),
                    array(
10002113),
                    array(
10002104),
                    array(
10002121)
            );
        
$arbol = new toba_catalogo_items(false'toba_testing');
        
$arbol->set_carpeta_inicial(1000203);
        
$arbol->ordenar();
        foreach (
$niveles as $nivel) {
            
$encontrado false;
            foreach (
$arbol->items() as $item) {
                if (
$item->id() == $nivel[0]) {
                    
$encontrado true;
                    
$this->AssertEqual($item->get_nivel_prof() , $nivel[1], "Nivel del item {$item->id()} (%s)");
                    break;
                }
            }
            if (!
$encontrado)
                
$this->fail("El item {$nivel[0]} no se encuentra");
        }
        
$this->assertEqual($arbol->cantidad_items(), count($niveles) ,'Cant. Items del arbol (%s)');
        
$this->assertEqual($arbol->profundidad(), $cant_niveles'Profundidad del arbol (%s)');
        
$this->asegurar_unicidad($arbol->items());        
    }
    
//---------------------------------------------------------------------        
    
function test_recorrido_con_filtrado_items()
    
/*
        Filtra los items publicos y recorre una rama. Posteriormente se deja solos los items que puede acceder Admin
    */
    
{
        
$cant_niveles 5;
        
$niveles = array(
                    array(
10002041),
                    array(
10002072),
                    array(
10002093),
                    array(
10002104),
            );
        
$arbol = new toba_catalogo_items(false'toba_testing');
        
$arbol->sacar_publicos();
        
$arbol->set_carpeta_inicial(1000203);
        
$arbol->ordenar();
        
$arbol->dejar_grupo_acceso('admin');
        foreach (
$niveles as $nivel) {
            
$encontrado false;
            foreach (
$arbol->items() as $item) {
                if (
$item->id() == $nivel[0]) {
                    
$encontrado true;
                    
$this->AssertEqual($item->get_nivel_prof() , $nivel[1], "Nivel del item {$item->id()} (%s)");
                    break;
                }
            }
            if (!
$encontrado)
                
$this->fail("El item {$nivel[0]} no se encuentra");
        }
        
$this->assertEqual($arbol->cantidad_items(), count($niveles) ,'Cant. Items del arbol (%s)');        
        
$this->assertEqual($arbol->profundidad(), $cant_niveles'Profundidad del arbol (%s)');    
        
$this->asegurar_unicidad($arbol->items());        
    }
    
//---------------------------------------------------------------------        
    
function test_arbol_denegar_permisos()
    
/*
        Deniega los permisos de un grupo a todo el arbol
    */
    
{
        
$arbol = new toba_catalogo_items(false'toba_testing');
        
$arbol->sacar_publicos();
        
$arbol->cambiar_permisos(array(), 'prueba_asignacion');
        
        
//Chequeo
        
$arbol = new toba_catalogo_items(false'toba_testing');
        
$arbol->sacar_publicos();
        
$arbol->ordenar();
        foreach (
$arbol->items() as $item)
        {
            
$this->assertFalse($item->grupo_tiene_permiso('prueba_asignacion'));
        }
        
$this->asegurar_unicidad($arbol->items());
    }
    
    
//---------------------------------------------------------------------    
    
function test_rama_otorgar_permisos_item_profundo()
    
/*
        Otorga permisos sólo a un item profundo en el arbol, esto debe provocar un otorgamiento a todo el camino de carpetas
        que lo contienen.
    */
    
{
        
$arbol = new toba_catalogo_items(false'toba_testing');
        
$arbol->sacar_publicos();
        
$arbol->cambiar_permisos(array(1000210), 'prueba_asignacion');
        
        
//Chequeo
        
$items_buscados = array(
                    
'',
                    
1000202,
                    
1000203,
                    
1000205,
                    
1000208,
                    
1000209,
                    
1000210
            
);
        
$arbol = new toba_catalogo_items(false'toba_testing');
        
$arbol->sacar_publicos();
        
$arbol->ordenar();
        
$arbol->dejar_grupo_acceso('prueba_asignacion');
        
$this->assertEqual($arbol->cantidad_items(), count($items_buscados));
        foreach (
$arbol->items() as $item)
        {
            
$this->assertTrue(in_array($item->id(), $items_buscados), 'Las carpetas del camino deben tener permisos');
        }
        
$this->asegurar_unicidad($arbol->items());
    }    
    
}


?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.8217 ]--