diff options
Diffstat (limited to 'javascript/spec/login.js')
| -rw-r--r-- | javascript/spec/login.js | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/javascript/spec/login.js b/javascript/spec/login.js index d73f9d7..13f5679 100644 --- a/javascript/spec/login.js +++ b/javascript/spec/login.js @@ -42,5 +42,31 @@ describe("Login", function() {      expect(window.location.hash).toBe("#logged_in")    }); +  it("logs in successfully with JSON (INTEGRATION)", function(){ +    var callback = sinon.spy(); +    var a = 'af141ae6'; +    var B = '887005895b1f5528b4e4dfdce914f73e763b96d3c901d2f41d8b8cd26255a75'; +    var salt = '5d3055e0acd3ddcfc15'; +    var M = 'be6d7db2186d5f6a2c55788479b6eaf75229a7ca0d9e7dc1f886f1970a0e8065' +    var M2 = '2547cf26318519090f506ab73a68995a2626b1c948e6f603ef9e1b0b78bf0f7b'; +    srp = new SRP() +    srp.success = callback; +    var A = srp.calculateAndSetA(a); +    srp.identify(); + +    expect(this.requests.length).toBe(1); +    expect(this.requests[0].url).toBe("handshake/"); +    expect(this.requests[0].requestBody).toBe("I=user&A=" + A); +    specHelper.respondJSON(this.requests[0], {s: salt, B: B}); +    expect(this.requests.length).toBe(2); +    expect(this.requests[1].url).toBe("authenticate/"); +    expect(this.requests[1].requestBody).toBe("M=" + M); +    specHelper.respondJSON(this.requests[1], {M: M2}); + +    expect(callback).toHaveBeenCalled(); +    expect(window.location.hash).toBe("#logged_in") +  }); +  }); +  | 
