Remove accidently committed debugging statement.
[ira/wip.git] / testprogs / ejs / samr.js
1 #!/usr/bin/env smbscript
2 /*
3   test samr calls from ejs
4 */      
5
6 var options = GetOptions(ARGV, 
7                          "POPT_AUTOHELP",
8                          "POPT_COMMON_SAMBA",
9                          "POPT_COMMON_CREDENTIALS");
10 if (options == undefined) {
11    println("Failed to parse options");
12    return -1;
13 }
14
15 libinclude("base.js");
16 libinclude("samr.js");
17
18
19 /*
20   test the samr_Connect interface
21 */
22 function test_Connect(samr)
23 {
24         print("Testing samr_Connect\n");
25         return samrConnect(samr);
26 }
27
28
29 /*
30   test the samr_LookupDomain interface
31 */
32 function test_LookupDomain(samr, handle, domain)
33 {
34         print("Testing samr_LookupDomain\n");
35         return samrLookupDomain(samr, handle, domain);
36 }
37
38 /*
39   test the samr_OpenDomain interface
40 */
41 function test_OpenDomain(samr, handle, sid)
42 {
43         print("Testing samr_OpenDomain\n");
44         return samrOpenDomain(samr, handle, sid);
45 }
46
47 /*
48   test the samr_EnumDomainUsers interface
49 */
50 function test_EnumDomainUsers(samr, dom_handle)
51 {
52         var i, users;
53         print("Testing samr_EnumDomainUsers\n");
54         users = samrEnumDomainUsers(samr, dom_handle);
55         print("Found " + users.length + " users\n");
56         for (i=0;i<users.length;i++) {
57                 println("\t" + users[i].name + "\t(" + users[i].idx + ")");
58         }
59 }
60
61 /*
62   test the samr_EnumDomainGroups interface
63 */
64 function test_EnumDomainGroups(samr, dom_handle)
65 {
66         print("Testing samr_EnumDomainGroups\n");
67         var i, groups = samrEnumDomainGroups(samr, dom_handle);
68         print("Found " + groups.length + " groups\n");
69         for (i=0;i<groups.length;i++) {
70                 println("\t" + groups[i].name + "\t(" + groups[i].idx + ")");
71         }
72 }
73
74 /*
75   test domain specific ops
76 */
77 function test_domain_ops(samr, dom_handle)
78 {
79         test_EnumDomainUsers(samr, dom_handle);
80         test_EnumDomainGroups(samr, dom_handle);
81 }
82
83
84
85 /*
86   test the samr_EnumDomains interface
87 */
88 function test_EnumDomains(samr, handle)
89 {
90         var i, domains;
91         print("Testing samr_EnumDomains\n");
92
93         domains = samrEnumDomains(samr, handle);
94         print("Found " + domains.length + " domains\n");
95         for (i=0;i<domains.length;i++) {
96                 print("\t" + domains[i].name + "\n");
97         }
98         for (i=0;i<domains.length;i++) {
99                 print("Testing domain " + domains[i].name + "\n");
100                 sid = samrLookupDomain(samr, handle, domains[i].name);
101                 dom_handle = test_OpenDomain(samr, handle, sid);
102                 test_domain_ops(samr, dom_handle);
103                 samrClose(samr, dom_handle);
104         }
105 }
106
107 if (options.ARGV.length != 1) {
108    println("Usage: samr.js <BINDING>");
109    return -1;
110 }
111 var binding = options.ARGV[0];
112 var samr = samr_init();
113
114 print("Connecting to " + binding + "\n");
115 status = samr.connect(binding);
116 if (status.is_ok != true) {
117    print("Failed to connect to " + binding + " - " + status.errstr + "\n");
118    return -1;
119 }
120
121 handle = test_Connect(samr);
122 test_EnumDomains(samr, handle);
123 samrClose(samr, handle);
124
125 print("All OK\n");
126 return 0;