Thu, 22 Jan 2015 13:21:57 +0100
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 });