|
1 | 1 | /*
|
2 | 2 | * Copyright (C) 2014 TopCoder Inc., All Rights Reserved.
|
3 | 3 | *
|
4 |
| - * @version 1.1 |
| 4 | + * @version 1.2 |
5 | 5 | * @author Sky_
|
6 | 6 | * changes in 1.1:
|
7 | 7 | * - add tests for Create Token api
|
| 8 | + * changes in 1.2: |
| 9 | + * - Update tests to support isWebArenaSuper field. |
8 | 10 | */
|
9 | 11 | "use strict";
|
10 | 12 | /*global describe, it, before, beforeEach, after, afterEach */
|
@@ -43,9 +45,10 @@ describe('Test Oauth', function () {
|
43 | 45 | adminSubSalesforce = "salesforce-oauth|sf123456",
|
44 | 46 | userSubAD = "ad|400000",
|
45 | 47 | adminSubAD = "ad|400001",
|
46 |
| - notFoundSub = "google-oauth|458965118758"; |
47 |
| - var jwtToken = ""; |
48 |
| - var jwtTokenCookieKey = process.env.JWT_TOKEN_COOKIE_KEY; |
| 48 | + webArenaSuper = "ad|124861", |
| 49 | + notFoundSub = "google-oauth|458965118758", |
| 50 | + jwtToken = "", |
| 51 | + jwtTokenCookieKey = process.env.JWT_TOKEN_COOKIE_KEY; |
49 | 52 |
|
50 | 53 |
|
51 | 54 | /**
|
@@ -217,121 +220,129 @@ describe('Test Oauth', function () {
|
217 | 220 | */
|
218 | 221 | it('should be authorized as member (google)', function (done) {
|
219 | 222 | var oauth = generateAuthHeader({ sub: userSubGoogle });
|
220 |
| - assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user"}, oauth, done); |
| 223 | + assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user", isWebArenaSuper: false }, oauth, done); |
221 | 224 | });
|
222 | 225 |
|
223 | 226 | /**
|
224 | 227 | * /test/oauth/ with header
|
225 | 228 | */
|
226 | 229 | it('should be authorized as member (facebook)', function (done) {
|
227 | 230 | var oauth = generateAuthHeader({ sub: userSubFacebook });
|
228 |
| - assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user"}, oauth, done); |
| 231 | + assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user", isWebArenaSuper: false }, oauth, done); |
229 | 232 | });
|
230 | 233 |
|
231 | 234 | /**
|
232 | 235 | * /test/oauth/ with header
|
233 | 236 | */
|
234 | 237 | it('should be authorized as member (twitter)', function (done) {
|
235 | 238 | var oauth = generateAuthHeader({ sub: userSubTwitter });
|
236 |
| - assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user"}, oauth, done); |
| 239 | + assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user", isWebArenaSuper: false }, oauth, done); |
237 | 240 | });
|
238 | 241 |
|
239 | 242 | /**
|
240 | 243 | * /test/oauth/ with header
|
241 | 244 | */
|
242 | 245 | it('should be authorized as member (github)', function (done) {
|
243 | 246 | var oauth = generateAuthHeader({ sub: userSubGithub });
|
244 |
| - assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user"}, oauth, done); |
| 247 | + assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user", isWebArenaSuper: false }, oauth, done); |
245 | 248 | });
|
246 | 249 |
|
247 | 250 | /**
|
248 | 251 | * /test/oauth/ with header
|
249 | 252 | */
|
250 | 253 | it('should be authorized as member (salesforce)', function (done) {
|
251 | 254 | var oauth = generateAuthHeader({ sub: userSubSalesforce });
|
252 |
| - assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user"}, oauth, done); |
| 255 | + assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user", isWebArenaSuper: false }, oauth, done); |
253 | 256 | });
|
254 | 257 |
|
255 | 258 | /**
|
256 | 259 | * /test/oauth/ with header
|
257 | 260 | */
|
258 | 261 | it('should be authorized as member (ad)', function (done) {
|
259 | 262 | var oauth = generateAuthHeader({ sub: userSubAD});
|
260 |
| - assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user"}, oauth, done); |
| 263 | + assertResponse({accessLevel: "member", userId: 400000, handle: "normal_user", isWebArenaSuper: false }, oauth, done); |
261 | 264 | });
|
262 | 265 |
|
263 | 266 | /**
|
264 | 267 | * /test/oauth/ with header
|
265 | 268 | */
|
266 | 269 | it('should be authorized as admin (google)', function (done) {
|
267 | 270 | var oauth = generateAuthHeader({ sub: adminSubGoogle});
|
268 |
| - assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user"}, oauth, done); |
| 271 | + assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user", isWebArenaSuper: false }, oauth, done); |
269 | 272 | });
|
270 | 273 |
|
271 | 274 | /**
|
272 | 275 | * /test/oauth/ with header
|
273 | 276 | */
|
274 | 277 | it('should be authorized as admin (facebook)', function (done) {
|
275 | 278 | var oauth = generateAuthHeader({ sub: adminSubFacebook});
|
276 |
| - assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user"}, oauth, done); |
| 279 | + assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user", isWebArenaSuper: false }, oauth, done); |
277 | 280 | });
|
278 | 281 |
|
279 | 282 | /**
|
280 | 283 | * /test/oauth/ with header
|
281 | 284 | */
|
282 | 285 | it('should be authorized as admin (twitter)', function (done) {
|
283 | 286 | var oauth = generateAuthHeader({ sub: adminSubTwitter});
|
284 |
| - assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user"}, oauth, done); |
| 287 | + assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user", isWebArenaSuper: false }, oauth, done); |
285 | 288 | });
|
286 | 289 |
|
287 | 290 | /**
|
288 | 291 | * /test/oauth/ with header
|
289 | 292 | */
|
290 | 293 | it('should be authorized as admin (github)', function (done) {
|
291 | 294 | var oauth = generateAuthHeader({ sub: adminSubGithub});
|
292 |
| - assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user"}, oauth, done); |
| 295 | + assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user", isWebArenaSuper: false }, oauth, done); |
293 | 296 | });
|
294 | 297 |
|
295 | 298 | /**
|
296 | 299 | * /test/oauth/ with header
|
297 | 300 | */
|
298 | 301 | it('should be authorized as admin (salesforce)', function (done) {
|
299 | 302 | var oauth = generateAuthHeader({ sub: adminSubSalesforce});
|
300 |
| - assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user"}, oauth, done); |
| 303 | + assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user", isWebArenaSuper: false }, oauth, done); |
301 | 304 | });
|
302 | 305 |
|
303 | 306 | /**
|
304 | 307 | * /test/oauth/ with header
|
305 | 308 | */
|
306 | 309 | it('should be authorized as admin (ad)', function (done) {
|
307 | 310 | var oauth = generateAuthHeader({ sub: adminSubAD});
|
308 |
| - assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user"}, oauth, done); |
| 311 | + assertResponse({accessLevel: "admin", userId: 400001, handle: "admin_user", isWebArenaSuper: false }, oauth, done); |
| 312 | + }); |
| 313 | + |
| 314 | + /** |
| 315 | + * /test/oauth/ with web arena super user. |
| 316 | + */ |
| 317 | + it('should be authorized as member and web arena super', function (done) { |
| 318 | + var oauth = generateAuthHeader({ sub: webArenaSuper}); |
| 319 | + assertResponse({accessLevel: "member", userId: 124861, handle: "ksmith", isWebArenaSuper: true }, oauth, done); |
309 | 320 | });
|
310 | 321 |
|
311 | 322 | /**
|
312 | 323 | * /test/oauth/ with header and cookie
|
313 | 324 | */
|
314 | 325 | it('should be authorized as admin (ad) with both header and cookie', function (done) {
|
315 |
| - var authHeader = generateAuthHeader({ sub: adminSubAD}); |
316 |
| - var authCookie = generateAuthCookie({ sub: adminSubAD}); |
317 |
| - assertResponseWithCookie({accessLevel: "admin", userId: 400001, handle: "admin_user"}, authHeader, authCookie, done); |
| 326 | + var authHeader = generateAuthHeader({ sub: adminSubAD}), |
| 327 | + authCookie = generateAuthCookie({ sub: adminSubAD}); |
| 328 | + assertResponseWithCookie({accessLevel: "admin", userId: 400001, handle: "admin_user", isWebArenaSuper: false }, authHeader, authCookie, done); |
318 | 329 | });
|
319 | 330 |
|
320 | 331 | /**
|
321 | 332 | * /test/oauth/ with header and cookie
|
322 | 333 | */
|
323 | 334 | it('should be authorized as admin (ad) with header but invalid cookie', function (done) {
|
324 |
| - var authHeader = generateAuthHeader({ sub: adminSubAD}); |
325 |
| - var authCookie = jwtTokenCookieKey + "=asd"; |
326 |
| - assertResponseWithCookie({accessLevel: "admin", userId: 400001, handle: "admin_user"}, authHeader, authCookie, done); |
| 335 | + var authHeader = generateAuthHeader({ sub: adminSubAD}), |
| 336 | + authCookie = jwtTokenCookieKey + "=asd"; |
| 337 | + assertResponseWithCookie({accessLevel: "admin", userId: 400001, handle: "admin_user", isWebArenaSuper: false }, authHeader, authCookie, done); |
327 | 338 | });
|
328 | 339 |
|
329 | 340 | /**
|
330 | 341 | * /test/oauth/ without header but with cookie
|
331 | 342 | */
|
332 | 343 | it('should be authorized as admin (ad) without header but with cookie', function (done) {
|
333 | 344 | var authCookie = generateAuthCookie({ sub: adminSubAD});
|
334 |
| - assertResponseWithCookie({accessLevel: "admin", userId: 400001, handle: "admin_user"}, null, authCookie, done); |
| 345 | + assertResponseWithCookie({accessLevel: "admin", userId: 400001, handle: "admin_user", isWebArenaSuper: false }, null, authCookie, done); |
335 | 346 | });
|
336 | 347 |
|
337 | 348 | /**
|
@@ -370,8 +381,8 @@ describe('Test Oauth', function () {
|
370 | 381 | * /test/oauth/ with invalid header but valid cookie
|
371 | 382 | */
|
372 | 383 | it('should return error if header is invalid but cookie is valid', function (done) {
|
373 |
| - var authHeader = generateAuthHeader({ sub: userSubGoogle}); |
374 |
| - var authCookie = generateAuthCookie({ sub: userSubGoogle}); |
| 384 | + var authHeader = generateAuthHeader({ sub: userSubGoogle}), |
| 385 | + authCookie = generateAuthCookie({ sub: userSubGoogle}); |
375 | 386 | assertErrorResponseWithCookie(400, authHeader + "asd", authCookie, "Malformed Auth header", done);
|
376 | 387 | });
|
377 | 388 |
|
@@ -460,7 +471,7 @@ describe('Test Oauth', function () {
|
460 | 471 | */
|
461 | 472 | it('should be authorized as member (salesforce) - cache version', function (done) {
|
462 | 473 | var oauth = generateAuthHeader({ sub: userSubSalesforce }),
|
463 |
| - response = {accessLevel: "member", userId: 400000, handle: "normal_user"}, |
| 474 | + response = {accessLevel: "member", userId: 400000, handle: "normal_user", isWebArenaSuper: false}, |
464 | 475 | fun = assertResponse.bind(this, response, oauth);
|
465 | 476 | async.waterfall([
|
466 | 477 | fun,
|
@@ -506,7 +517,7 @@ describe('Test Oauth', function () {
|
506 | 517 | .end(done);
|
507 | 518 | });
|
508 | 519 | });
|
509 |
| - |
| 520 | + |
510 | 521 | describe("Refresh Token api", function () {
|
511 | 522 |
|
512 | 523 | /**
|
|
0 commit comments