michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: Cu.import("resource://services-sync/service.js"); michael@0: Cu.import("resource://services-sync/util.js"); michael@0: Cu.import("resource://testing-common/services/sync/fxa_utils.js"); michael@0: Cu.import("resource://testing-common/services/sync/utils.js"); michael@0: michael@0: add_task(function test_findCluster() { michael@0: _("Test FxA _findCluster()"); michael@0: michael@0: _("_findCluster() throws on 500 errors."); michael@0: initializeIdentityWithTokenServerResponse({ michael@0: status: 500, michael@0: headers: [], michael@0: body: "", michael@0: }); michael@0: michael@0: yield Service.identity.initializeWithCurrentIdentity(); michael@0: yield Assert_rejects(Service.identity.whenReadyToAuthenticate.promise, michael@0: "should reject due to 500"); michael@0: michael@0: Assert.throws(function() { michael@0: Service._clusterManager._findCluster(); michael@0: }); michael@0: michael@0: _("_findCluster() returns null on authentication errors."); michael@0: initializeIdentityWithTokenServerResponse({ michael@0: status: 401, michael@0: headers: {"content-type": "application/json"}, michael@0: body: "{}", michael@0: }); michael@0: michael@0: yield Service.identity.initializeWithCurrentIdentity(); michael@0: yield Assert_rejects(Service.identity.whenReadyToAuthenticate.promise, michael@0: "should reject due to 401"); michael@0: michael@0: cluster = Service._clusterManager._findCluster(); michael@0: Assert.strictEqual(cluster, null); michael@0: michael@0: _("_findCluster() works with correct tokenserver response."); michael@0: let endpoint = "http://example.com/something"; michael@0: initializeIdentityWithTokenServerResponse({ michael@0: status: 200, michael@0: headers: {"content-type": "application/json"}, michael@0: body: michael@0: JSON.stringify({ michael@0: api_endpoint: endpoint, michael@0: duration: 300, michael@0: id: "id", michael@0: key: "key", michael@0: uid: "uid", michael@0: }) michael@0: }); michael@0: michael@0: yield Service.identity.initializeWithCurrentIdentity(); michael@0: yield Service.identity.whenReadyToAuthenticate.promise; michael@0: cluster = Service._clusterManager._findCluster(); michael@0: // The cluster manager ensures a trailing "/" michael@0: Assert.strictEqual(cluster, endpoint + "/"); michael@0: michael@0: Svc.Prefs.resetBranch(""); michael@0: }); michael@0: michael@0: function run_test() { michael@0: initTestLogging(); michael@0: run_next_test(); michael@0: }