summary refs log tree commit diff stats
path: root/tests/template/otests.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/template/otests.nim')
-rw-r--r--tests/template/otests.nim438
1 files changed, 219 insertions, 219 deletions
diff --git a/tests/template/otests.nim b/tests/template/otests.nim
index c885e23df..120146343 100644
--- a/tests/template/otests.nim
+++ b/tests/template/otests.nim
@@ -1,219 +1,219 @@
-# Fields

-const x = 5

-

-

-# Test substring

-static:

-    assert "test".substring(3)   == "t"

-    assert "test".substring(2,1) == "s"

-    assert "test".substring(3,2) == "t"

-    assert "test".substring(1,2) == "es"

-

-

-# Various parsing tests

-when true:

-

-    block: #no_substitution

-        proc actual: string = tmpli html"""

-            <p>Test!</p>

-        """

-        const expected = html"""

-            <p>Test!</p>

-        """

-        doAssert actual() == expected

-

-    block: #basic

-        proc actual: string = tmpli html"""

-            <p>Test $$x</p>

-            $x

-        """

-        const expected = html"""

-            <p>Test $x</p>

-            5

-        """

-        doAssert actual() == expected

-

-    block: #expression

-        proc actual: string = tmpli html"""

-            <p>Test $$(x * 5)</p>

-            $(x * 5)

-        """

-        const expected = html"""

-            <p>Test $(x * 5)</p>

-            25

-        """

-        doAssert actual() == expected

-

-    block: #escape

-        proc actual: string = tmpli js"""

-            [{

-                "hello world"

-            }]

-        """

-        const expected = js"""

-            [{

-                "hello world"

-            }]

-        """

-        doAssert actual() == expected

-

-    block: #forIn

-        proc actual: string = tmpli html"""

-            <p>Test for</p>

-            <ul>

-                $for y in 0..2 {

-                    <li>$y</li>

-                }

-            </ul>

-        """

-        const expected = html"""

-            <p>Test for</p>

-            <ul>

-                <li>0</li>

-                <li>1</li>

-                <li>2</li>

-            </ul>

-        """

-        doAssert actual() == expected

-

-    block: #while

-        proc actual: string = tmpli html"""

-            <p>Test while/stmt</p>

-            <ul>

-                ${ var y = 0 }

-                $while y < 4 {

-                    <li>$y</li>

-                    ${ inc(y) }

-                }

-            </ul>

-        """

-        const expected = html"""

-            <p>Test while/stmt</p>

-            <ul>

-                <li>0</li>

-                <li>1</li>

-                <li>2</li>

-                <li>3</li>

-            </ul>

-        """

-        doAssert actual() == expected

-

-    block: #ifElifElse

-        proc actual: string = tmpli html"""

-            <p>Test if/elif/else</p>

-            $if x == 8 {

-                <div>x is 8!</div>

-            }

-            $elif x == 7 {

-                <div>x is 7!</div>

-            }

-            $else {

-                <div>x is neither!</div>

-            }

-        """

-        const expected = html"""

-            <p>Test if/elif/else</p>

-            <div>x is neither!</div>

-        """

-        doAssert actual() == expected

-

-    block: #multiLineStatements

-        proc actual: string = tmpli html"""

-            <p>Test multiline statements</p>

-            ${

-                var x = 5

-                var y = 7

-            }

-            <span>$x</span><span>$y</span>

-        """

-        const expected = html"""

-            <p>Test multiline statements</p>

-            <span>5</span><span>7</span>

-        """

-        doAssert actual() == expected

-

-    block: #caseOfElse

-        proc actual: string = tmpli html"""

-            <p>Test case</p>

-            $case x

-            $of 5 {

-                <div>x == 5</div>

-            }

-            $of 6 {

-                <div>x == 6</div>

-            }

-            $else {}

-        """

-        const expected = html"""

-            <p>Test case</p>

-            <div>x == 5</div>

-        """

-        doAssert actual() == expected

-

-

-

-when true: #embeddingTest

-    proc no_substitution: string = tmpli html"""

-        <h1>Template test!</h1>

-    """

-

-    # # Single variable substitution

-    proc substitution(who = "nobody"): string = tmpli html"""

-        <div id="greeting">hello $who!</div>

-    """

-

-    # Expression template

-    proc test_expression(nums: openarray[int] = []): string =

-        var i = 2

-        tmpli html"""

-            $(no_substitution())

-            $(substitution("Billy"))

-            <div id="age">Age: $($nums[i] & "!!")</div>

-        """

-

-    proc test_statements(nums: openarray[int] = []): string =

-        tmpli html"""

-            $(test_expression(nums))

-            $if true {

-                <ul>

-                    $for i in nums {

-                        <li>$(i * 2)</li>

-                    }

-                </ul>

-            }

-        """

-

-    var actual = test_statements([0,1,2])

-    const expected = html"""

-        <h1>Template test!</h1>

-        <div id="greeting">hello Billy!</div>

-        <div id="age">Age: 2!!</div>

-        <ul>

-            <li>0</li>

-            <li>2</li>

-            <li>4</li>

-        </ul>

-    """

-    doAssert actual == expected

-

-

-when defined(future):

-    block: #tryCatch

-        proc actual: string = tmpli html"""

-            <p>Test try/catch</p>

-            <div>

-                $try {

-                    <div>Lets try this!</div>

-                }

-                $except {

-                    <div>Uh oh!</div>

-                }

-            </div>

-        """

