Tag Archives: plugin

Generate Test Cases Intellij Plugin

Generates Test Cases is a port of Eclipse’s generate test cases plugin described here:
http://wiki.openmrs.org/display/archive/Generate+Test+Case+Eclipse+Plugin

This project aims to make it easier to make TDD with a really cool and easy approach that consist in
annotating interface method with desired behaviours like this:

public interface Person {

/**
*
* @return
* @should say hello, and nothing more that that
*/
String sayHello();
}

So with this plugin you could generate a test class for this interface like this one automatically:

import org.junit.Assert;
import org.junit.Test;

public class PersonTest {

/**
* @see Person#sayHello()
* @verifies say hello, and nothing more that that
*/
@Test
public void sayHello_shouldSayHelloAndNothingMoreThatThat() throws Exception {
//TODO auto-generated
Assert.fail(“Not yet implemented”);
}
}

And then test your implementation code like this

public void sayHello_shouldSayHelloAndNothingMoreThatThat() throws Exception {
assertThat(intance.sayHello(), is(“hello world”));

}

This way you can realize that for testing this behaviour you just wrote the should annotation in the sut (system under test) in a really
descriptive way.

/**
*
* @return
* @should say hello, and nothing more that that
*/
String sayHello();

Auto-generated the test class and test method (using the plugin) and then tested the actual expected behaviour with (hamcrest style junit test):

assertThat(intance.sayHello(), is(“hello world”));

If you want to try it out you will need to install it in you IntelliJ IDEA as a plugin, you can use the regular plugin installation manager from inside intellij, just type ‘GenerateTestCases’ to find the plugin and install it, remember you will need to restart IntelliJ IDEA to get it working.

Here you can see a video showing you how to install and make basic usage of the plugin:

Here http://www.youtube.com/watch?v=WYET6PECxuc you can see a 10 minutes video explaining the usage of the plugin

Agregar soporte para plantillas en tinyMCE dentro de Joomla 1.5.12

Escribiré este post para no volver a olvidar como realizar ésto, pues ya es la segunda vez que me pregunto como agregar soporte para plantillas de tinyMCE en el editor de joomla y después de activar la funcionalidad extendida de este plugin en

Extensiones > Gestor de plugins > Editor – TinyMCE

Pues me dirijo a crear un artículo y no puedo ver ningún indicio de los templates que puede soportar TinyMCE, y como un completo desentendido intento recordar que hice para hacer funcionar esta característica en otra instalación de joomla (Claro que aún no podrán ver los templates funcionando porque, y aquí viene lo peor, por defecto la instalación de joomla/tinyMCE viene con el botón para insertar templates en el editor de artículos, pero no tiene código de soporte para especificar la ubicación de estos templates).

Entonces, despues de revisar el código de mi instalación pasada pues pensé que lo tenía todo, hay que modificar:

joomlapluginseditorstinymce.php

joomlapluginseditorstinymce.xml

Y después ya podemos especificar la ruta de los templates en la configuración del plugin, pero no es tan simple con la nueva versión de joomla con la que estoy trabajando:

Joomla! 1.5.12 Stable [ Wojmamni Ama Woi ] (Por cierto, alguien sabía que wojmammi ama… es el número de la versión en idioma yaqui?)

En fin, creo que ya es hora de que veamos el código que debemos modificar para esta nueva versión:

joomlapluginseditorstinymce.php (alrededor de la linea 318)


// template
 $template = $this->params->def( 'template', 1 );
 if ( $template ) {
 $plugins[]    = 'template';
 $buttons4[]    = 'template';
 }

 //---- new custom code start ----

 $templates = $this->params->get('templates');
 if(!empty($templates)) {
 $templates = explode("n", $templates);

 $templatesJS = ',
 template_templates : [  ';

 foreach($templates as $template) {

 $template = explode(";", $template);

 // new change here
 $templatesJS .= '
 {
 title: '' . pathinfo($template[0], PATHINFO_FILENAME) . '',
 src: '' . $template[0] . '',
 description: '' . (isset($template[1]) ? $template[1] : '') . ''
 },';

 }

 $templatesJS = substr($templatesJS, 0, -1) . "n  ]";
 }

//---- new custom code end ----

 // tinybrowser
 $tinybrowser    = $this->params->def( 'tinybrowser', 1 );

joomlapluginseditorstinymce.php (ahora alrededor de la linea 560)


theme_advanced_buttons4 : "$buttons4",

plugin_insertdate_dateFormat : "$format_date",

plugin_insertdate_timeFormat : "$format_time",

fullscreen_settings : {

theme_advanced_path_location : "top"

}

// ---- new custom code start ----

$templatesJS

// ---- new custom code end ----

});

</script>";

if ( $tinybrowser ) {

$return .="t<script type="text/javascript" src="".JURI::root()."plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/tb_tinymce.js.php"></script>n";

setcookie('tinybrowser_lang', $langPrefix, 0, "/");

}

break;

}
<pre>

Y ahora:

joomlapluginseditorstinymce.xml (alrededor de la linea 165)

</pre>
<param name="template" type="radio" default="1" label="Template" description="PARAMTEMPLATE">

<option value="0">Hide</option>

<option value="1">Show</option>

</param>

<!-- new custom code start -->

<param name="templates" type="textarea" cols="60" rows="6" label="Templates paths" description="Paths to templates. One template per line, use absolute paths." />

<!-- new custom code end -->
 <param name="@spacer" type="spacer" default="" label="" description="" />
<pre>
<pre>

Después de esto ya deberíamos ser capaces de crear nuestros propios templates y especificar la ruta donde encontrarlos desde:

Extensiones > Gestor de plugins > Editor – TinyMCE (Bajo la pestaña: Paramétros avanzados)

Para los que no lo notaron, añadimos este campo de texto al editar tinymce.xml, usando el elemento xml ‘param’, ahora solo queda añadir la ruta y descripción (separadas por un punto y coma) hacia nuestros propios templates que no son más que un esqueleto en html como el siguiente que yo uso para crear un artículo de portada. (aunque es completamente aceptable que alguno de ustedes le vaya a dar un mejor uso )

</pre>
<div>
<h1>TITULO</h1>
<div>
IMAGEN1

IMAGEN2
</div>
<p>
PARRAFO1
</p>
<p>
PARRAFO2
</p>
<div>
IMAGEN3

IMAGEN4
</div>
<div>
<span>Oficina de </span><br>
<i>Fecha de Actualizacion: </i>
</div>
</div>