Exemplo n.º 1
0
 function test_generacion_clase_archivo_con_codigo_previo()
 {
     $this->hijo = "hijo_codigo_previo";
     $this->padre = "padre_hijo_codigo_previo";
     $contenido = "<?php\n\t/*\n\t* \n\t*/\n\tclass clase_previa\n\t{\n\t\tfunction esta_es_una_funcion_previa()\n\t\t{\n\t\t\t//Esto trata de engañar al parser del archivo\n\t\t\t?><?php\n\t\t}\n\t}\n\n?>";
     //Se crea el archivo del hijo
     $this->crear_archivo_hijo($contenido);
     //Se genera la subclase
     $archivo = new toba_archivo_php($this->path_hijo());
     $padre = new toba_archivo_php($this->path_padre());
     $clase = new toba_clase_php($this->hijo, $archivo, $this->padre, $this->path_padre());
     $clase->set_meta_clase(new info_componente(array()));
     $clase->generar($this->generar_todo());
     //Se incluyen y se verifica que funcionan correctamente
     $padre->incluir();
     $archivo->incluir();
     $clase = new ReflectionClass($this->hijo);
     $this->AssertEqual($this->hijo, $clase->getName());
 }
Exemplo n.º 2
0
 function get_codigo_vista_previa()
 {
     $opciones = $this->get_opciones();
     $metodos = $this->get_metodos_a_generar();
     $archivo_php = new toba_archivo_php($this->get_path_archivo());
     //-- Se va a modificar algo?
     if ($this->s__es_esclavo && (!empty($metodos) || $archivo_php->esta_vacio())) {
         if (!method_exists($this->controlador(), 'get_metaclase')) {
             throw new toba_error('No se invoco correctamente en el visor de archivos PHP');
         }
         $clase_php = new toba_clase_php($archivo_php, $this->controlador()->get_metaclase());
         $codigo = $clase_php->get_codigo($metodos, $opciones['incluir_comentarios'], $opciones['incluir_separadores']);
         $codigo = "\n" . $codigo . "\n";
         return $codigo;
     } else {
         //-- Muestra el original
         if (file_exists($this->get_path_archivo())) {
             return file_get_contents($this->get_path_archivo());
         } else {
             return '';
         }
     }
 }
Exemplo n.º 3
0
 function evt__generar()
 {
     $opciones = $this->dep('ci_generacion')->get_opciones();
     $metodos = $this->dep('ci_generacion')->get_metodos_a_generar();
     $archivo_php = new toba_archivo_php($this->get_path_archivo());
     $clase_php = new toba_clase_php($archivo_php, $this->get_metaclase());
     $clase_php->generar($metodos, $opciones['incluir_comentarios'], $opciones['incluir_separadores']);
     $this->pantalla()->set_descripcion('Clase generada correctamente');
     $this->dep('ci_generacion')->set_pantalla('pant_vista_previa');
     //Resetea los métodos para que fuerze al usuario a elegir otros si quiere generar nuevamente la clase
     $this->dep('ci_generacion')->resetear_metodos();
 }
Exemplo n.º 4
0
 function test_generacion_ei_filtro()
 {
     $nombre_clase = 'mi_ei_filtro';
     $clase = new toba_clase_php($nombre_clase, '', 'toba_ei_filtro', 'nucleo/browser/clases/toba_ei_filtro.php');
     $clase->set_objeto('toba_testing', '1330');
     $codigo = $clase->generar_clase($this->generar_todo());
     //		highlight_string("<?php\n $codigo \n");
     eval($codigo);
     $clase = new ReflectionClass($nombre_clase);
     //-- Asegura que se haya heredado el constructor
     $this->AssertEqual($clase->getConstructor()->getDeclaringClass(), $clase);
     $this->AssertEqual($clase->getMethod('mantener_estado_sesion')->getDeclaringClass(), $clase);
 }