diff -r 000000000000 -r 6474c204b198 netwerk/test/TestStandardURL.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netwerk/test/TestStandardURL.cpp Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,127 @@ +#include +#include + +#include "TestCommon.h" +#include "nsCOMPtr.h" +#include "nsIServiceManager.h" +#include "nsNetCID.h" +#include "nsIURL.h" +#include "prinrval.h" +#include "nsStringAPI.h" +#include "nsComponentManagerUtils.h" + +static nsIURL *test_url = 0; +static nsCString test_param; + +static void run_test(const char *testname, int count, void (* testfunc)()) +{ + PRIntervalTime start, end; + start = PR_IntervalNow(); + for (; count; --count) + testfunc(); + end = PR_IntervalNow(); + printf("completed %s test in %u milliseconds\n", testname, + PR_IntervalToMilliseconds(end - start)); +} + +static void set_spec_test() +{ + test_url->SetSpec(test_param); +} + +static void get_spec_test() +{ + nsAutoCString spec; + test_url->GetSpec(spec); +} + +static void resolve_test() +{ + nsAutoCString spec; + test_url->Resolve(NS_LITERAL_CSTRING("foo.html?q=45"), spec); +} + +static void set_scheme_test() +{ + test_url->SetScheme(NS_LITERAL_CSTRING("foo")); +} + +static void get_scheme_test() +{ + nsAutoCString scheme; + test_url->GetScheme(scheme); +} + +static void host_test() +{ + nsAutoCString host; + test_url->GetHost(host); + test_url->SetHost(NS_LITERAL_CSTRING("www.yahoo.com")); + test_url->SetHost(host); +} + +static void set_path_test() +{ + test_url->SetPath(NS_LITERAL_CSTRING("/some-path/one-the-net/about.html?with-a-query#for-you")); +} + +static void get_path_test() +{ + nsAutoCString path; + test_url->GetPath(path); +} + +static void query_test() +{ + nsAutoCString query; + test_url->GetQuery(query); + test_url->SetQuery(NS_LITERAL_CSTRING("a=b&d=c&what-ever-you-want-to-be-called=45")); + test_url->SetQuery(query); +} + +static void ref_test() +{ + nsAutoCString ref; + test_url->GetRef(ref); + test_url->SetRef(NS_LITERAL_CSTRING("#some-book-mark")); + test_url->SetRef(ref); +} + +int main(int argc, char **argv) +{ + if (test_common_init(&argc, &argv) != 0) + return -1; + + if (argc < 2) { + printf("usage: TestURL url [count]\n"); + return -1; + } + + int count = 1000; + if (argc == 3) + count = atoi(argv[2]); + else + printf("using a default count of %d\n", count); + + nsCOMPtr url( do_CreateInstance(NS_STANDARDURL_CONTRACTID) ); + if (!url) { + printf("failed to instantiate component: %s\n", NS_STANDARDURL_CONTRACTID); + return -1; + } + + test_url = url; + test_param = argv[1]; + + run_test("SetSpec", count, set_spec_test); + run_test("GetSpec", count, get_spec_test); + run_test("Resolve", count, resolve_test); + run_test("SetScheme", count, set_scheme_test); + run_test("GetScheme", count, get_scheme_test); + run_test("[GS]etHost", count, host_test); + run_test("SetPath", count, set_path_test); + run_test("GetPath", count, get_path_test); + run_test("[GS]etQuery", count, query_test); + run_test("[GS]etRef", count, ref_test); + + return 0; +}