r22967: Move to the TCP packet interface for the krb5_send_to_kdc plugin.
[Samba.git] / testprogs / ejs / samr.js
blobfbdae974bea4500194e48ac69f73681027b7530e
1 #!/usr/bin/env smbscript
2 /*
3   test samr calls from ejs
4 */      
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;
15 libinclude("base.js");
16 libinclude("samr.js");
20   test the samr_Connect interface
22 function test_Connect(samr)
24         print("Testing samr_Connect\n");
25         return samrConnect(samr);
30   test the samr_LookupDomain interface
32 function test_LookupDomain(samr, handle, domain)
34         print("Testing samr_LookupDomain\n");
35         return samrLookupDomain(samr, handle, domain);
39   test the samr_OpenDomain interface
41 function test_OpenDomain(samr, handle, sid)
43         print("Testing samr_OpenDomain\n");
44         return samrOpenDomain(samr, handle, sid);
48   test the samr_EnumDomainUsers interface
50 function test_EnumDomainUsers(samr, dom_handle)
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         }
62   test the samr_EnumDomainGroups interface
64 function test_EnumDomainGroups(samr, dom_handle)
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         }
75   test domain specific ops
77 function test_domain_ops(samr, dom_handle)
79         test_EnumDomainUsers(samr, dom_handle);
80         test_EnumDomainGroups(samr, dom_handle);
86   test the samr_EnumDomains interface
88 function test_EnumDomains(samr, handle)
90         var i, domains;
91         print("Testing samr_EnumDomains\n");
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         }
107 if (options.ARGV.length != 1) {
108    println("Usage: samr.js <BINDING>");
109    return -1;
111 var binding = options.ARGV[0];
112 var samr = samr_init();
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;
121 handle = test_Connect(samr);
122 test_EnumDomains(samr, handle);
123 samrClose(samr, handle);
125 print("All OK\n");
126 return 0;