aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/obscuren/otto/cmpl_test.go
blob: 01ee86e17b324924b6c63348c3c487834cf1012d (plain) (blame)
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
package otto

import (
    "testing"

    "github.com/robertkrimen/otto/parser"
)

func Test_cmpl(t *testing.T) {
    tt(t, func() {
        vm := New()

        test := func(src string, expect ...interface{}) {
            program, err := parser.ParseFile(nil, "", src, 0)
            is(err, nil)
            {
                program := cmpl_parse(program)
                value := vm.runtime.cmpl_evaluate_nodeProgram(program)
                if len(expect) > 0 {
                    is(value, expect[0])
                }
            }
        }

        test(``, Value{})

        test(`var abc = 1; abc;`, 1)

        test(`var abc = 1 + 1; abc;`, 2)

        test(`1 + 2;`, 3)
    })
}

func TestParse_cmpl(t *testing.T) {
    tt(t, func() {

        test := func(src string) {
            program, err := parser.ParseFile(nil, "", src, 0)
            is(err, nil)
            is(cmpl_parse(program), "!=", nil)
        }

        test(``)

        test(`var abc = 1; abc;`)

        test(`
            function abc() {
                return;
            }
        `)
    })
}