1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
Ext.test.session.addTest( 'Ext', new Y.Test.Case({
name: 'XTemplate',
planned: 3,
// 3
test_apply: function() {
var data = {
hello: 'Hello',
world: 'World',
items1: [
'test1',
'test2',
'test3'
],
items2: [
{ name: 'test1' },
{ name: 'test2' },
{ name: 'test3' }
],
kids: [{
name: 'Sara Grace',
gender: 'f',
age:3
},{
name: 'Zachary',
gender: 'm',
age:2
},{
name: 'John James',
gender: 'm',
age:.5
}]
};
var tpl1 = new Ext.XTemplate( '{hello} {world}. <tpl for="items1">{.}{[ xindex === xcount ? "" : ":" ]}</tpl>', { compiled: true });
Y.Assert.areEqual( 'Hello World. test1:test2:test3', tpl1.apply( data ), 'Test apply with an object with an array' );
var tpl2 = new Ext.XTemplate( '<tpl for="items2">{name}{[ xindex === xcount ? "" : ":" ]}</tpl>', { compiled: true });
Y.Assert.areEqual( 'test1:test2:test3', tpl2.apply( data ), 'Test apply with an object with an array of hashes' );
var tpl3 = new Ext.XTemplate(
'<ul><tpl for="kids">',
'<tpl if="this.isGirl(gender)">',
'<li>Girl: {name} - {age}</li>',
'</tpl>',
'<tpl if="!this.isGirl(gender)">',
'<tpl if="age < 1">',
'<li>Baby Boy: {name} - {age*12} months</li>',
'</tpl>',
'<tpl if="age >= 1">',
'<li>Boy: {name} - {age}</li>',
'</tpl>',
'</tpl>',
'</tpl></ul>',
{
compiled: true,
disableFormats: true,
isGirl: function(gender){
return gender == 'f';
}
}
);
Y.Assert.areEqual( '<ul><li>Girl: Sara Grace - 3</li><li>Boy: Zachary - 2</li><li>Baby Boy: John James - 6 months</li></ul>',
tpl3.apply( data ), 'Test apply with template member functions, basic comparison operators, and math' );
}
// apply is an alias for applyTemplate
}));
|