@@ -71,6 +71,10 @@ describe('AuthenticationProviers', function() {
71
71
} ) ;
72
72
73
73
var createOAuthUser = function ( callback ) {
74
+ return createOAuthUserWithSessionToken ( undefined , callback ) ;
75
+ }
76
+
77
+ var createOAuthUserWithSessionToken = function ( token , callback ) {
74
78
var jsonBody = {
75
79
authData : {
76
80
myoauth : getMockMyOauthProvider ( ) . authData
@@ -81,18 +85,27 @@ describe('AuthenticationProviers', function() {
81
85
headers : { 'X-Parse-Application-Id' : 'test' ,
82
86
'X-Parse-REST-API-Key' : 'rest' ,
83
87
'X-Parse-Installation-Id' : 'yolo' ,
88
+ 'X-Parse-Session-Token' : token ,
84
89
'Content-Type' : 'application/json' } ,
85
90
url : 'http://localhost:8378/1/users' ,
86
- body : JSON . stringify ( jsonBody )
91
+ body : jsonBody ,
92
+ json : true
87
93
} ;
88
94
89
- return request . post ( options , callback ) ;
95
+ return new Promise ( ( resolve ) => {
96
+ request . post ( options , ( err , res , body ) => {
97
+ resolve ( { err, res, body} ) ;
98
+ if ( callback ) {
99
+ callback ( err , res , body ) ;
100
+ }
101
+ } ) ;
102
+ } ) ;
90
103
}
91
104
92
105
it ( "should create user with REST API" , done => {
93
106
createOAuthUser ( ( error , response , body ) => {
94
107
expect ( error ) . toBe ( null ) ;
95
- var b = JSON . parse ( body ) ;
108
+ var b = body ;
96
109
ok ( b . sessionToken ) ;
97
110
expect ( b . objectId ) . not . toBeNull ( ) ;
98
111
expect ( b . objectId ) . not . toBeUndefined ( ) ;
@@ -118,14 +131,14 @@ describe('AuthenticationProviers', function() {
118
131
var objectId ;
119
132
createOAuthUser ( ( error , response , body ) => {
120
133
expect ( error ) . toBe ( null ) ;
121
- var b = JSON . parse ( body ) ;
134
+ var b = body
122
135
expect ( b . objectId ) . not . toBeNull ( ) ;
123
136
expect ( b . objectId ) . not . toBeUndefined ( ) ;
124
137
objectId = b . objectId ;
125
138
126
139
createOAuthUser ( ( error , response , body ) => {
127
140
expect ( error ) . toBe ( null ) ;
128
- var b = JSON . parse ( body ) ;
141
+ var b = body ;
129
142
expect ( b . objectId ) . not . toBeNull ( ) ;
130
143
expect ( b . objectId ) . not . toBeUndefined ( ) ;
131
144
expect ( b . objectId ) . toBe ( objectId ) ;
@@ -134,6 +147,22 @@ describe('AuthenticationProviers', function() {
134
147
} ) ;
135
148
} ) ;
136
149
150
+ it ( "should fail to link if session token don't match user" , ( done ) => {
151
+ Parse . User . signUp ( 'myUser' , 'password' ) . then ( ( user ) => {
152
+ return createOAuthUserWithSessionToken ( user . getSessionToken ( ) ) ;
153
+ } ) . then ( ( ) => {
154
+ return Parse . User . logOut ( ) ;
155
+ } ) . then ( ( ) => {
156
+ return Parse . User . signUp ( 'myUser2' , 'password' ) ;
157
+ } ) . then ( ( user ) => {
158
+ return createOAuthUserWithSessionToken ( user . getSessionToken ( ) ) ;
159
+ } ) . then ( ( { body } ) => {
160
+ expect ( body . code ) . toBe ( 208 ) ;
161
+ expect ( body . error ) . toBe ( 'this auth is already used' ) ;
162
+ done ( ) ;
163
+ } ) . catch ( done . fail ) ;
164
+ } ) ;
165
+
137
166
it ( "unlink and link with custom provider" , ( done ) => {
138
167
var provider = getMockMyOauthProvider ( ) ;
139
168
Parse . User . _registerAuthenticationProvider ( provider ) ;
0 commit comments