added more unittests for various tasks

--HG--
branch : trunk
diff --git a/tests/test_tests.py b/tests/test_tests.py
index 3943ab4..c02d0b3 100644
--- a/tests/test_tests.py
+++ b/tests/test_tests.py
@@ -6,6 +6,8 @@
     :copyright: 2007 by Armin Ronacher.
     :license: BSD, see LICENSE for more details.
 """
+from jinja2 import Environment, Markup
+
 
 DEFINED = '''{{ missing is defined }}|{{ true is defined }}'''
 EVEN = '''{{ 1 is even }}|{{ 2 is even }}'''
@@ -17,6 +19,19 @@
 UPPER = '''{{ "FOO" is upper }}|{{ "foo" is upper }}'''
 SAMEAS = '''{{ foo is sameas false }}|{{ 0 is sameas false }}'''
 NOPARENFORARG1 = '''{{ foo is sameas none }}'''
+TYPECHECKS = '''\
+{{ 42 is undefined }}
+{{ 42 is defined }}
+{{ 42 is none }}
+{{ none is none }}
+{{ 42 is number }}
+{{ 42 is string }}
+{{ "foo" is string }}
+{{ "foo" is sequence }}
+{{ [1] is sequence }}
+{{ range is callable }}
+{{ 42 is callable }}
+{{ range(5) is iterable }}'''
 
 
 def test_defined(env):
@@ -29,14 +44,19 @@
     assert tmpl.render() == 'False|True'
 
 
+def test_odd(env):
+    tmpl = env.from_string(ODD)
+    assert tmpl.render() == 'True|False'
+
+
 def test_lower(env):
     tmpl = env.from_string(LOWER)
     assert tmpl.render() == 'True|False'
 
 
-def test_odd(env):
-    tmpl = env.from_string(ODD)
-    assert tmpl.render() == 'True|False'
+def test_typechecks(env):
+    tmpl = env.from_string(TYPECHECKS)
+    assert tmpl.render() == ''
 
 
 def test_sequence(env):
@@ -54,6 +74,20 @@
     assert tmpl.render(foo=False) == 'True|False'
 
 
+def test_typechecks(env):
+    tmpl = env.from_string(TYPECHECKS)
+    assert tmpl.render() == (
+        'False\nTrue\nFalse\nTrue\nTrue\nFalse\n'
+        'True\nTrue\nTrue\nTrue\nFalse\nTrue'
+    )
+
+
 def test_no_paren_for_arg1(env):
     tmpl = env.from_string(NOPARENFORARG1)
     assert tmpl.render(foo=None) == 'True'
+
+
+def test_escaped():
+    env = Environment(autoescape=True)
+    tmpl = env.from_string('{{ x is escaped }}|{{ y is escaped }}')
+    assert tmpl.render(x='foo', y=Markup('foo')) == 'False|True'