/services/sync/tests/unit/test_resource_ua.js
http://github.com/zpao/v8monkey · JavaScript · 92 lines · 79 code · 12 blank · 1 comment · 0 complexity · ee628b4b970cef39b3ccd8decbb0635c MD5 · raw file
- Cu.import("resource://services-sync/constants.js");
- Cu.import("resource://services-sync/resource.js");
- Cu.import("resource://services-sync/service.js");
- function test_resource_user_agent() {
- let meta_global = new ServerWBO('global');
- // Tracking info/collections.
- let collectionsHelper = track_collections_helper();
- let collections = collectionsHelper.collections;
- let ua;
- function uaHandler(f) {
- return function(request, response) {
- ua = request.getHeader("User-Agent");
- return f(request, response);
- };
- }
- do_test_pending();
- let server = httpd_setup({
- "/1.1/johndoe/info/collections": uaHandler(collectionsHelper.handler),
- "/1.1/johndoe/storage/meta/global": uaHandler(meta_global.handler()),
- });
- Weave.Service.serverURL = "http://localhost:8080/";
- Weave.Service.clusterURL = "http://localhost:8080/";
- Weave.Service.username = "johndoe";
- Weave.Service.password = "ilovejane";
- let expectedUA = Services.appinfo.name + "/" + Services.appinfo.version +
- " FxSync/" + WEAVE_VERSION + "." +
- Services.appinfo.appBuildID;
- function test_fetchInfo(next) {
- _("Testing _fetchInfo.");
- Weave.Service._fetchInfo();
- _("User-Agent: " + ua);
- do_check_eq(ua, expectedUA + ".desktop");
- ua = "";
- next();
- }
- function test_desktop_post(next) {
- _("Testing direct Resource POST.");
- let r = new AsyncResource("http://localhost:8080/1.1/johndoe/storage/meta/global");
- r.post("foo=bar", function (error, content) {
- _("User-Agent: " + ua);
- do_check_eq(ua, expectedUA + ".desktop");
- ua = "";
- next();
- });
- }
- function test_desktop_get(next) {
- _("Testing async.");
- Svc.Prefs.set("client.type", "desktop");
- let r = new AsyncResource("http://localhost:8080/1.1/johndoe/storage/meta/global");
- r.get(function(error, content) {
- _("User-Agent: " + ua);
- do_check_eq(ua, expectedUA + ".desktop");
- ua = "";
- next();
- });
- }
- function test_mobile_get(next) {
- _("Testing mobile.");
- Svc.Prefs.set("client.type", "mobile");
- let r = new AsyncResource("http://localhost:8080/1.1/johndoe/storage/meta/global");
- r.get(function (error, content) {
- _("User-Agent: " + ua);
- do_check_eq(ua, expectedUA + ".mobile");
- ua = "";
- next();
- });
- }
- Async.chain(
- test_fetchInfo,
- test_desktop_post,
- test_desktop_get,
- test_mobile_get,
- function (next) {
- server.stop(next);
- },
- do_test_finished)();
- }
- function run_test() {
- test_resource_user_agent();
- }