You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
170 lines
5.7 KiB
170 lines
5.7 KiB
// This is a script to test KPAC.
|
|
// To use it: set this script as proxy config file and run
|
|
// dcop kded proxyscout proxyForURL http://blah (URL doesn't matter)
|
|
// The answer must be http://<your IP>/<test results>
|
|
// If you see "failed" in the output, lookup the test name in the comments
|
|
// below and let me now at <malte@kde.org> or try to fix it yourself
|
|
|
|
function FindProxyForURL( url, host )
|
|
{
|
|
var result = "PROXY http://" + myIPAddress();
|
|
|
|
// plainhost1
|
|
if ( !isPlainHostName( "foo" ) )
|
|
result += "/plainhost1=failed"
|
|
// plainhost2
|
|
if ( isPlainHostName( "foo.bar" ) )
|
|
result += "/plainhost2=failed";
|
|
|
|
// dnsdomain1
|
|
if ( !dnsDomainIs( "foo.bar", "bar" ) )
|
|
result += "/dnsdomain1=failed";
|
|
// dnsdomain2
|
|
if ( dnsDomainIs( "foo.baz", "bar" ) )
|
|
result += "/dnsdomain2=failed";
|
|
|
|
// localordomain1
|
|
if ( !localHostOrDomainIs( "foo", "bar" ) )
|
|
result += "/localordomain1=failed";
|
|
// localordomain2
|
|
if ( !localHostOrDomainIs( "foo.bar", "foo.bar" ) )
|
|
result += "/localordomain2=failed";
|
|
// localordomain3
|
|
if ( !localHostOrDomainIs( "foo", "foo.baz" ) )
|
|
result += "/localordomain3=failed";
|
|
// localordomain4
|
|
if ( localHostOrDomainIs( "foo.bar", "foo.baz" ) )
|
|
result += "/localordomain4=failed";
|
|
|
|
// isresolvable1
|
|
// on failure make sure you can resolve www.kde.org correctly :-)
|
|
if ( !isResolvable( "www.kde.org" ) ) result += "/isresolvable1=failed";
|
|
// isresolvable2
|
|
// on failure make sure dummy.invalid doesn't resolve :-)
|
|
if ( isResolvable( "dummy.invalid" ) ) result += "/isresolvable2=failed";
|
|
|
|
// isinnet1
|
|
// on failure check if localhost resolves to 127.0.0.1 as it should
|
|
if ( isInNet( "localhost", "1.2.3.4", "255.0.0.0" ) )
|
|
result += "/isinnet1=failed";
|
|
// isinnet2
|
|
if ( isInNet( "1.2.3.4", "1.2.3.5", "255.255.255.255" ) )
|
|
result += "/isinnet2=failed";
|
|
// isinnet3
|
|
if ( !isInNet( "1.2.3.4", "1.2.3.5", "255.255.255.0" ) )
|
|
result += "/isinnet3=failed";
|
|
|
|
// dnsresolve1
|
|
// on failure check if localhost resolves to 127.0.0.1 as it should
|
|
if ( dnsResolve( "localhost" ) != "127.0.0.1" )
|
|
result += "/dnsresolve1=failed";
|
|
|
|
// dnslevels1
|
|
if ( dnsDomainLevels( "foo" ) != 0 )
|
|
result += "/dnslevels1=failed";
|
|
// dnslevels2
|
|
if ( dnsDomainLevels( "foo.bar" ) != 1 )
|
|
result += "/dnslevels2=failed";
|
|
// dnslevels3
|
|
if ( dnsDomainLevels( "foo.bar.baz" ) != 2 )
|
|
result += "/dnslevels3=failed";
|
|
|
|
// shexp1
|
|
if ( !shExpMatch( "foobar", "foobar" ) )
|
|
result += "/shexp1=failed";
|
|
// shexp2
|
|
if ( shExpMatch( "FoObAr", "foobar" ) )
|
|
result += "/shexp2=failed";
|
|
// shexp3
|
|
if ( !shExpMatch( "Foobar", "?oobar" ) )
|
|
result += "/shexp3=failed";
|
|
// shexp4
|
|
if ( !shExpMatch( "FoObAr", "*b*" ) )
|
|
result += "/shexp4=failed";
|
|
// shexp5
|
|
if ( shExpMatch( "FoObAr", "*x*" ) )
|
|
result += "/shexp5=failed";
|
|
// shexp6
|
|
if ( shExpMatch( "www.kde.org", "*.kde" ) )
|
|
result += "/shexp6=failed";
|
|
|
|
var now = new Date;
|
|
var days = new Array( "sun", "mon", "tue", "wed", "thu", "fri", "sat" );
|
|
var months = new Array( "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" );
|
|
|
|
// weekday1
|
|
if ( !weekdayRange( "sun", "sat" ) )
|
|
result += "/weekday1=failed";
|
|
// weekday2
|
|
if ( !weekdayRange( "sat", "sun" ) )
|
|
result += "/weekday2=failed";
|
|
// weekday3
|
|
if ( !weekdayRange( days[ now.getDay() ] ) )
|
|
result += "/weekday3=failed";
|
|
// weekday4
|
|
if ( weekdayRange( now.getDay() ? "sun" : "mon" ) )
|
|
result += "/weekday4=failed";
|
|
|
|
// date1
|
|
if ( !dateRange( now.getDate() ) )
|
|
result += "/date1=failed";
|
|
// date2
|
|
if ( !dateRange( now.getDate(), 31 ) )
|
|
result += "/date2=failed";
|
|
// date3
|
|
if ( !dateRange( 1, now.getDate() ) )
|
|
result += "/date3=failed";
|
|
// date4
|
|
if ( dateRange( now.getDay() > 5 ? 1 : 6, now.getDay() > 5 ? 3 : 8 ) )
|
|
result += "/date4=failed";
|
|
// date5
|
|
if ( !dateRange( months[ now.getMonth() ] ) )
|
|
result += "/date5=failed";
|
|
// date6
|
|
if ( !dateRange( months[ now.getMonth() ], "dec" ) )
|
|
result += "/date6=failed";
|
|
// date7
|
|
if ( !dateRange( "dec", months[ now.getMonth() ] ) )
|
|
result += "/date7=failed";
|
|
// date8
|
|
if ( !dateRange( now.getFullYear() ) )
|
|
result += "/date8=failed";
|
|
// date9
|
|
if ( dateRange( now.getFullYear() - 1 ) )
|
|
result += "/date9=failed";
|
|
// date10
|
|
// if this fails, check your clock first :-)
|
|
if ( dateRange( 1, "jan", 1990, 31, "dec", 2000 ) )
|
|
result += "/date10=failed";
|
|
// date11
|
|
// if this fails, check your clock first :-)
|
|
if ( !dateRange( 1, "jan", 2000, 31, "dec", 3000 ) )
|
|
result += "/date11=failed";
|
|
|
|
// time1
|
|
if ( !timeRange( now.getHours() ) )
|
|
result += "/time1=failed";
|
|
// time2
|
|
if ( !timeRange( now.getHours(), now.getMinutes(), 0, 0 ) )
|
|
result += "/time2=failed";
|
|
// time3
|
|
if ( !timeRange( now.getHours(), now.getMinutes(), now.getSeconds(), 0, 0, 0 ) )
|
|
result += "/time3=failed";
|
|
// time4
|
|
if ( timeRange( now.getHours() > 5 ? 1 : 6, now.getHours() > 5 ? 3 : 8 ) )
|
|
result += "/time4=failed";
|
|
// time5
|
|
if ( now.getHours() == now.getUTCHours() )
|
|
result += "/time5=skipped";
|
|
else if ( timeRange( now.getUTCHours() ) )
|
|
result += "/time5=failed";
|
|
// time6
|
|
if ( now.getHours() == now.getUTCHours() )
|
|
result += "/time6=skipped";
|
|
else if ( !timeRange( now.getUTCHours(), "GMT" ) )
|
|
result += "/time6=failed";
|
|
|
|
return result;
|
|
}
|
|
|