Skip to content

Commit

Permalink
fixes #2
Browse files Browse the repository at this point in the history
  • Loading branch information
Administrador authored and Administrador committed Jul 7, 2014
1 parent f865c26 commit ced606c
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 75 deletions.
2 changes: 1 addition & 1 deletion jquery.chainem.js
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@
plug.chain.push(new Link($el, method, isRemote && plug.settings['remote-methods']['asyncronic']));
});

console.log(plug.chain);
// console.log(plug.chain);

},

Expand Down
60 changes: 32 additions & 28 deletions test/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,37 @@
<script src="tests.js"></script>
</head>
<body>
<div id="qunit"></div>
<form>
<label for="espectaculo"><strong>Espectaculo</strong></label>
<select name="A" id="espectaculo" class="chain">
<option value="0">NS</option>
<option value="1">Obra de Teatro</option>
<option value="2">Pelicula</option>
</select>

<label for="genero"><strong>Genero</strong></label>
<select name="B" id="genero" class="chain">
<option value="0">NS</option>
<option value="1">Comedia</option>
<option value="2">Accion</option>
<option value="3">Extravagante</option>
</select>

<label for="funcion"><strong>Función</strong></label>
<select name="C" id="funcion" class="chain">
<option value="0">NS</option>
<option value="1">Iron Man 3</option>
<option value="2">La familia de mi novia</option>
<option value="3">Stravaganza</option>
<option value="4">Les Luthiers</option>
</select>

</form>
<div id="qunit-fixture"></div>
<h1 id="qunit-header">QUnit Test</h1>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">
<form>
<label for="espectaculo"><strong>Espectaculo</strong></label>
<select name="A" id="espectaculo" class="chain">
<option value="0">NS</option>
<option value="1">Obra de Teatro</option>
<option value="2">Pelicula</option>
</select>

<label for="genero"><strong>Genero</strong></label>
<select name="B" id="genero" class="chain">
<option value="0">NS</option>
<option value="1">Comedia</option>
<option value="2">Accion</option>
<option value="3">Extravagante</option>
</select>

<label for="funcion"><strong>Función</strong></label>
<select name="C" id="funcion" class="chain">
<option value="0">NS</option>
<option value="1">Iron Man 3</option>
<option value="2">La familia de mi novia</option>
<option value="3">Stravaganza</option>
<option value="4">Les Luthiers</option>
</select>
</form>
</div>
</body>
</html>
90 changes: 44 additions & 46 deletions test/tests.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
// Devuelve genero en funcion del espectaculo
function daGenero(espectaculo){
var ret = [];
switch(espectaculo){
case '0': ret.push('0', '1', '2', '3');
break;
case '1': ret.push('1', '3');
break;
case '2': ret.push('1', '2');
break;
}

return ret;
}
//function daGenero(espectaculo){
// var ret = [];
// switch(espectaculo){
// case '0': ret.push('0', '1', '2', '3');
// break;
// case '1': ret.push('1', '3');
// break;
// case '2': ret.push('1', '2');
// break;
// }
//
// return ret;
//}

// devuelve funcion en funcion del genero y el espectacilo
function daFuncion(genero, espectaculo){
Expand Down Expand Up @@ -57,31 +57,43 @@ function daFuncion(genero, espectaculo){
return ret;
}

QUnit.moduleStart(function(){
$('.chain').chainem({
methods: {
'genero': function(pv){
return daGenero(pv.espectaculo);

QUnit.module("last mode", {
setup: function() {

/* Firefox only: Reset on refresh */
$('#espectaculo').attr('autocomplete', 'off');
$('#genero').attr('autocomplete', 'off');
$('#funcion').attr('autocomplete', 'off');

$('.chain').chainem({
'remote-methods': {
patternize: false
},
'funcion': function(pv){
return daFuncion(pv.genero, pv.espectaculo);
}
}
});

'methods': {
'genero-remote': function(pv){
return pv;
},
'funcion': function(pv){
return daFuncion(pv.genero, pv.espectaculo);
}
}
});
}
});

QUnit.module("Last mode");

QUnit.test("1 level chaining", function(assert){
QUnit.test("Local chaining (1 level)", function(assert){

$('#genero')
.val('2')
.trigger('change');

assert.equal($('#funcion').val(), '1', "Selecciono el genero Accion. La funcion seleccionada debe ser Iron Man 3");
assert.equal($('#funcion').val(), '1', "Selecciono el genero Accion (2). La funcion seleccionada debe ser Iron Man 3 (1)");
});

QUnit.test("2 level chaining", function(assert){
QUnit.asyncTest("Remote chaining (1 level)", function(assert){

// Selecciono Pelicula
$('#espectaculo')
Expand All @@ -90,25 +102,11 @@ QUnit.test("2 level chaining", function(assert){

// Selecciono Comedia
$('#genero').val('1');

// Deberia ser La familia de mi novia
assert.equal($('#funcion').val(), '2', "Selecciono el espectaculo Pelicula y el Genero Comedia. La funcion seleccionada debe ser La familia de mi novia");
});

QUnit.test("Picking non selected (2 levels)", function(assert){

// Selecciono Pelicula
$('#espectaculo')
.val('0')
.trigger('change');

assert.equal($('#genero').val(), '0', "None selected in any select");
assert.equal($('#funcion').val(), '0', "None selected in any select");
setTimeout(function() {
// Deberia ser La familia de mi novia
assert.equal($('#funcion').val(), '2', "Selecciono el espectaculo Pelicula (2) y el Genero Comedia (1). La funcion seleccionada debe ser 'La familia de mi novia' (2)");
QUnit.start();
}, 150 );

});






0 comments on commit ced606c

Please sign in to comment.