Index: client/dom/scripts/templateloader_test.py |
diff --git a/client/dom/scripts/templateloader_test.py b/client/dom/scripts/templateloader_test.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..165b566f8b92966283e91479be5e86efe14df704 |
--- /dev/null |
+++ b/client/dom/scripts/templateloader_test.py |
@@ -0,0 +1,125 @@ |
+#!/usr/bin/python |
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
+# for details. All rights reserved. Use of this source code is governed by a |
+# BSD-style license that can be found in the LICENSE file. |
+ |
+import logging.config |
+import unittest |
+import templateloader |
+ |
+class TemplateLoaderTestCase(unittest.TestCase): |
+ |
+ def _preprocess(self, input_text, conds): |
+ loader = templateloader.TemplateLoader('.', [], conds) |
+ return loader._Preprocess(input_text, '<file>') |
+ |
+ |
+ def _preprocess_test(self, input_text, conds, expected_text): |
+ output_text = self._preprocess(input_text, conds) |
+ if output_text != expected_text: |
+ msg = ''' |
+EXPECTED: |
+%s |
+--- |
+ACTUAL : |
+%s |
+---''' % (expected_text, output_text) |
+ self.fail(msg) |
+ |
+ |
+ def _preprocess_error_test(self, input_text, conds, expected_message): |
+ threw = False |
+ try: |
+ output_text = self._preprocess(input_text, conds) |
+ except Exception, e: |
+ threw = True |
+ if str(e).find(expected_message) == -1: |
+ self.fail("'%s' does not contain '%s'" % (e, expected_message)) |
+ if not threw: |
+ self.fail("missing error, expected '%s'" % expected_message) |
+ |
+ |
+ def test_freevar(self): |
+ input_text = '''$A |
+$B''' |
+ self._preprocess_test(input_text, {}, input_text) |
+ |
+ |
+ def test_ite1(self): |
+ input_text = ''' |
+ aaa |
+ $if A |
+ bbb |
+ $else |
+ ccc |
+ $endif |
+ ddd |
+ ''' |
+ self._preprocess_test(input_text, {'A':True}, |
+ ''' |
+ aaa |
+ bbb |
+ ddd |
+ ''') |
+ |
+ def test_ite2(self): |
+ input_text = ''' |
+ aaa |
+ $if A |
+ bbb |
+ $else |
+ ccc |
+ $endif |
+ ddd |
+ ''' |
+ self._preprocess_test(input_text, {'A':False}, |
+ ''' |
+ aaa |
+ ccc |
+ ddd |
+ ''') |
+ |
+ def test_if1(self): |
+ input_text = ''' |
+ $if |
+ ''' |
+ self._preprocess_error_test(input_text, {}, |
+ '$if does not have single variable') |
+ |
+ def test_if2(self): |
+ input_text = ''' |
+ $if A |
+ ''' |
+ self._preprocess_error_test(input_text, {}, 'Unknown $if variable') |
+ |
+ def test_else1(self): |
+ input_text = ''' |
+ $else |
+ ''' |
+ self._preprocess_error_test(input_text, {}, '$else without $if') |
+ |
+ def test_else2(self): |
+ input_text = ''' |
+ $if A |
+ $else |
+ $else |
+ ''' |
+ self._preprocess_error_test(input_text, {'A':True}, 'Double $else') |
+ |
+ def test_eof1(self): |
+ input_text = ''' |
+ $if A |
+ ''' |
+ self._preprocess_error_test(input_text, {'A':True}, 'Unterminated') |
+ |
+ def test_eof2(self): |
+ input_text = ''' |
+ $if A |
+ $else |
+ ''' |
+ self._preprocess_error_test(input_text, {'A':True}, 'Unterminated') |
+ |
+if __name__ == "__main__": |
+ logging.config.fileConfig("logging.conf") |
+ if __name__ == '__main__': |
+ unittest.main() |