3a211f3bdc133204156fcf6a72d40f07404e7b2d
[sfrench/samba-autobuild/.git] / testprogs / ejs / bugs.js
1 /*
2         demonstrate some bugs in ejs
3
4         tridge <appweb@tridgell.net>
5 */
6
7
8 /****************************************
9 demo a bug in constructing arrays
10 fix at http://build.samba.org/build.pl?function=diff;tree=samba4;revision=7124
11 *****************************************/
12 function arraybug() {
13          var a;
14
15          println("First with 3 elements");
16          a = new Array("one", "two", "three");
17          printVars(a);
18          assert(a.length == 3);
19          assert(a[0] == "one");
20          assert(a[1] == "two");
21          assert(a[2] == "three");
22
23          println("with a array length");
24          a = new Array(5);
25          printVars(a);
26          assert(a.length == 5);
27
28          println("\nNow with 1 element");
29          a = new Array("one");
30          printVars(a);
31          assert(a.length == 1);
32          assert(a[0] == "one");
33
34          println("ALL OK");
35 }
36
37
38 /****************************************
39 demo a bug in variable arguments
40 fix at http://build.samba.org/build.pl?function=diff;tree=samba4;revision=7085
41 *****************************************/
42 function argsbug() {
43          println("we should have been called with 3 arguments");
44          assert(arguments.length == 3);
45          assert(arguments[0] == "one");
46          assert(arguments[1] == "two");
47          assert(arguments[2] == "three");
48 }
49
50
51 /****************************************
52 demo a bug in constructing objects
53 no fix available yet
54 *****************************************/
55 function MyObj() {
56          var o = new Object();
57          o.test = 42;
58          return o;
59 }
60
61 function objbug() {
62          println("the docs say you should use 'new'");
63          var o1 = new MyObj();
64          var o2 = MyObj();
65          printVars(o1);
66          printVars(o2);
67          assert(o1.test == 42);
68          assert(o2.test == 42);
69 }
70
71
72
73 /* run the tests */
74 arraybug();
75 argsbug("one", "two", "three");
76 objbug()