-        const expected = html"""

-            <p>Test try/catch</p>

-            <div>

-                    <div>Lets try this!</div>

-            </div>

-        """

-        doAssert actual() == expected
\ No newline at end of file
+# Fields
+const x = 5
+
+
+# Test substring
+static:
+    assert "test".substring(3)   == "t"
+    assert "test".substring(2,1) == "s"
+    assert "test".substring(3,2) == "t"
+    assert "test".substring(1,2) == "es"
+
+
+# Various parsing tests
+when true:
+
+    block: #no_substitution
+        proc actual: string = tmpli html"""
+            <p>Test!</p>
+        """
+        const expected = html"""
+            <p>Test!</p>
+        """
+        doAssert actual() == expected
+
+    block: #basic
+        proc actual: string = tmpli html"""
+            <p>Test $$x</p>
+            $x
+        """
+        const expected = html"""
+            <p>Test $x</p>
+            5
+        """
+        doAssert actual() == expected
+
+    block: #expression
+        proc actual: string = tmpli html"""
+            <p>Test $$(x * 5)</p>
+            $(x * 5)
+        """
+        const expected = html"""
+            <p>Test $(x * 5)</p>
+            25
+        """
+        doAssert actual() == expected
+
+    block: #escape
+        proc actual: string = tmpli js"""
+            [{
+                "hello world"
+            }]
+        """
+        const expected = js"""
+            [{
+                "hello world"
+            }]
+        """
+        doAssert actual() == expected
+
+    block: #forIn
+        proc actual: string = tmpli html"""
+            <p>Test for</p>
+            <ul>
+                $for y in 0..2 {
+                    <li>$y</li>
+                }
+            </ul>
+        """
+        const expected = html"""
+            <p>Test for</p>
+            <ul>
+                <li>0</li>
+                <li>1</li>
+                <li>2</li>
+            </ul>
+        """
+        doAssert actual() == expected
+
+    block: #while
+        proc actual: string = tmpli html"""
+            <p>Test while/stmt</p>
+            <ul>
+                ${ var y = 0 }
+                $while y < 4 {
+                    <li>$y</li>
+                    ${ inc(y) }
+                }
+            </ul>
+        """
+        const expected = html"""
+            <p>Test while/stmt</p>
+            <ul>
+                <li>0</li>
+                <li>1</li>
+                <li>2</li>
+                <li>3</li>
+            </ul>
+        """
+        doAssert actual() == expected
+
+    block: #ifElifElse
+        proc actual: string = tmpli html"""
+            <p>Test if/elif/else</p>
+            $if x == 8 {
+                <div>x is 8!</div>
+            }
+            $elif x == 7 {
+                <div>x is 7!</div>
+            }
+            $else {
+                <div>x is neither!</div>
+            }
+        """
+        const expected = html"""
+            <p>Test if/elif/else</p>
+            <div>x is neither!</div>
+        """
+        doAssert actual() == expected
+
+    block: #multiLineStatements
+        proc actual: string = tmpli html"""
+            <p>Test multiline statements</p>
+            ${
+                var x = 5
+                var y = 7
+            }
+            <span>$x</span><span>$y</span>
+        """
+        const expected = html"""
+            <p>Test multiline statements</p>
+            <span>5</span><span>7</span>
+        """
+        doAssert actual() == expected
+
+    block: #caseOfElse
+        proc actual: string = tmpli html"""
+            <p>Test case</p>
+            $case x
+            $of 5 {
+                <div>x == 5</div>
+            }
+            $of 6 {
+                <div>x == 6</div>
+            }
+            $else {}
+        """
+        const expected = html"""
+            <p>Test case</p>
+            <div>x == 5</div>
+        """
+        doAssert actual() == expected
+
+
+
+when true: #embeddingTest
+    proc no_substitution: string = tmpli html"""
+        <h1>Template test!</h1>
+    """
+
+    # # Single variable substitution
+    proc substitution(who = "nobody"): string = tmpli html"""
+        <div id="greeting">hello $who!</div>
+    """
+
+    # Expression template
+    proc test_expression(nums: openarray[int] = []): string =
+        var i = 2
+        tmpli html"""
+            $(no_substitution())
+            $(substitution("Billy"))
+            <div id="age">Age: $($nums[i] & "!!")</div>
+        """
+
+    proc test_statements(nums: openarray[int] = []): string =
+        tmpli html"""
+            $(test_expression(nums))
+            $if true {
+                <ul>
+                    $for i in nums {
+                        <li>$(i * 2)</li>
+                    }
+                </ul>
+            }
+        """
+
+    var actual = test_statements([0,1,2])
+    const expected = html"""
+        <h1>Template test!</h1>
+        <div id="greeting">hello Billy!</div>
+        <div id="age">Age: 2!!</div>
+        <ul>
+            <li>0</li>
+            <li>2</li>
+            <li>4</li>
+        </ul>
+    """
+    doAssert actual == expected
+
+
+when defined(future):
+    block: #tryCatch
+        proc actual: string = tmpli html"""
+            <p>Test try/catch</p>
+            <div>
+                $try {
+                    <div>Lets try this!</div>
+                }
+                $except {
+                    <div>Uh oh!</div>
+                }
+            </div>
+        """
+        const expected = html"""
+            <p>Test try/catch</p>
+            <div>
+                    <div>Lets try this!</div>
+            </div>
+        """
+        doAssert actual() == expected