services/sync/tests/unit/test_resource_ua.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 Cu.import("resource://services-sync/constants.js");
     5 Cu.import("resource://services-sync/resource.js");
     6 Cu.import("resource://services-sync/service.js");
     7 Cu.import("resource://services-sync/util.js");
     8 Cu.import("resource://testing-common/services/sync/utils.js");
    10 // Tracking info/collections.
    11 let collectionsHelper = track_collections_helper();
    12 let collections = collectionsHelper.collections;
    14 let meta_global;
    15 let server;
    17 let expectedUA;
    18 let ua;
    19 function uaHandler(f) {
    20   return function(request, response) {
    21     ua = request.getHeader("User-Agent");
    22     return f(request, response);
    23   };
    24 }
    26 function run_test() {
    27   Log.repository.rootLogger.addAppender(new Log.DumpAppender());
    28   meta_global = new ServerWBO('global');
    29   server = httpd_setup({
    30     "/1.1/johndoe/info/collections": uaHandler(collectionsHelper.handler),
    31     "/1.1/johndoe/storage/meta/global": uaHandler(meta_global.handler()),
    32   });
    34   ensureLegacyIdentityManager();
    35   setBasicCredentials("johndoe", "ilovejane");
    36   Service.serverURL = server.baseURI + "/";
    37   Service.clusterURL = server.baseURI + "/";
    38   _("Server URL: " + server.baseURI);
    40   expectedUA = Services.appinfo.name + "/" + Services.appinfo.version +
    41                " FxSync/" + WEAVE_VERSION + "." +
    42                Services.appinfo.appBuildID;
    44   run_next_test();
    45 }
    47 add_test(function test_fetchInfo() {
    48   _("Testing _fetchInfo.");
    49   Service._fetchInfo();
    50   _("User-Agent: " + ua);
    51   do_check_eq(ua, expectedUA + ".desktop");
    52   ua = "";
    53   run_next_test();
    54 });
    56 add_test(function test_desktop_post() {
    57   _("Testing direct Resource POST.");
    58   let r = new AsyncResource(server.baseURI + "/1.1/johndoe/storage/meta/global");
    59   r.post("foo=bar", function (error, content) {
    60     _("User-Agent: " + ua);
    61     do_check_eq(ua, expectedUA + ".desktop");
    62     ua = "";
    63     run_next_test();
    64   });
    65 });
    67 add_test(function test_desktop_get() {
    68   _("Testing async.");
    69   Svc.Prefs.set("client.type", "desktop");
    70   let r = new AsyncResource(server.baseURI + "/1.1/johndoe/storage/meta/global");
    71   r.get(function(error, content) {
    72     _("User-Agent: " + ua);
    73     do_check_eq(ua, expectedUA + ".desktop");
    74     ua = "";
    75     run_next_test();
    76   });
    77 });
    79 add_test(function test_mobile_get() {
    80   _("Testing mobile.");
    81   Svc.Prefs.set("client.type", "mobile");
    82   let r = new AsyncResource(server.baseURI + "/1.1/johndoe/storage/meta/global");
    83   r.get(function (error, content) {
    84     _("User-Agent: " + ua);
    85     do_check_eq(ua, expectedUA + ".mobile");
    86     ua = "";
    87     run_next_test();
    88   });
    89 });
    91 add_test(function tear_down() {
    92   server.stop(run_next_test);
    93 });

mercurial