aboutsummaryrefslogtreecommitdiff
path: root/includes/js/dojox/dtl/tests/text/tag.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/dtl/tests/text/tag.js')
-rw-r--r--includes/js/dojox/dtl/tests/text/tag.js480
1 files changed, 0 insertions, 480 deletions
diff --git a/includes/js/dojox/dtl/tests/text/tag.js b/includes/js/dojox/dtl/tests/text/tag.js
deleted file mode 100644
index 7abbc43..0000000
--- a/includes/js/dojox/dtl/tests/text/tag.js
+++ /dev/null
@@ -1,480 +0,0 @@
-if(!dojo._hasResource["dojox.dtl.tests.text.tag"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
-dojo._hasResource["dojox.dtl.tests.text.tag"] = true;
-dojo.provide("dojox.dtl.tests.text.tag");
-
-dojo.require("dojox.dtl");
-dojo.require("dojox.dtl.Context");
-
-doh.register("dojox.dtl.text.tag",
- [
- function test_tag_block_and_extends(t){
- var dd = dojox.dtl;
-
- // Simple (messy) string-based extension
- var template = new dd.Template('{% extends "../../dojox/dtl/tests/templates/pocket.html" %}{% block pocket %}Simple{% endblock %}');
- t.is("Simple Pocket", template.render());
-
- // Variable replacement
- var context = new dd.Context({
- parent: "../../dojox/dtl/tests/templates/pocket.html"
- })
- template = new dd.Template('{% extends parent %}{% block pocket %}Variabled{% endblock %}');
- t.is("Variabled Pocket", template.render(context));
-
- // Nicer dojo.moduleUrl and variable based extension
- context.parent = dojo.moduleUrl("dojox.dtl.tests.templates", "pocket.html");
- template = new dd.Template('{% extends parent %}{% block pocket %}Slightly More Advanced{% endblock %}');
- t.is("Slightly More Advanced Pocket", template.render(context));
-
- // dojo.moduleUrl with support for more variables.
- // This is important for HTML templates where the "shared" flag will be important.
- context.parent = {
- url: dojo.moduleUrl("dojox.dtl.tests.templates", "pocket.html")
- }
- template = new dd.Template('{% extends parent %}{% block pocket %}Super{% endblock %}');
- t.is("Super Pocket", template.render(context));
- },
- function test_tag_block(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- parent: dojo.moduleUrl("dojox.dtl.tests.templates", "pocket2.html"),
- items: ["apple", "banana", "lemon" ]
- });
-
- var template = new dd.Template("{% extends parent %}{% block pocket %}My {{ item }}{% endblock %}");
- t.is("(My apple) (My banana) (My lemon) Pocket", template.render(context));
- },
- function test_tag_comment(t){
- var dd = dojox.dtl;
-
- var template = new dd.Template('Hot{% comment %}<strong>Make me disappear</strong>{% endcomment %} Pocket');
- t.is("Hot Pocket", template.render());
-
- var found = false;
- try{
- template = new dd.Template('Hot{% comment %}<strong>Make me disappear</strong> Pocket');
- }catch(e){
- t.is("Unclosed tag found when looking for endcomment", e.message);
- found = true;
- }
- t.t(found);
- },
- function test_tag_cycle(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- items: ["apple", "banana", "lemon"],
- unplugged: "Torrey"
- });
- var template = new dd.Template("{% for item in items %}{% cycle 'Hot' 'Diarrhea' unplugged 'Extra' %} Pocket. {% endfor %}");
- t.is("Hot Pocket. Diarrhea Pocket. Torrey Pocket. ", template.render(context));
- // Make sure that it doesn't break on re-render
- t.is("Hot Pocket. Diarrhea Pocket. Torrey Pocket. ", template.render(context));
-
- // Test repeating the loop
- context.items.push("guava", "mango", "pineapple");
- t.is("Hot Pocket. Diarrhea Pocket. Torrey Pocket. Extra Pocket. Hot Pocket. Diarrhea Pocket. ", template.render(context));
-
- // Repeat the above tests for the old style
- // ========================================
- context.items = context.items.slice(0, 3);
- template = new dd.Template("{% for item in items %}{% cycle Hot,Diarrhea,Torrey,Extra %} Pocket. {% endfor %}");
- t.is("Hot Pocket. Diarrhea Pocket. Torrey Pocket. ", template.render(context));
- // Make sure that it doesn't break on re-render
- t.is("Hot Pocket. Diarrhea Pocket. Torrey Pocket. ", template.render(context));
-
- // Test repeating the loop
- context.items.push("guava", "mango", "pineapple");
- t.is("Hot Pocket. Diarrhea Pocket. Torrey Pocket. Extra Pocket. Hot Pocket. Diarrhea Pocket. ", template.render(context));
-
- // Now test outside of the for loop
- // ================================
- context = new dojox.dtl.Context({ unplugged: "Torrey" });
- template = new dd.Template("{% cycle 'Hot' 'Diarrhea' unplugged 'Extra' as steakum %} Pocket. {% cycle steakum %} Pocket. {% cycle steakum %} Pocket.");
- t.is("Hot Pocket. Diarrhea Pocket. Torrey Pocket.", template.render(context));
-
- template = new dd.Template("{% cycle 'Hot' 'Diarrhea' unplugged 'Extra' as steakum %} Pocket. {% cycle steakum %} Pocket. {% cycle steakum %} Pocket. {% cycle steakum %} Pocket. {% cycle steakum %} Pocket. {% cycle steakum %} Pocket.");
- t.is("Hot Pocket. Diarrhea Pocket. Torrey Pocket. Extra Pocket. Hot Pocket. Diarrhea Pocket.", template.render(context));
-//t.t(false)
- // Test for nested objects
- context.items = {
- list: ["apple", "banana", "lemon"]
- };
- template = new dd.Template("{% for item in items.list %}{% cycle 'Hot' 'Diarrhea' unplugged 'Extra' %} Pocket. {% endfor %}");
- t.is("Hot Pocket. Diarrhea Pocket. Torrey Pocket. ", template.render(context));
- // Make sure that it doesn't break on re-render
- t.is("Hot Pocket. Diarrhea Pocket. Torrey Pocket. ", template.render(context));
- },
- function test_tag_debug(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- items: ["apple", "banana", "lemon"],
- unplugged: "Torrey"
- });
- var template = new dd.Template("{% debug %}");
- t.is('items: ["apple","banana","lemon"]\n\nunplugged: "Torrey"\n\n', template.render(context));
- },
- function test_tag_filter(t){
- var dd = dojox.dtl;
-
- var template = new dd.Template('{% filter lower|center:"15" %}Hot Pocket{% endfilter %}');
- t.is(" hot pocket ", template.render());
- },
- function test_tag_firstof(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- found: "unicorn"
- });
-
- var template = new dd.Template("{% firstof one two three four found %}");
- t.is("unicorn", template.render(context));
-
- context.four = null;
- t.is("null", template.render(context));
-
- context.three = false;
- t.is("false", template.render(context));
- },
- function test_tag_for(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- items: ["apple", "banana", "lemon"]
- });
- var template = new dd.Template("{% for item in items %}<li>{{ item }}</li>{% endfor %}");
- t.is("<li>apple</li><li>banana</li><li>lemon</li>", template.render(context));
-
- template = new dd.Template("{% for item in items reversed %}<li>{{ item }}</li>{% endfor %}");
- t.is("<li>lemon</li><li>banana</li><li>apple</li>", template.render(context));
-
- context.items = {
- apple: "Red Delicious",
- banana: "Cavendish",
- lemon: "Citrus"
- };
- template = new dd.Template("{% for key, value in items.items %}<li>{{ value }} {{ key|title }}</li>{% endfor %}");
- t.is("<li>Red Delicious Apple</li><li>Cavendish Banana</li><li>Citrus Lemon</li>", template.render(context));
-
- // The same thing above, but using "zipped" sets
- context.items = [
- ["apple", "Red Delicious", 1.99],
- ["banana", "Cavendish", 0.49],
- ["lemon", "Citrus", 0.29]
- ];
- template = new dd.Template("{% for fruit, type, price in items %}<li>{{ type }} {{ fruit|title }} costs ${{ price}}</li>{% endfor %}");
- t.is("<li>Red Delicious Apple costs $1.99</li><li>Cavendish Banana costs $0.49</li><li>Citrus Lemon costs $0.29</li>", template.render(context));
-
- template = new dd.Template("{% for fruit, type, price in items reversed %}<li>{{ type }} {{ fruit|title }} costs ${{ price}}</li>{% endfor %}");
- t.is("<li>Citrus Lemon costs $0.29</li><li>Cavendish Banana costs $0.49</li><li>Red Delicious Apple costs $1.99</li>", template.render(context));
-
- // Now to create some errors
- var found = false;
- try {
- template = new dd.Template("{% for item initems %}<li>{{ item }}</li>{% endfor %}");
- }catch(e){
- found = true;
- t.is("'for' statements should have at least four words: for item initems", e.message);
- }
- t.t(found);
-
- found = false;
- try {
- template = new dd.Template("{% for item ni items %}<li>{{ item }}</li>{% endfor %}");
- }catch(e){
- found = true;
- t.is("'for' tag received an invalid argument: for item ni items", e.message);
- }
- t.t(found);
-
- found = false;
- try {
- template = new dd.Template("{% for my item in items %}<li>{{ item }}</li>{% endfor %}");
- }catch(e){
- found = true;
- t.is("'for' tag received an invalid argument: for my item in items", e.message);
- }
- t.t(found);
- },
- function test_tag_if(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- jokes: {
- hot_pockets: true,
- unicycles: true,
- bacon: true
- }
- });
- var template = new dd.Template("Comedian is {% if jokes.hot_pockets and jokes.unicycles and jokes.bacon %}funny{% else %}not funny{% endif %}");
- t.is("Comedian is funny", template.render(context));
-
- context.jokes.unicycles = false;
- t.is("Comedian is not funny", template.render(context));
-
- context.comedians = {
- hedberg: true,
- gaffigan: true,
- cook: true
- };
- template = new dd.Template("Show will be {% if comedians.hedberg or comedians.gaffigan %}worth seeing{% else %}not worth seeing{% endif %}");
- t.is("Show will be worth seeing", template.render(context));
-
- // NOTE: "and" is implied by nesting. eg {% if sunny %}{% if windy %}It's Sunny and Windy{% endif %}{% endif %}
- // Not mixing ands and ors allows for MUCH faster rendering
- template = new dd.Template("Show will {% if comedians.hedberg or comedians.gaffigan %}{% if comedians.cook %}not {% endif %}be worth seeing{% else %}not be worth seeing{% endif %}");
- t.is("Show will not be worth seeing", template.render(context));
-
- context.comedians.cook = false;
- t.is("Show will be worth seeing", template.render(context));
-
- template = new dd.Template("Show will be {% if comedians.hedberg and comedians.gaffigan and not comedians.cook %}AWESOME{% else %}almost awesome{% endif %}");
- t.is("Show will be AWESOME", template.render(context));
-
- context.comedians.cook = true;
- t.is("Show will be almost awesome", template.render(context));
-
- // Now we test for errors.
- var found = false;
- try {
- template = new dd.Template("Show will be {% if comedians.hedberg or comedians.gaffigan and not comedians.cook %}worth seeing{% else %}not worth seeing{% endif %}");
- }catch(e){
- found = true;
- t.is("'if' tags can't mix 'and' and 'or'", e.message);
- }
- t.t(found);
- },
- function test_tag_ifchanged(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- year: 2008,
- days: [
- new Date(2008, 0, 12),
- new Date(2008, 0, 28),
- new Date(2008, 1, 1),
- new Date(2008, 1, 1),
- new Date(2008, 1, 1)
- ]
- });
-
- var template = new dd.Template("<h1>Archive for {{ year }}</h1>"+
-"{% for date in days %}"+
-'{% ifchanged %}<h3>{{ date|date:"F" }}</h3>{% endifchanged %}'+
-'<a href="{{ date|date:\'M/d\'|lower }}/">{{ date|date:\'j\' }}</a>'+
-"{% endfor %}");
- t.is('<h1>Archive for 2008</h1>'+
-'<h3>January</h3>'+
-'<a href="jan/12/">12</a>'+
-'<a href="jan/28/">28</a>'+
-'<h3>February</h3>'+
-'<a href="feb/01/">1</a>'+
-'<a href="feb/01/">1</a>'+
-'<a href="feb/01/">1</a>', template.render(context));
-
- template = new dd.Template('{% for date in days %}'+
-'{% ifchanged date.date %} {{ date.date }} {% endifchanged %}'+
-'{% ifchanged date.hour date.date %}'+
-'{{ date.hour }}'+
-'{% endifchanged %}'+
-'{% endfor %}');
- t.is(' 2008-01-12 0 2008-01-28 0 2008-02-01 0', template.render(context));
- },
- function test_tag_ifequal(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- user: {
- id: 314
- },
- comment: {
- user_id: 314
- }
- });
-
- var template = new dd.Template("{% ifequal user.id comment.user_id %}You posted this{% endifequal %}");
- t.is("You posted this", template.render(context));
-
- context.user.id = 313;
- t.is("", template.render(context));
-
- // Errors
- var found = false;
- try {
- template = new dd.Template("{% ifequal user.id %}You posted this{% endifequal %}");
- }catch(e){
- found = true;
- t.is("ifequal takes two arguments", e.message);
- }
- t.t(found);
-
- found = false;
- try {
- template = new dd.Template("{% ifequal user.id comment.user_id %}You posted this{% endif %}");
- }catch(e){
- found = true;
- t.is("No tag found for endif", e.message);
- }
- t.t(found);
- },
- function test_tag_ifnotequal(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- favorite: "hedberg",
- comedian: "cook"
- });
-
- var template = new dd.Template("{% ifnotequal favorite comedian %}Not your favorite{% else %}Your favorite{% endifnotequal %}");
- t.is("Not your favorite", template.render(context));
-
- context.comedian = "hedberg";
- t.is("Your favorite", template.render(context));
- },
- function test_tag_include(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- hello: dojo.moduleUrl("dojox.dtl.tests.templates", "hello.html"),
- person: "Bob",
- people: ["Charles", "Ralph", "Julia"]
- });
-
- var template = new dd.Template("{% include hello %}");
- t.is("Hello, <span>Bob</span>", template.render(context));
-
- template = new dd.Template('{% include "../../dojox/dtl/tests/templates/hello.html" %}');
- t.is("Hello, <span>Bob</span>", template.render(context));
-
- template = new dd.Template('{% for person in people %}{% include hello %} {% endfor %}');
- t.is("Hello, <span>Charles</span> Hello, <span>Ralph</span> Hello, <span>Julia</span> ", template.render(context));
- },
- function test_tag_load(t){
- t.f(dojox.dtl.tests.text.load);
- new dojox.dtl.Template("{% load dojox.dtl.tests.text.load %}");
- t.t(dojox.dtl.tests.text.load);
- },
- function test_tag_now(t){
- var dd = dojox.dtl;
-
- var template = new dd.Template('It is {% now "jS F Y H:i" %}');
- t.t(template.render().match(/^It is \d{1,2}[a-z]{2} [A-Z][a-z]+ [0-9]{4,} \d{2}:\d{2}$/));
-
- template = new dd.Template('It is the {% now "jS \\o\\f F" %}');
- t.t(template.render().match(/^It is the \d{1,2}[a-z]{2} of [A-Z][a-z]+$/));
-
- template = new dd.Template("It is the {% now 'jS \\o\\f F' %}");
- t.t(template.render().match(/^It is the \d{1,2}[a-z]{2} of [A-Z][a-z]+$/));
-
- var found = false;
- try{
- template = new dd.Template("It is the {% now 'jS \\o\\f F %}");
- }catch(e){
- found = true;
- t.is("'now' statement takes one argument", e.message);
- }
- t.t(found);
-
- found = false;
- try{
- template = new dd.Template('It is the {% now "jS \\o\\f F %}');
- }catch(e){
- found = true;
- t.is("'now' statement takes one argument", e.message);
- }
- t.t(found);
- },
- function test_tag_regroup(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- people: [
- { firstName: "Bill", lastName: "Clinton", gender: "Male" },
- { firstName: "Margaret", lastName: "Thatcher", gender: "Female" },
- { firstName: "Path", lastName: "Smith", gender: "Unkown" },
- { firstName: "Condoleezza", lastName: "Rice", gender: "Female" },
- { firstName: "George", lastName: "Bush", gender: "Male" }
- ]
- });
-
- var template = new dd.Template("{% regroup people|dictsort:'gender' by gender as grouped %}<ul>{% for group in grouped %}<li>{{ group.grouper }}<ul>{% for item in group.list %}<li>{{ item.firstName }} {{ item.lastName }}</li>{% endfor %}</ul></li>{% endfor %}</ul>");
- t.t(template.render(context).match(new RegExp("^<ul><li>Female<ul><li>(Condoleezza Rice|Margaret Thatcher)</li><li>(Condoleezza Rice|Margaret Thatcher)</li></ul></li><li>Male<ul><li>(Bill Clinton|George Bush)</li><li>(Bill Clinton|George Bush)</li></ul></li><li>Unkown<ul><li>Path Smith</li></ul></li></ul>$")));
- },
- function test_tag_spaceless(t){
- var dd = dojox.dtl;
-
- var template = new dd.Template("{% spaceless %}<ul> \n <li>Hot</li> \n\n<li>Pocket </li>\n </ul>{% endspaceless %}");
- t.is("<ul><li>Hot</li><li>Pocket </li></ul>", template.render());
- },
- function test_tag_ssi(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- hello: dojo.moduleUrl("dojox.dtl.tests.templates", "hello.html"),
- person: "Bob",
- people: ["Charles", "Ralph", "Julia"]
- });
-
- var template = new dd.Template("{% ssi hello parsed %}");
- t.is("Hello, <span>Bob</span>", template.render(context));
-
- template = new dd.Template("{% ssi hello %}");
- t.is("Hello, <span>{{ person }}</span>", template.render(context));
-
- template = new dd.Template('{% ssi "../../dojox/dtl/tests/templates/hello.html" parsed %}');
- t.is("Hello, <span>Bob</span>", template.render(context));
-
- template = new dd.Template('{% for person in people %}{% ssi hello parsed %} {% endfor %}');
- t.is("Hello, <span>Charles</span> Hello, <span>Ralph</span> Hello, <span>Julia</span> ", template.render(context));
- },
- function test_tag_templatetag(t){
- var dd = dojox.dtl;
-
- var template = new dd.Template("{% templatetag openblock %}");
- t.is("{%", template.render());
- template = new dd.Template("{% templatetag closeblock %}");
- t.is("%}", template.render());
- template = new dd.Template("{% templatetag openvariable %}");
- t.is("{{", template.render());
- template = new dd.Template("{% templatetag closevariable %}");
- t.is("}}", template.render());
- template = new dd.Template("{% templatetag openbrace %}");
- t.is("{", template.render());
- template = new dd.Template("{% templatetag closebrace %}");
- t.is("}", template.render());
- template = new dd.Template("{% templatetag opencomment %}");
- t.is("{#", template.render());
- template = new dd.Template("{% templatetag closecomment %}");
- t.is("#}", template.render());
- },
- function test_tag_widthratio(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- this_value: 175,
- max_value: 200
- });
-
- var template = new dd.Template('<img src="bar.gif" height="10" width="{% widthratio this_value max_value 100 %}" />');
- t.is('<img src="bar.gif" height="10" width="88" />', template.render(context));
- },
- function test_tag_with(t){
- var dd = dojox.dtl;
-
- var context = new dd.Context({
- person: {
- someSqlMethod: function(){
- return 4815162342;
- }
- }
- });
-
- var template = new dd.Template('{% with person.someSqlMethod as total %}{{ total }} object{{ total|pluralize }}{% endwith %}')
- t.is("4815162342 objects", template.render(context));
- }
- ]
-);
-
-}