UNPKG

6.2 kBJavaScriptView Raw
1// Jasmine test related to the vmauthor virtual machine. The vmauthor
2// virtual machine hosts a full constellation of CodeGradX servers.
3// The vmauthor virtual machine is available from
4// http://paracamplus.com/CodeGradX/VM/latest/
5
6var CodeGradX = require('codegradxlib');
7var Agent = require('../codegradxagent.js');
8var vmauthor = require('./vmauthor-data.js');
9var vmauthData = require('./vmauth-data.json');
10
11describe("CodeGradXagent authentication", function () {
12
13 function initializer (agent) {
14 // User VMauthor's servers:
15 agent.state = new CodeGradX.State(vmauthor.initialize);
16 return agent;
17 }
18
19 it("should be loaded", function () {
20 expect(Agent).toBeDefined();
21 var agent = new CodeGradX.Agent(initializer);
22 expect(agent).toBeDefined();
23 });
24
25 function make_faildone (done) {
26 return function faildone (reason) {
27 //agent.state.debug(reason).show();
28 //console.log(reason);
29 fail(reason);
30 done();
31 };
32 }
33
34 it("cannot read absent credentials", function (done) {
35 agent = new CodeGradX.Agent(initializer);
36 var faildone = make_faildone(done);
37 agent.process([
38 "--credentials", "spec/absentCredentials.json"
39 ]).then(faildone, function (reason) {
40 expect(agent.credentials).not.toBeDefined();
41 done();
42 });
43 });
44
45 var safecookie1;
46
47 it("with user+password", function (done) {
48 agent = new CodeGradX.Agent(initializer);
49 var faildone = make_faildone(done);
50 agent.process([
51 "--user", vmauthData.login,
52 "--password", vmauthData.password
53 ]).then(function (user) {
54 expect(user).toBeDefined();
55 expect(user.email).toBe('nobody@example.com');
56 safecookie1 = agent.state.currentCookie;
57 done();
58 }, faildone);
59 }, 10*1000); // 10 seconds
60
61 it("with previous cookie", function (done) {
62 agent = CodeGradX.getCurrentAgent();
63 var faildone = make_faildone(done);
64 agent.process([
65 ]).then(function (user) {
66 expect(user).toBeDefined();
67 expect(user.email).toBe('nobody@example.com');
68 done();
69 }, faildone);
70 }, 10*1000); // 10 seconds
71
72 it("update credentials with user+password", function (done) {
73 agent = new CodeGradX.Agent(initializer);
74 var faildone = make_faildone(done);
75 agent.process([
76 "--user", vmauthData.login,
77 "--password", vmauthData.password,
78 "--update-credentials"
79 ]).then(function (user) {
80 expect(user).toBeDefined();
81 CodeGradX.readFileContent(agent.credentialsFile).then(
82 function (content) {
83 var json = JSON.parse(content);
84 //console.log(JSON.stringify(json));
85 expect(json.cookie).toMatch(/^u=U.{30}/);
86 done();
87 }, faildone);
88 }, faildone);
89 }, 10*1000); // 10 seconds
90
91 it("with user but wrong password", function (done) {
92 agent = new CodeGradX.Agent(initializer);
93 var faildone = make_faildone(done);
94 agent.state.log.size = 100;
95 agent.process([
96 "--user", vmauthData.login,
97 "--password", '123456WrongPassword'
98 ]).then(faildone, function (reason) {
99 //agent.state.log.show();
100 expect(reason).toBeDefined();
101 done();
102 });
103 }, 10*1000); // 10 seconds
104
105 it("with credentials with cookie", function (done) {
106 agent = new CodeGradX.Agent(initializer);
107 var faildone = make_faildone(done);
108 agent.process([
109 "--credentials", agent.credentialsFile
110 ]).then(function (user) {
111 expect(user).toBeDefined();
112 done();
113 }, faildone);
114 }, 10*1000); // 10 seconds
115
116 it("with credentials with wrong cookie", function (done) {
117 agent = new CodeGradX.Agent(initializer);
118 var faildone = make_faildone(done);
119 CodeGradX.writeFileContent(
120 agent.credentialsFile,
121 '{"cookie": ["u=U1234"]}').then(
122 function () {
123 agent.process([
124 "--credentials", agent.credentialsFile
125 ]).then(function (user) {
126 console.log(user);
127 faildone();
128 }, function (reason) {
129 expect(reason).toBeDefined();
130 done();
131 });
132 }, faildone);
133 }, 10*1000); // 10 seconds
134
135 it("with credentials without cookie", function (done) {
136 agent = new CodeGradX.Agent(initializer);
137 var faildone = make_faildone(done);
138 CodeGradX.writeFileContent(
139 agent.credentialsFile,
140 JSON.stringify({
141 user: vmauthData.login,
142 password: vmauthData.password
143 })).then(function () {
144 agent.process([
145 "--credentials", agent.credentialsFile
146 ]).then(function (user) {
147 expect(user).toBeDefined();
148 done();
149 }, faildone);
150 }, faildone);
151 }, 10*1000); // 10 seconds
152
153 it("cannot authenticate with wrong credentials", function (done) {
154 agent = new CodeGradX.Agent(initializer);
155 //console.log(agent);
156 var faildone = make_faildone(done);
157 CodeGradX.writeFileContent(
158 agent.credentialsFile,
159 '{"user": "nobody:0", "password": "totallyWrong"}').then(
160 function () {
161 agent.process([
162 "--credentials", agent.credentialsFile
163 ]).then(function (user) {
164 console.log(user);
165 faildone();
166 }, function (reason) {
167 expect(reason).toBeDefined();
168 done();
169 });
170 }, faildone);
171 }, 10*1000); // 10 seconds
172
173});