62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
// Try calling the browser-side bound functions with varying (invalid)
|
|
// inputs. There is no notion of "success" for this test, other than
|
|
// verifying the correct C++ bindings were reached with expected values.
|
|
|
|
function MyObject() {
|
|
this.x = "3";
|
|
}
|
|
|
|
MyObject.prototype.toString = function() {
|
|
throw "exception from calling toString()";
|
|
}
|
|
|
|
function expectEquals(expectation, actual) {
|
|
if (!(expectation === actual)) {
|
|
throw "FAIL: expected: " + expectation + ", actual: " + actual;
|
|
}
|
|
}
|
|
|
|
function FindProxyForURL(url, host) {
|
|
// Call dnsResolve with some wonky arguments.
|
|
// Those expected to fail (because we have passed a non-string parameter)
|
|
// will return |null|, whereas those that have called through to the C++
|
|
// bindings will return '127.0.0.1'.
|
|
expectEquals(undefined, dnsResolve());
|
|
expectEquals(undefined, dnsResolve(null));
|
|
expectEquals(undefined, dnsResolve(undefined));
|
|
expectEquals('127.0.0.1', dnsResolve(""));
|
|
expectEquals(undefined, dnsResolve({foo: 'bar'}));
|
|
expectEquals(undefined, dnsResolve(fn));
|
|
expectEquals(undefined, dnsResolve(['3']));
|
|
expectEquals('127.0.0.1', dnsResolve("arg1", "arg2", "arg3", "arg4"));
|
|
|
|
// Call alert with some wonky arguments.
|
|
alert();
|
|
alert(null);
|
|
alert(undefined);
|
|
alert({foo:'bar'});
|
|
|
|
// This should throw an exception when we toString() the argument
|
|
// to alert in the bindings.
|
|
try {
|
|
alert(new MyObject());
|
|
} catch (e) {
|
|
alert(e);
|
|
}
|
|
|
|
// Call myIpAddress() with wonky arguments
|
|
myIpAddress(null);
|
|
myIpAddress(null, null);
|
|
|
|
// Call myIpAddressEx() correctly (no arguments).
|
|
myIpAddressEx();
|
|
|
|
// Call dnsResolveEx() (note that isResolvableEx() implicity calls it.)
|
|
isResolvableEx("is_resolvable");
|
|
dnsResolveEx("foobar");
|
|
|
|
return "DIRECT";
|
|
}
|
|
|
|
function fn() {}
|
|
|