1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/services/sync/tests/unit/test_resource_ua.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,94 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +Cu.import("resource://services-sync/constants.js"); 1.8 +Cu.import("resource://services-sync/resource.js"); 1.9 +Cu.import("resource://services-sync/service.js"); 1.10 +Cu.import("resource://services-sync/util.js"); 1.11 +Cu.import("resource://testing-common/services/sync/utils.js"); 1.12 + 1.13 +// Tracking info/collections. 1.14 +let collectionsHelper = track_collections_helper(); 1.15 +let collections = collectionsHelper.collections; 1.16 + 1.17 +let meta_global; 1.18 +let server; 1.19 + 1.20 +let expectedUA; 1.21 +let ua; 1.22 +function uaHandler(f) { 1.23 + return function(request, response) { 1.24 + ua = request.getHeader("User-Agent"); 1.25 + return f(request, response); 1.26 + }; 1.27 +} 1.28 + 1.29 +function run_test() { 1.30 + Log.repository.rootLogger.addAppender(new Log.DumpAppender()); 1.31 + meta_global = new ServerWBO('global'); 1.32 + server = httpd_setup({ 1.33 + "/1.1/johndoe/info/collections": uaHandler(collectionsHelper.handler), 1.34 + "/1.1/johndoe/storage/meta/global": uaHandler(meta_global.handler()), 1.35 + }); 1.36 + 1.37 + ensureLegacyIdentityManager(); 1.38 + setBasicCredentials("johndoe", "ilovejane"); 1.39 + Service.serverURL = server.baseURI + "/"; 1.40 + Service.clusterURL = server.baseURI + "/"; 1.41 + _("Server URL: " + server.baseURI); 1.42 + 1.43 + expectedUA = Services.appinfo.name + "/" + Services.appinfo.version + 1.44 + " FxSync/" + WEAVE_VERSION + "." + 1.45 + Services.appinfo.appBuildID; 1.46 + 1.47 + run_next_test(); 1.48 +} 1.49 + 1.50 +add_test(function test_fetchInfo() { 1.51 + _("Testing _fetchInfo."); 1.52 + Service._fetchInfo(); 1.53 + _("User-Agent: " + ua); 1.54 + do_check_eq(ua, expectedUA + ".desktop"); 1.55 + ua = ""; 1.56 + run_next_test(); 1.57 +}); 1.58 + 1.59 +add_test(function test_desktop_post() { 1.60 + _("Testing direct Resource POST."); 1.61 + let r = new AsyncResource(server.baseURI + "/1.1/johndoe/storage/meta/global"); 1.62 + r.post("foo=bar", function (error, content) { 1.63 + _("User-Agent: " + ua); 1.64 + do_check_eq(ua, expectedUA + ".desktop"); 1.65 + ua = ""; 1.66 + run_next_test(); 1.67 + }); 1.68 +}); 1.69 + 1.70 +add_test(function test_desktop_get() { 1.71 + _("Testing async."); 1.72 + Svc.Prefs.set("client.type", "desktop"); 1.73 + let r = new AsyncResource(server.baseURI + "/1.1/johndoe/storage/meta/global"); 1.74 + r.get(function(error, content) { 1.75 + _("User-Agent: " + ua); 1.76 + do_check_eq(ua, expectedUA + ".desktop"); 1.77 + ua = ""; 1.78 + run_next_test(); 1.79 + }); 1.80 +}); 1.81 + 1.82 +add_test(function test_mobile_get() { 1.83 + _("Testing mobile."); 1.84 + Svc.Prefs.set("client.type", "mobile"); 1.85 + let r = new AsyncResource(server.baseURI + "/1.1/johndoe/storage/meta/global"); 1.86 + r.get(function (error, content) { 1.87 + _("User-Agent: " + ua); 1.88 + do_check_eq(ua, expectedUA + ".mobile"); 1.89 + ua = ""; 1.90 + run_next_test(); 1.91 + }); 1.92 +}); 1.93 + 1.94 +add_test(function tear_down() { 1.95 + server.stop(run_next_test); 1.96 +}); 1.97 +