1/*
2 * Copyright 2011 Jacek Caban for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19var winetest = new ActiveXObject("Wine.Test");
20
21function ok(expr, msg) {
22    winetest.ok(expr, msg);
23}
24
25ok(typeof(WScript) === "object", "typeof(WScript) = " + typeof(WScript));
26ok(typeof(WSH) === "object", "typeof(WSH) = " + typeof(WSH));
27ok(WScript === WSH, "WScript !== WSH");
28ok(WScript.Name === "Windows Script Host", "WScript.Name = " + WScript.Name);
29ok(typeof(WScript.Version) === "string", "typeof(WScript.Version) = " + typeof(WScript.Version));
30ok(typeof(WScript.BuildVersion) === "number", "typeof(WScript.BuildVersion) = " + typeof(WScript.BuildVersion));
31ok(WScript.FullName.toUpperCase() === winetest.wscriptFullName.toUpperCase(), "WScript.FullName = " + WScript.FullName);
32ok(WScript.Path.toUpperCase() === winetest.wscriptPath.toUpperCase(), "WScript.Path = " + WScript.Path);
33ok(WScript.ScriptName === winetest.wscriptScriptName, "WScript.ScriptName = " + WScript.ScriptName);
34ok(WScript.ScriptFullName === winetest.wscriptScriptFullName, "WScript.ScriptFullName = " + WScript.ScriptFullName);
35ok(typeof(WScript.Arguments) === "object", "typeof(WScript.Arguments) = " + typeof(WScript.Arguments));
36ok(WScript.Arguments.Item(0) === "arg1", "WScript.Arguments.Item(0) = " + WScript.Arguments.Item(0));
37ok(WScript.Arguments.Item(1) === "2", "WScript.Arguments.Item(1) = " + WScript.Arguments.Item(1));
38ok(WScript.Arguments.Item(2) === "ar3", "WScript.Arguments.Item(2) = " + WScript.Arguments.Item(2));
39try {
40    WScript.Arguments.Item(3);
41    ok(false, "expected exception");
42}catch(e) {}
43ok(WScript.Arguments.Count() === 3, "WScript.Arguments.Count() = " + WScript.Arguments.Count());
44ok(WScript.Arguments.length === 3, "WScript.Arguments.length = " + WScript.Arguments.length);
45ok(WScript.Interactive === true, "WScript.Interactive = " + WScript.Interactive);
46WScript.Interactive = false;
47ok(WScript.Interactive === false, "WScript.Interactive = " + WScript.Interactive);
48WScript.Interactive = true;
49ok(WScript.Interactive === true, "WScript.Interactive = " + WScript.Interactive);
50ok(WScript.Application === WScript, "WScript.Application = " + WScript.Application);
51
52var obj = WScript.CreateObject("Wine.Test");
53obj.ok(true, "Broken WScript.CreateObject object?");
54
55try {
56    obj = WScript.CreateObject("nonexistent");
57    ok(false, "Expected exception for CreateObject('nonexistent')");
58}catch(e) {}
59
60winetest.reportSuccess();
61