|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
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"); |
|
9 |
|
10 // Tracking info/collections. |
|
11 let collectionsHelper = track_collections_helper(); |
|
12 let collections = collectionsHelper.collections; |
|
13 |
|
14 let meta_global; |
|
15 let server; |
|
16 |
|
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 } |
|
25 |
|
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 }); |
|
33 |
|
34 ensureLegacyIdentityManager(); |
|
35 setBasicCredentials("johndoe", "ilovejane"); |
|
36 Service.serverURL = server.baseURI + "/"; |
|
37 Service.clusterURL = server.baseURI + "/"; |
|
38 _("Server URL: " + server.baseURI); |
|
39 |
|
40 expectedUA = Services.appinfo.name + "/" + Services.appinfo.version + |
|
41 " FxSync/" + WEAVE_VERSION + "." + |
|
42 Services.appinfo.appBuildID; |
|
43 |
|
44 run_next_test(); |
|
45 } |
|
46 |
|
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 }); |
|
55 |
|
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 }); |
|
66 |
|
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 }); |
|
78 |
|
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 }); |
|
90 |
|
91 add_test(function tear_down() { |
|
92 server.stop(run_next_test); |
|
93 }); |
|
94 |