From 4c04cfa60ceda72491732ac026d4297a6129358e Mon Sep 17 00:00:00 2001 From: Shane Tomlinson <stomlinson@mozilla.com> Date: Fri, 13 Jan 2012 16:21:50 +0000 Subject: [PATCH] If the user is already logged out when they hit "sign out", do not show error. close #630. --- resources/static/shared/network.js | 10 +++++++++- resources/static/test/qunit/mocks/xhr.js | 3 ++- .../static/test/qunit/shared/network_unit_test.js | 11 ++++++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/resources/static/shared/network.js b/resources/static/shared/network.js index 874d81df6..3ee3ad0c0 100644 --- a/resources/static/shared/network.js +++ b/resources/static/shared/network.js @@ -235,7 +235,15 @@ BrowserID.Network = (function() { auth_status = false; if (onComplete) onComplete(); }, - error: onFailure + error: function(info, xhr, textStatus) { + if (info.network.status === 400) { + auth_status = false; + if (onComplete) onComplete(); + } + else { + onFailure && onFailure(info); + } + } }); }, diff --git a/resources/static/test/qunit/mocks/xhr.js b/resources/static/test/qunit/mocks/xhr.js index 2652c8cee..0d84daec0 100644 --- a/resources/static/test/qunit/mocks/xhr.js +++ b/resources/static/test/qunit/mocks/xhr.js @@ -61,7 +61,8 @@ BrowserID.Mocks.xhr = (function() { "post /wsapi/complete_user_creation invalid": { success: false }, "post /wsapi/complete_user_creation ajaxError": undefined, "post /wsapi/logout valid": { success: true }, - "post /wsapi/logout ajaxError": undefined, + "post /wsapi/logout not_authenticated": 400, + "post /wsapi/logout ajaxError": 401, "get /wsapi/have_email?email=registered%40testuser.com valid": { email_known: true }, "get /wsapi/have_email?email=registered%40testuser.com throttle": { email_known: true }, "get /wsapi/have_email?email=registered%40testuser.com ajaxError": undefined, diff --git a/resources/static/test/qunit/shared/network_unit_test.js b/resources/static/test/qunit/shared/network_unit_test.js index 1ec356c80..c9aeb14cb 100644 --- a/resources/static/test/qunit/shared/network_unit_test.js +++ b/resources/static/test/qunit/shared/network_unit_test.js @@ -102,10 +102,19 @@ network.logout(function onSuccess() { ok(true, "we can logout"); start(); - }, testHelpers.unexpectedFailure); + }, testHelpers.unexpectedXHRFailure); }); + asyncTest("logout with 400 failure - user already logged out", function() { + xhr.useResult("not_authenticated"); + + network.logout(function onSuccess() { + ok(true, "we can logout"); + start(); + }, testHelpers.unexpectedXHRFailure); + }); + asyncTest("logout with XHR failure", function() { failureCheck(network.logout); }); -- GitLab